tty: serial: extract serial_omap_put_char() from transmit_chars()
authorJiri Slaby <jslaby@suse.cz>
Tue, 20 Sep 2022 05:20:47 +0000 (07:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Sep 2022 14:14:08 +0000 (16:14 +0200)
This non-trivial code is doubled in transmit_chars(), so it deserves its
own function. This will make next patches easier.

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-8-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/omap-serial.c

index 9c4fd0985f3d618c64cda35de884670e10e1d12e..7d0d2718ef5953962917617395e630621f5044e3 100644 (file)
@@ -336,19 +336,24 @@ static void serial_omap_stop_rx(struct uart_port *port)
        serial_out(up, UART_IER, up->ier);
 }
 
+static void serial_omap_put_char(struct uart_omap_port *up, unsigned char ch)
+{
+       serial_out(up, UART_TX, ch);
+
+       if ((up->port.rs485.flags & SER_RS485_ENABLED) &&
+                       !(up->port.rs485.flags & SER_RS485_RX_DURING_TX))
+               up->rs485_tx_filter_count++;
+}
+
 static void transmit_chars(struct uart_omap_port *up, unsigned int lsr)
 {
        struct circ_buf *xmit = &up->port.state->xmit;
        int count;
 
        if (up->port.x_char) {
-               serial_out(up, UART_TX, up->port.x_char);
+               serial_omap_put_char(up, up->port.x_char);
                up->port.icount.tx++;
                up->port.x_char = 0;
-               if ((up->port.rs485.flags & SER_RS485_ENABLED) &&
-                   !(up->port.rs485.flags & SER_RS485_RX_DURING_TX))
-                       up->rs485_tx_filter_count++;
-
                return;
        }
        if (uart_circ_empty(xmit) || uart_tx_stopped(&up->port)) {
@@ -357,12 +362,9 @@ static void transmit_chars(struct uart_omap_port *up, unsigned int lsr)
        }
        count = up->port.fifosize / 4;
        do {
-               serial_out(up, UART_TX, xmit->buf[xmit->tail]);
+               serial_omap_put_char(up, xmit->buf[xmit->tail]);
                xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
                up->port.icount.tx++;
-               if ((up->port.rs485.flags & SER_RS485_ENABLED) &&
-                   !(up->port.rs485.flags & SER_RS485_RX_DURING_TX))
-                       up->rs485_tx_filter_count++;
 
                if (uart_circ_empty(xmit))
                        break;