serial: mcf: use helpers in mcf_tx_chars()
authorJiri Slaby <jslaby@suse.cz>
Mon, 24 Jan 2022 07:14:30 +0000 (08:14 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 26 Jan 2022 13:55:14 +0000 (14:55 +0100)
Use uart_circ_empty() instead of open-coding it via xmit->head & tail.
Use preexisting mcf_stop_tx() to avoid stop-tx code duplication.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220124071430.14907-12-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/mcf.c

index c7cec7d..2aec62b 100644 (file)
@@ -338,7 +338,7 @@ static void mcf_tx_chars(struct mcf_uart *pp)
        }
 
        while (readb(port->membase + MCFUART_USR) & MCFUART_USR_TXREADY) {
-               if (xmit->head == xmit->tail)
+               if (uart_circ_empty(xmit))
                        break;
                writeb(xmit->buf[xmit->tail], port->membase + MCFUART_UTB);
                xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE -1);
@@ -348,9 +348,8 @@ static void mcf_tx_chars(struct mcf_uart *pp)
        if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
                uart_write_wakeup(port);
 
-       if (xmit->head == xmit->tail) {
-               pp->imr &= ~MCFUART_UIR_TXREADY;
-               writeb(pp->imr, port->membase + MCFUART_UIMR);
+       if (uart_circ_empty(xmit)) {
+               mcf_stop_tx(port);
                /* Disable TX to negate RTS automatically */
                if (port->rs485.flags & SER_RS485_ENABLED)
                        writeb(MCFUART_UCR_TXDISABLE,