From: Gabriel Somlo Date: Wed, 23 Nov 2022 13:04:53 +0000 (-0500) Subject: serial: liteuart: rx loop should only ack rx events X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=771268843caa3ecd3fa43b05a6d1d74700785ad8;p=linux.git 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 --- diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c index 81a86c5eb3937..c90ab65fbdcfb 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)))