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:33 +0000 (09:00 +0200)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:05 +0000 (17:03 +0100)
drivers/serial.c

index 155478e..c7ad543 100644 (file)
@@ -92,8 +92,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->func.buffer = data;
+                       /* Echo ? */
+                       if (!uart->sending) {
+                               uart->regs->func.buffer = data;
+                       }
                }
        }
        /* FIXME : handle RX erors */