Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a13884a authored by Dimitris Lampridis's avatar Dimitris Lampridis Committed by Greg Kroah-Hartman
Browse files

tty/serial: omap: empty the RX FIFO at the end of half-duplex TX



Provided that the SER_RS485_RX_DURING_TX flag is not set, empty the
RX FIFO to prevent reading back the transmitted data.

Signed-off-by: default avatarDimitris Lampridis <dlampridis@logikonlabs.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent cab53dc9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -342,6 +342,12 @@ static void serial_omap_stop_tx(struct uart_port *port)

	if ((up->rs485.flags & SER_RS485_ENABLED) &&
	    !(up->rs485.flags & SER_RS485_RX_DURING_TX)) {
		/*
		 * Empty the RX FIFO, we are not interested in anything
		 * received during the half-duplex transmission.
		 */
		serial_out(up, UART_FCR, up->fcr | UART_FCR_CLEAR_RCVR);
		/* Re-enable RX interrupts */
		up->ier |= UART_IER_RLSI | UART_IER_RDI;
		up->port.read_status_mask |= UART_LSR_DR;
		serial_out(up, UART_IER, up->ier);