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 <gsomlo@gmail.com>
Reviewed-by: Jiri Slaby <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20221123130500.1030189-8-gsomlo@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Gabriel Somlo 2022-11-23 08:04:53 -05:00 коммит произвёл Greg Kroah-Hartman
Родитель 2ee91d42bf
Коммит 771268843c
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -82,7 +82,7 @@ static void liteuart_timer(struct timer_list *t)
port->icount.rx++; port->icount.rx++;
/* necessary for RXEMPTY to refresh its value */ /* 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 */ /* no overflow bits in status */
if (!(uart_handle_sysrq_char(port, ch))) if (!(uart_handle_sysrq_char(port, ch)))