tty: serial: extract tx_ready() from __serial_lpc32xx_tx()
The condition in __serial_lpc32xx_tx()'s loop is barely readable. Extract it to a separate function. This will make the cleanup in the next patches easier too. Cc: Vladimir Zapolskiy <vz@mleia.com> Cc: <linux-arm-kernel@lists.infradead.org> 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-6-jslaby@suse.cz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0fbf36bb6a
commit
2a4be3a55c
@ -278,6 +278,13 @@ static void __serial_lpc32xx_rx(struct uart_port *port)
|
||||
|
||||
static void serial_lpc32xx_stop_tx(struct uart_port *port);
|
||||
|
||||
static bool serial_lpc32xx_tx_ready(struct uart_port *port)
|
||||
{
|
||||
u32 level = readl(LPC32XX_HSUART_LEVEL(port->membase));
|
||||
|
||||
return LPC32XX_HSU_TX_LEV(level) < 64;
|
||||
}
|
||||
|
||||
static void __serial_lpc32xx_tx(struct uart_port *port)
|
||||
{
|
||||
struct circ_buf *xmit = &port->state->xmit;
|
||||
@ -293,8 +300,7 @@ static void __serial_lpc32xx_tx(struct uart_port *port)
|
||||
goto exit_tx;
|
||||
|
||||
/* Transfer data */
|
||||
while (LPC32XX_HSU_TX_LEV(readl(
|
||||
LPC32XX_HSUART_LEVEL(port->membase))) < 64) {
|
||||
while (serial_lpc32xx_tx_ready(port)) {
|
||||
writel((u32) xmit->buf[xmit->tail],
|
||||
LPC32XX_HSUART_FIFO(port->membase));
|
||||
xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user