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:
Родитель
2ee91d42bf
Коммит
771268843c
|
@ -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)))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче