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;
                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);