]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
serial: imx: Enable UCR4_OREN in startup interface
authorJiada Wang <jiada_wang@mentor.com>
Tue, 9 Dec 2014 09:11:34 +0000 (18:11 +0900)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 28 Jun 2015 17:39:15 +0000 (13:39 -0400)
[ Upstream commit 6f026d6b7cb6e019b6352ed7fb71497c787fd6d7 ]

Other than enable Receiver Overrun Interrupt Enable (UCR4_OREN)
in start_tx interface, UCR4_OREN should be enabled before enable
of Receiver.

Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/tty/serial/imx.c

index 8f62a3cec23ef89d27217779f3cf9e378241f4b1..7c91f2fd880b6ddad60636749a0dba60c68c3858 100644 (file)
@@ -590,13 +590,6 @@ static void imx_start_tx(struct uart_port *port)
                temp &= ~(UCR1_RRDYEN);
                writel(temp, sport->port.membase + UCR1);
        }
-       /* Clear any pending ORE flag before enabling interrupt */
-       temp = readl(sport->port.membase + USR2);
-       writel(temp | USR2_ORE, sport->port.membase + USR2);
-
-       temp = readl(sport->port.membase + UCR4);
-       temp |= UCR4_OREN;
-       writel(temp, sport->port.membase + UCR4);
 
        if (!sport->dma_is_enabled) {
                temp = readl(sport->port.membase + UCR1);
@@ -1156,6 +1149,14 @@ static int imx_startup(struct uart_port *port)
 
        writel(temp, sport->port.membase + UCR1);
 
+       /* Clear any pending ORE flag before enabling interrupt */
+       temp = readl(sport->port.membase + USR2);
+       writel(temp | USR2_ORE, sport->port.membase + USR2);
+
+       temp = readl(sport->port.membase + UCR4);
+       temp |= UCR4_OREN;
+       writel(temp, sport->port.membase + UCR4);
+
        temp = readl(sport->port.membase + UCR2);
        temp |= (UCR2_RXEN | UCR2_TXEN);
        if (!sport->have_rtscts)