[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170523143715.yeg3gpkmvlu4l5kt@pengutronix.de>
Date: Tue, 23 May 2017 16:37:15 +0200
From: Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>
To: Steve Twiss <stwiss.opensource@...semi.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Jiri Slaby <jslaby@...e.com>,
LINUX-KERNEL <linux-kernel@...r.kernel.org>,
LINUX-SERIAL <linux-serial@...r.kernel.org>,
Lucas Stach <l.stach@...gutronix.de>,
Support Opensource <Support.Opensource@...semi.com>,
"kernel@...gutronix.de" <kernel@...gutronix.de>
Subject: Re: [PATCH V1] serial: imx: revert setup DCEDTE early and ensure DCD
and RI irqs to be off
Hallo Steve,
On Tue, May 23, 2017 at 02:28:11PM +0000, Steve Twiss wrote:
> 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@...semi.com>
> > > Signed-off-by: Steve Twiss <stwiss.opensource@...semi.com>
> >
> > 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);
>
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/ |
Powered by blists - more mailing lists