serial: imx: Enable RTSD only when needed
authorNandor Han <nandor.han@ge.com>
Wed, 28 Jun 2017 13:59:36 +0000 (15:59 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Jun 2017 15:08:01 +0000 (17:08 +0200)
Currently, this IRQ is always enabled. Some devices might mux these pins
to other I/Os, like I2C. This could lead to spurious interrupts.

This commit makes this IRQ optional, by using the field have_rtscts.

Signed-off-by: Nandor Han <nandor.han@ge.com>
Signed-off-by: Romain Perier <romain.perier@collabora.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c

index cbaf852..e33da75 100644 (file)
@@ -1299,7 +1299,9 @@ static int imx_startup(struct uart_port *port)
                imx_enable_dma(sport);
 
        temp = readl(sport->port.membase + UCR1);
-       temp |= UCR1_RRDYEN | UCR1_RTSDEN | UCR1_UARTEN;
+       temp |= UCR1_RRDYEN | UCR1_UARTEN;
+       if (sport->have_rtscts)
+                       temp |= UCR1_RTSDEN;
 
        writel(temp, sport->port.membase + UCR1);