tty: serial: lpc32xx_hs: use serial_lpc32xx_stop_tx() helper
authorJiri Slaby <jslaby@suse.cz>
Thu, 24 Feb 2022 11:10:28 +0000 (12:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Feb 2022 09:38:54 +0000 (10:38 +0100)
Instead of open-coding what serial_lpc32xx_stop_tx() already does, call
it in __serial_lpc32xx_tx() directly.

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

index 07c4161eb4cc2cb62388286307f9fc5742853edd..54437a087aa02b04c64e048823778cac0a8e905c 100644 (file)
@@ -276,10 +276,11 @@ static void __serial_lpc32xx_rx(struct uart_port *port)
        tty_flip_buffer_push(tport);
 }
 
+static void serial_lpc32xx_stop_tx(struct uart_port *port);
+
 static void __serial_lpc32xx_tx(struct uart_port *port)
 {
        struct circ_buf *xmit = &port->state->xmit;
-       unsigned int tmp;
 
        if (port->x_char) {
                writel((u32)port->x_char, LPC32XX_HSUART_FIFO(port->membase));
@@ -306,11 +307,8 @@ static void __serial_lpc32xx_tx(struct uart_port *port)
                uart_write_wakeup(port);
 
 exit_tx:
-       if (uart_circ_empty(xmit)) {
-               tmp = readl(LPC32XX_HSUART_CTRL(port->membase));
-               tmp &= ~LPC32XX_HSU_TX_INT_EN;
-               writel(tmp, LPC32XX_HSUART_CTRL(port->membase));
-       }
+       if (uart_circ_empty(xmit))
+               serial_lpc32xx_stop_tx(port);
 }
 
 static irqreturn_t serial_lpc32xx_interrupt(int irq, void *dev_id)