]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
tty/serial: atmel: reschedule TX after RX was started
authorRazvan Stefanescu <razvan.stefanescu@microchip.com>
Tue, 13 Aug 2019 07:40:25 +0000 (10:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Sep 2019 10:43:54 +0000 (12:43 +0200)
When half-duplex RS485 communication is used, after RX is started, TX
tasklet still needs to be  scheduled tasklet. This avoids console freezing
when more data is to be transmitted, if the serial communication is not
closed.

Fixes: 69646d7a3689 ("tty/serial: atmel: RS485 HD w/DMA: enable RX after TX is stopped")
Signed-off-by: Razvan Stefanescu <razvan.stefanescu@microchip.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20190813074025.16218-1-razvan.stefanescu@microchip.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/atmel_serial.c

index 19a85d6fe3d20541ca3d344a0da3094309da88ad..9a54c9e6d36eaee3fd18e7b202f4dd69b46ef8cf 100644 (file)
@@ -1400,7 +1400,6 @@ atmel_handle_transmit(struct uart_port *port, unsigned int pending)
 
                        atmel_port->hd_start_rx = false;
                        atmel_start_rx(port);
-                       return;
                }
 
                atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_tx);