summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2014-06-18 14:19:09 +0800
committerFugang Duan <b38611@freescale.com>2014-07-14 13:09:13 +0800
commit32d6d05fd0617eaed11942025f75e4904c9962d3 (patch)
tree1f4b4d82aa2c319e808322eea5e6e0b159787fec
parentf7c1dc0720d1f6f9bbe732c67a9115887d6b05d4 (diff)
ENGR00322581-04 serial: imx: fix the software flow control
Controls the CTS pin when the CTSC bit is negated. CTS has no function when CTSC is asserted. After The CTS pin is low, it needs to enable CTSC. The patch just fix the issue. Signed-off-by: Fugang Duan <B38611@freescale.com>
-rw-r--r--drivers/tty/serial/imx.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/tty/serial/imx.c b/drivers/tty/serial/imx.c
index c73c05b33c49..1570934978d7 100644
--- a/drivers/tty/serial/imx.c
+++ b/drivers/tty/serial/imx.c
@@ -839,11 +839,9 @@ static void imx_set_mctrl(struct uart_port *port, unsigned int mctrl)
struct imx_port *sport = (struct imx_port *)port;
unsigned long temp;
- temp = readl(sport->port.membase + UCR2) & ~UCR2_CTS;
-
+ temp = readl(sport->port.membase + UCR2) & ~(UCR2_CTS | UCR2_CTSC);
if (mctrl & TIOCM_RTS)
- if (!sport->dma_is_enabled)
- temp |= UCR2_CTS;
+ temp |= UCR2_CTS | UCR2_CTSC;
writel(temp, sport->port.membase + UCR2);