Hi Gabriel, On Fri, Nov 18, 2022 at 3:57 PM Gabriel Somlo <gsomlo@xxxxxxxxx> wrote: > Convert the rx loop into its own dedicated function, and (for now) > call it from the poll timer. This is in preparation for adding irq > support to the receive path. > > Signed-off-by: Gabriel Somlo <gsomlo@xxxxxxxxx> > Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx> Thanks for your patch! Reviewed-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> > --- a/drivers/tty/serial/liteuart.c > +++ b/drivers/tty/serial/liteuart.c > @@ -68,10 +68,8 @@ static struct uart_driver liteuart_driver = { > #endif > }; > > -static void liteuart_timer(struct timer_list *t) > +static void liteuart_rx_chars(struct uart_port *port) So first you spin this off into a separate function, so it can be called from both the interrupt and polling paths. Later, in "[PATCH v5 12/14] serial: liteuart: add IRQ support for the RX path", you remove the call from the polling path... > { > - struct liteuart_port *uart = from_timer(uart, t, timer); > - struct uart_port *port = &uart->port; > unsigned char __iomem *membase = port->membase; > unsigned int status, ch; > > @@ -88,6 +86,14 @@ static void liteuart_timer(struct timer_list *t) > } > > tty_flip_buffer_push(&port->state->port); > +} > + > +static void liteuart_timer(struct timer_list *t) > +{ > + struct liteuart_port *uart = from_timer(uart, t, timer); > + struct uart_port *port = &uart->port; > + > + liteuart_rx_chars(port); > > mod_timer(&uart->timer, jiffies + uart_poll_timeout(port)); > } Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds