[PATCH v3 07/14] serial: liteuart: rx loop should only ack rx events

Gabriel Somlo
2022-11-12T21:22:04Z

While receiving characters, it is necessary to acknowledge each one
by writing to the EV_PENDING register's EV_RX bit. Ensure we do not
also gratuitously set the EV_TX bit in the process.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
---
drivers/tty/serial/liteuart.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c
index ff3486860989..b5ab48aa35cf 100644
--- a/drivers/tty/serial/liteuart.c
+++ b/drivers/tty/serial/liteuart.c
@@ -81,7 +81,7 @@ static void liteuart_timer(struct timer_list *t)
port->icount.rx++;

/* necessary for RXEMPTY to refresh its value */
- litex_write8(membase + OFF_EV_PENDING, EV_TX | EV_RX);
+ litex_write8(membase + OFF_EV_PENDING, EV_RX);

/* no overflow bits in status */
if (!(uart_handle_sysrq_char(port, ch)))
--
2.37.3