Re: [PATCH v5 09/14] serial: liteuart: fix rx loop variable types

From: Jiri Slaby
Date: Mon Nov 21 2022 - 03:42:48 EST


On 21. 11. 22, 9:37, Jiri Slaby wrote:
On 18. 11. 22, 15:55, Gabriel Somlo wrote:
Update variable types to match the signature of uart_insert_char()
which consumes them.

Signed-off-by: Gabriel Somlo <gsomlo@xxxxxxxxx>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
---
  drivers/tty/serial/liteuart.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/tty/serial/liteuart.c b/drivers/tty/serial/liteuart.c
index 81aa7c1da73c..42ac9aee050a 100644
--- a/drivers/tty/serial/liteuart.c
+++ b/drivers/tty/serial/liteuart.c
@@ -73,8 +73,7 @@ static void liteuart_timer(struct timer_list *t)
      struct liteuart_port *uart = from_timer(uart, t, timer);
      struct uart_port *port = &uart->port;
      unsigned char __iomem *membase = port->membase;
-    int ch;
-    unsigned long status;
+    unsigned int status, ch;

These should be u8 after all, right?

Wait, status is a bool in the end:

      while ((status = !litex_read8(membase + OFF_RXEMPTY)) == 1) {

But why is it passed to uart_insert_char() as such? That's ugly. Maybe drop all of this "status" and pass LSR_RXC directly.

Actually, even 0 directly, provided overrun parameter is always 0.

The while's condition would simply look like (!litex_read8(membase + OFF_RXEMPTY)) then.

          ch = litex_read8(membase + OFF_RXTX);

thanks,

--
js