tty: serial: extract lqasc_tx_ready() from lqasc_tx_chars()

The condition in lqasc_tx_chars()'s loop is barely readable. Extract it
to a separate function. This will make the cleanup in the next patches
easier too.

(Put it before lqasc_start_tx(), so that we can use it there later.)

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220920052049.20507-5-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jiri Slaby 2022-09-20 07:20:44 +02:00 committed by Greg Kroah-Hartman
parent 3af44d9bb0
commit 0fbf36bb6a

View File

@ -139,6 +139,13 @@ lqasc_stop_tx(struct uart_port *port)
return;
}
static bool lqasc_tx_ready(struct uart_port *port)
{
u32 fstat = __raw_readl(port->membase + LTQ_ASC_FSTAT);
return (fstat & ASCFSTAT_TXFREEMASK) >> ASCFSTAT_TXFREEOFF;
}
static void
lqasc_start_tx(struct uart_port *port)
{
@ -228,8 +235,7 @@ lqasc_tx_chars(struct uart_port *port)
return;
}
while (((__raw_readl(port->membase + LTQ_ASC_FSTAT) &
ASCFSTAT_TXFREEMASK) >> ASCFSTAT_TXFREEOFF) != 0) {
while (lqasc_tx_ready(port)) {
if (port->x_char) {
writeb(port->x_char, port->membase + LTQ_ASC_TBUF);
port->icount.tx++;