Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f026d6b authored by Jiada Wang's avatar Jiada Wang Committed by Greg Kroah-Hartman
Browse files

serial: imx: Enable UCR4_OREN in startup interface



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: default avatarJiada Wang <jiada_wang@mentor.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ee5e7c10
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -611,13 +611,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);
@@ -1178,6 +1171,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)