tty: serial: extract tx_ready() from __serial_lpc32xx_tx()
authorJiri Slaby <jslaby@suse.cz>
Tue, 20 Sep 2022 05:20:45 +0000 (07:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Sep 2022 14:14:08 +0000 (16:14 +0200)
The condition in __serial_lpc32xx_tx()'s loop is barely readable.
Extract it to a separate function. This will make the cleanup in the
next patches easier too.

Cc: Vladimir Zapolskiy <vz@mleia.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220920052049.20507-6-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/lpc32xx_hs.c

index 0d5ef7df27d0d1fb48bd2618943290502760a041..ed47f476833831bc7eb5cd57f23cea22ac04a523 100644 (file)
@@ -278,6 +278,13 @@ static void __serial_lpc32xx_rx(struct uart_port *port)
 
 static void serial_lpc32xx_stop_tx(struct uart_port *port);
 
+static bool serial_lpc32xx_tx_ready(struct uart_port *port)
+{
+       u32 level = readl(LPC32XX_HSUART_LEVEL(port->membase));
+
+       return LPC32XX_HSU_TX_LEV(level) < 64;
+}
+
 static void __serial_lpc32xx_tx(struct uart_port *port)
 {
        struct circ_buf *xmit = &port->state->xmit;
@@ -293,8 +300,7 @@ static void __serial_lpc32xx_tx(struct uart_port *port)
                goto exit_tx;
 
        /* Transfer data */
-       while (LPC32XX_HSU_TX_LEV(readl(
-               LPC32XX_HSUART_LEVEL(port->membase))) < 64) {
+       while (serial_lpc32xx_tx_ready(port)) {
                writel((u32) xmit->buf[xmit->tail],
                       LPC32XX_HSUART_FIFO(port->membase));
                xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);