tty: serial: imx: remove imx_disable_rx_int
authorTroy Kisky <troy.kisky@boundarydevices.com>
Thu, 16 Nov 2017 18:14:53 +0000 (11:14 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 28 Nov 2017 14:35:51 +0000 (15:35 +0100)
Since imx_disable_rx_int is only called by imx_startup,
let's integrate it into that function. Notice UCR2_ATEN is
never set by the driver. The bit is still cleaned to make
this patch a noop.

Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Acked-by: Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/imx.c

index e4b3d91..16311a2 100644 (file)
@@ -703,25 +703,6 @@ out:
        return IRQ_HANDLED;
 }
 
-static void imx_disable_rx_int(struct imx_port *sport)
-{
-       unsigned long temp;
-
-       /* disable the receiver ready and aging timer interrupts */
-       temp = readl(sport->port.membase + UCR1);
-       temp &= ~(UCR1_RRDYEN);
-       writel(temp, sport->port.membase + UCR1);
-
-       temp = readl(sport->port.membase + UCR2);
-       temp &= ~(UCR2_ATEN);
-       writel(temp, sport->port.membase + UCR2);
-
-       /* disable the rx errors interrupts */
-       temp = readl(sport->port.membase + UCR4);
-       temp &= ~UCR4_OREN;
-       writel(temp, sport->port.membase + UCR4);
-}
-
 static void clear_rx_errors(struct imx_port *sport);
 
 /*
@@ -1252,18 +1233,21 @@ static int imx_startup(struct uart_port *port)
        if (sport->dma_is_inited && !sport->dma_is_enabled)
                imx_enable_dma(sport);
 
-       temp = readl(sport->port.membase + UCR1);
-       temp |= UCR1_RRDYEN | UCR1_UARTEN;
+       temp = readl(sport->port.membase + UCR1) & ~UCR1_RRDYEN;
+       if (!sport->dma_is_enabled)
+               temp |= UCR1_RRDYEN;
+       temp |= UCR1_UARTEN;
        if (sport->have_rtscts)
                        temp |= UCR1_RTSDEN;
 
        writel(temp, sport->port.membase + UCR1);
 
-       temp = readl(sport->port.membase + UCR4);
-       temp |= UCR4_OREN;
+       temp = readl(sport->port.membase + UCR4) & ~UCR4_OREN;
+       if (!sport->dma_is_enabled)
+               temp |= UCR4_OREN;
        writel(temp, sport->port.membase + UCR4);
 
-       temp = readl(sport->port.membase + UCR2);
+       temp = readl(sport->port.membase + UCR2) & ~UCR2_ATEN;
        temp |= (UCR2_RXEN | UCR2_TXEN);
        if (!sport->have_rtscts)
                temp |= UCR2_IRTS;
@@ -1297,10 +1281,8 @@ static int imx_startup(struct uart_port *port)
         * In our iMX53 the average delay for the first reception dropped from
         * approximately 35000 microseconds to 1000 microseconds.
         */
-       if (sport->dma_is_enabled) {
-               imx_disable_rx_int(sport);
+       if (sport->dma_is_enabled)
                start_rx_dma(sport);
-       }
 
        spin_unlock_irqrestore(&sport->port.lock, flags);