Re: [PATCH 15/15] tty: serial: 8250: omap: add dma support

From: Tony Lindgren
Date: Tue Sep 02 2014 - 16:15:52 EST


* Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> [140902 11:40]:
> On 09/01/2014 07:47 PM, Sebastian Andrzej Siewior wrote:
> > Comparing it with serial-omap I see the same thing: I takes approx the
> > same amount of data until the first one is displayed. After a lot of
> > "long" writes which wake the chip up from idle I manage to freeze both,
> > the serial-omap driver and mine driver.
>
> So after some testing:
> - it happens with omap-serial as well. Especially after disabling the
> LED trigger for both LEDs.
>
> - it seemed that disabling the MDR1 check whether or not we lost
> context made the problem appear less often but it was a trick. Even
> with restoring the context each time I see the same problem.
>
> - it seems to be easier to trigger with the LED trigger switched off.
> However sometimes it works for 10 minutes, sometimes it triggers
> after one.
>
> - I see to face two kind of "deaths":
> - the LED still goes on and off and the uart just does not respond
> even if I tell the button print something on the screen (the button
> also changes the frequency of the LED so I know that the button is
> doing something).
> Also from dumping the content of /proc/interrupts it seems that a
> wake up is made, the uart should have restored the registers.

OK yeah this is the case I was seeing too. So do you just set the
LED triggers to none in sysfs to make it easier to reproduce?

> - one where the system is dead and the LED does not blink anymore.
> Also my button is dead.

This I don't think I've seen. This could also be the errata issue on
your earlier rev beagleboard-xm with off-idle.

> - disabling DMA makes the problem not go away.

OK

> - mdelay(25) in omap8250_lost_context() is long enough to drop the 403
> bytes I send in my testcase. That means I see only "good" characters.
> With this the box remained alive for 2h. However the uart died anyway.

I wonder if doing some TX on the uart restores it? So maybe try

$ while [ 1 ]; do date; sleep 10 done &

To have it occasionally print something in the background.

Regards,

Tony

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/