]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: stm32: fix software flow control transfer
authorValentin Caron <valentin.caron@foss.st.com>
Tue, 11 Jan 2022 16:44:41 +0000 (17:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Feb 2022 17:15:26 +0000 (18:15 +0100)
commit 037b91ec7729524107982e36ec4b40f9b174f7a2 upstream.

x_char is ignored by stm32_usart_start_tx() when xmit buffer is empty.

Fix start_tx condition to allow x_char to be sent.

Fixes: 48a6092fb41f ("serial: stm32-usart: Add STM32 USART Driver")
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>
Signed-off-by: Valentin Caron <valentin.caron@foss.st.com>
Link: https://lore.kernel.org/r/20220111164441.6178-3-valentin.caron@foss.st.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/stm32-usart.c

index f325019887b23b9675ea28f28b3aef5ac4b43155..766941a6e1aa8e0b156a896fc7eb5891ecc28b2c 100644 (file)
@@ -389,7 +389,7 @@ static void stm32_start_tx(struct uart_port *port)
 {
        struct circ_buf *xmit = &port->state->xmit;
 
-       if (uart_circ_empty(xmit))
+       if (uart_circ_empty(xmit) && !port->x_char)
                return;
 
        stm32_transmit_chars(port);