Flow control characters should be sent even if the TX is stopped. So fix
owl-uart to behave the same as other drivers.
This unification also allows the use of the TX helper in the future.
Cc: "Andreas Färber" <afaerber@suse.de>
Cc: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Link: https://lore.kernel.org/r/20220411104506.8990-3-jslaby@suse.cz
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
        struct circ_buf *xmit = &port->state->xmit;
        unsigned int ch;
 
-       if (uart_tx_stopped(port))
-               return;
-
        if (port->x_char) {
                while (!(owl_uart_read(port, OWL_UART_STAT) & OWL_UART_STAT_TFFU))
                        cpu_relax();
                port->x_char = 0;
        }
 
+       if (uart_tx_stopped(port))
+               return;
+
        while (!(owl_uart_read(port, OWL_UART_STAT) & OWL_UART_STAT_TFFU)) {
                if (uart_circ_empty(xmit))
                        break;