]> git.hungrycats.org Git - linux/commitdiff
serial: imx: Fix DCD reading
authorSascha Hauer <s.hauer@pengutronix.de>
Mon, 26 Sep 2016 13:55:31 +0000 (15:55 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Oct 2016 10:40:21 +0000 (12:40 +0200)
commit 4b75f80003617fe35771a9e27022e8fbd6a41875 upstream.

The USR2_DCDIN bit is tested for in register usr1. As the name
suggests the usr2 register should be used instead. This fixes
reading the Carrier detect status.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Fixes: 90ebc4838666 ("serial: imx: repair and complete handshaking")
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c

index 0df2b1c091aea5860a0b42240e49c2acd72f9ca3..615c0279a1a6ba23e42b4626f39b6568262c11c6 100644 (file)
@@ -740,12 +740,13 @@ static unsigned int imx_get_hwmctrl(struct imx_port *sport)
 {
        unsigned int tmp = TIOCM_DSR;
        unsigned usr1 = readl(sport->port.membase + USR1);
+       unsigned usr2 = readl(sport->port.membase + USR2);
 
        if (usr1 & USR1_RTSS)
                tmp |= TIOCM_CTS;
 
        /* in DCE mode DCDIN is always 0 */
-       if (!(usr1 & USR2_DCDIN))
+       if (!(usr2 & USR2_DCDIN))
                tmp |= TIOCM_CAR;
 
        if (sport->dte_mode)