Echo on serial must be only a "best effort" and not mangle with ongoing transmissions
authorNathael Pajani <nathael.pajani@ed3l.fr>
Thu, 15 Jun 2017 07:00:40 +0000 (09:00 +0200)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Fri, 10 Feb 2023 18:02:59 +0000 (19:02 +0100)
drivers/serial.c

index 47dd72c..f5e561d 100644 (file)
@@ -105,8 +105,10 @@ static void uart_check_rx(struct uart_device* uart, uint32_t intr)
                        /* Call the Rx callback */
                        uart->rx_callback(data);
                } else {
-                       /* Echo */
-                       uart->regs->tx_data = data;
+                       /* Echo ? */
+                       if (!uart->sending) {
+                               uart->regs->tx_data = data;
+                       }
                }
        }
        /* FIXME : handle RX erors */