summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/mcf.c
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2022-01-24 08:14:30 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-01-26 14:55:14 +0100
commite41752c0e79b033fe0ea186bba0f6bb558c49729 (patch)
tree43dd9bb65524e2910ee435ca7f5e1ce24c4e2115 /drivers/tty/serial/mcf.c
parentd88812a8d66617efdb41d787efca0907ccd98716 (diff)
downloadlinux-stable-e41752c0e79b033fe0ea186bba0f6bb558c49729.tar.gz
linux-stable-e41752c0e79b033fe0ea186bba0f6bb558c49729.tar.bz2
linux-stable-e41752c0e79b033fe0ea186bba0f6bb558c49729.zip
serial: mcf: use helpers in mcf_tx_chars()
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>
Diffstat (limited to 'drivers/tty/serial/mcf.c')
-rw-r--r--drivers/tty/serial/mcf.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/tty/serial/mcf.c b/drivers/tty/serial/mcf.c
index c7cec7d03620..2aec62b5d6c4 100644
--- a/drivers/tty/serial/mcf.c
+++ b/drivers/tty/serial/mcf.c
@@ -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,