imx_set_termios(): remove busy-waiting "drain Tx FIFO" loop. Worse
yet, it was potentially unbounded wait due to RTS/CTS (hardware)
handshake.
Let user space ensure draining is done before termios change, if
draining is needed in the first place.
Signed-off-by: Sergey Organov <sorganov@gmail.com>
Link: https://lore.kernel.org/r/1567017475-11919-2-git-send-email-sorganov@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
uart_update_timeout(port, termios->c_cflag, baud);
/*
- * disable interrupts and drain transmitter
+ * disable interrupts
*/
old_ucr1 = imx_uart_readl(sport, UCR1);
imx_uart_writel(sport,
UCR1);
imx_uart_writel(sport, old_ucr2 & ~UCR2_ATEN, UCR2);
- while (!(imx_uart_readl(sport, USR2) & USR2_TXDC))
- barrier();
-
/* then, disable everything */
imx_uart_writel(sport, old_ucr2 & ~(UCR2_TXEN | UCR2_RXEN | UCR2_ATEN), UCR2);