From 771268843caa3ecd3fa43b05a6d1d74700785ad8 Mon Sep 17 00:00:00 2001 From: Gabriel Somlo Date: Wed, 23 Nov 2022 08:04:53 -0500 Subject: [PATCH] serial: liteuart: rx loop should only ack rx events 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 Reviewed-by: Jiri Slaby Link: https://lore.kernel.org/r/20221123130500.1030189-8-gsomlo@gmail.com Signed-off-by: Greg Kroah-Hartman --- 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 81a86c5eb393..c90ab65fbdcf 100644 --- a/drivers/tty/serial/liteuart.c +++ b/drivers/tty/serial/liteuart.c @@ -82,7 +82,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)))