RE: [PATCH V1] serial: imx: revert setup DCEDTE early and ensure DCD and RI irqs to be off

From: Steve Twiss
Date: Tue May 23 2017 - 10:28:33 EST


Hi Uwe,

Thanks for your quick response.

On 23 May 2017 15:10, Uwe Kleine-König wrote:
> Subject: Re: [PATCH V1] serial: imx: revert setup DCEDTE early and ensure DCD and RI irqs to be off
> On Tue, May 23, 2017 at 01:17:26PM +0100, Steve Twiss wrote:
> >
> > Revert the commit e61c38d85b7392e ("serial: imx: setup DCEDTE early and
> > ensure DCD and RI irqs to be off")
> >
> > The patch submitted to setup DCEDTE early and ensure DCD and RI irqs to
> > be off, causes a serial console display problem the i.MX6Q SABRESD board.
> > The console becomes unreadable and unwritable.
> >
> > Tested-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx>
> > Signed-off-by: Steve Twiss <stwiss.opensource@xxxxxxxxxxx>
>
> You're not the first to report this issue but you still have the chance
> to be the first to test a suggested patch for it.

I've just applied your patch against a clean linux-next/v4.12-rc2
I added your patch ...

> http://marc.info/?l=linux-serial&m=149434029912947&w=2

(this one?)

diff --git a/gp_sparse/linux-next/v4.12-rc2/drivers/tty/serial/imx.c b/gp_sparse/linux-next/v4.12-rc2/drivers/tty/serial/imx.c
index 33509b4..2182548 100644
--- a/gp_sparse/linux-next/v4.12-rc2/drivers/tty/serial/imx.c
+++ b/gp_sparse/linux-next/v4.12-rc2/drivers/tty/serial/imx.c
@@ -2193,9 +2193,14 @@ static int serial_imx_probe(struct platform_device *pdev)
*/
writel(IMX21_UCR3_RXDMUXSEL | UCR3_ADNIMP | UCR3_DSR,
sport->port.membase + UCR3);
-
} else {
+ unsigned long ucr3 = UCR3_DSR;
+
+ if (!is_imx1_uart(sport))
+ ucr3 |= IMX21_UCR3_RXDMUXSEL | UCR3_ADNIMP;
+
writel(0, sport->port.membase + UFCR);
+ writel(ucr3, sport->port.membase + UCR3);
}

clk_disable_unprepare(sport->clk_ipg);

I've added that to my working directory, but I am still seeing the corrupted
console output on the i.MX6 Q (quad) board.

Best regards
Steve