tty/serial: omap: fix RX interrupt enable/disable in half-duplex TX
authorDimitris Lampridis <dlampridis@logikonlabs.com>
Thu, 13 Mar 2014 13:11:46 +0000 (15:11 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 17 Mar 2014 23:23:07 +0000 (16:23 -0700)
commitcab53dc9e20f74fbd4776ea584ba3b21c957b1a8
tree2779cee8bbdd970bbafaa7d979b8e3eb7488e889
parent9b971cd206c019fc6aeeb7e04136a49f9312df4a
tty/serial: omap: fix RX interrupt enable/disable in half-duplex TX

Make sure that serial_omap_stop_rx() also disables RDI (Receiver Data Interrupt),
otherwise the interrupt handler will call serial_omap_rdi() to read the new data,
resulting in the transmission being echoed back.

When the half-duplex transmission is complete, in order to reverse the effects of
serial_omap_stop_rx(), we should re-enable:

  * the RX interrupts _without_ overwriting up->ier

  * the UART_LSR_DR bit of the up->port.read_status_mask

Signed-off-by: Dimitris Lampridis <dlampridis@logikonlabs.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/omap-serial.c