Thread (15 messages) 15 messages, 3 authors, 2017-05-24

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

From: Uwe Kleine-König <hidden>
Date: 2017-05-23 14:37:20
Also in: lkml

Hallo Steve,

On Tue, May 23, 2017 at 02:28:11PM +0000, Steve Twiss wrote:
quoted hunk ↗ jump to hunk
On 23 May 2017 15:10, Uwe Kleine-König wrote:
quoted
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:
quoted
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 <redacted>
Signed-off-by: Steve Twiss <redacted>
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 ...
quoted
	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);
Yeah, that's the patch I meant.
I've added that to my working directory, but I am still seeing the corrupted
console output on the i.MX6 Q (quad) board.
I don't have a failing board (I think). So here are a few questions
about yours:

 - how does the dts snippet for your failing device look like?
 - This is not the device the console runs on, right?
 - Can you initialize the device in the bootloader and check if it is
   working there?
 - Does it make a difference in Linux if the bootloader used the device
   before?
 - Can you dump the register space of the uart with v4.12-rc2 and
   v4.12-rc2 + revert of e61c38d85b7392e?

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help