aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHuang Shijie <b32955@freescale.com>2014-06-18 02:19:09 -0400
committerFugang Duan <b38611@freescale.com>2014-07-14 01:09:13 -0400
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)
839 struct imx_port *sport = (struct imx_port *)port; 839 struct imx_port *sport = (struct imx_port *)port;
840 unsigned long temp; 840 unsigned long temp;
841 841
842 temp = readl(sport->port.membase + UCR2) & ~UCR2_CTS; 842 temp = readl(sport->port.membase + UCR2) & ~(UCR2_CTS | UCR2_CTSC);
843
844 if (mctrl & TIOCM_RTS) 843 if (mctrl & TIOCM_RTS)
845 if (!sport->dma_is_enabled) 844 temp |= UCR2_CTS | UCR2_CTSC;
846 temp |= UCR2_CTS;
847 845
848 writel(temp, sport->port.membase + UCR2); 846 writel(temp, sport->port.membase + UCR2);
849 847