02882981635d972d970a07a09dcddd26c6f7c3a3
[openwrt/openwrt.git] / target / linux / imx6 / patches-4.4 / 111-serial-imx-fix-polarity-of-RI.patch
1 From 9a061cea4477f26a1dfcc0a08dc20575016e91df Mon Sep 17 00:00:00 2001
2 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
3 Date: Thu, 24 Mar 2016 14:24:20 +0100
4 Subject: [PATCH 1/3] serial: imx: fix polarity of RI
5 MIME-Version: 1.0
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
8
9 When in DTE mode, the bit USR2_RIIN is active low. So invert the logic
10 accordingly.
11
12 Fixes: 90ebc4838666 ("serial: imx: repair and complete handshaking")
13 Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
14 Signed-off-by: Petr Štetiar <ynezz@true.cz>
15 ---
16 drivers/tty/serial/imx.c | 6 +++---
17 1 file changed, 3 insertions(+), 3 deletions(-)
18
19 --- a/drivers/tty/serial/imx.c
20 +++ b/drivers/tty/serial/imx.c
21 @@ -817,9 +817,9 @@ static unsigned int imx_get_mctrl(struct
22 if (!(usr1 & USR2_DCDIN))
23 tmp |= TIOCM_CAR;
24
25 - /* in DCE mode RIIN is always 0 */
26 - if (readl(sport->port.membase + USR2) & USR2_RIIN)
27 - tmp |= TIOCM_RI;
28 + if (sport->dte_mode)
29 + if (!(readl(sport->port.membase + USR2) & USR2_RIIN))
30 + tmp |= TIOCM_RI;
31
32 return tmp;
33 }