serial: imx: Fix x_char handling and tx flow control
authorPeter Hurley <peter@hurleysoftware.com>
Tue, 2 Sep 2014 21:39:12 +0000 (17:39 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 8 Sep 2014 23:21:35 +0000 (16:21 -0700)
commit5e42e9a30cdaae51411a9fd4d7de1dc6a7507038
treec1c2b1cdfe98015e0f656e021a245e7d101c7da9
parent99abf3b9242fbc5fec586223a5068544e0e9d90f
serial: imx: Fix x_char handling and tx flow control

The serial core expects the UART driver to transmit x_char
(START/STOP chars) even if tx is stopped and before data already
in the tx ring buffer if possible. Also, sending x_char must
not cause additional data in the tx ring buffer to transmit
if tx is stopped.

Cause x_char to be transmitted before any other data is sent.
Auto-stop tx if the tx ring buffer is empty or tx should be stopped.
Only perform one write wakeup if tx ring buffer space is below
threshold.

x_char handling in DMA mode is still broken; add FIXME.

Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c