patch "tty: serial: OMAP: ensure FIFO levels are set correctly in non-DMA" added to tty tree
neilb at suse.de
Fri Feb 3 22:09:23 EST 2012
On Fri, 3 Feb 2012 19:06:19 -0700 (MST) Paul Walmsley <paul at pwsan.com> wrote:
> Hi Neil
> On Sat, 4 Feb 2012, NeilBrown wrote:
> > Guess what happens if I set autosuspend_delay_ms to 0?
> > Massive transmit problems. Driver can hardly get anything out before the
> > UART's fclk is cut...
> Just reproduced this on 35xx BeagleBoard. Looks like the UART is indeed
> going idle while the TX FIFO has bytes in it.
That makes me happy :-)
> Here's a patch that helps. It seems to work down to an
> autosuspend_delay_ms of 1 ms. Without it, the best I can get is 8 ms.
> Of course, ideally it should work fine at autosuspend_delay_ms = 0, so
> likely there's some other infelicity that we're currently missing.
> Neil, care to give this a test and confirm it on your setup?
Yes, that seems to make the output corruption go away.
Even with small autosuspend_delay_ms down to 0 it doesn't corrupt output,
but as the first input byte is corrupted, I cannot really type with those
setting (so I ssh to gain control again).
The patch disables the IDLEMODE_SMART setting that happens on runtime
suspend/resume so that the IDLEMODE_NO setting stays in force.
So it clearly isn't "stopping the clocks" that is the problem - as I first
imagined - but rather the SIDLE handshake isn't doing what we think it should
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 828 bytes
Desc: not available
More information about the linux-arm-kernel