Thread (66 messages) 66 messages, 11 authors, 2012-02-08

Re: patch "tty: serial: OMAP: ensure FIFO levels are set correctly in non-DMA" added to tty tree

From: NeilBrown <hidden>
Date: 2012-02-03 12:11:13
Also in: linux-arm-kernel, linux-omap

On Fri, 3 Feb 2012 13:42:13 +0200 Grazvydas Ignotas [off-list ref] wrote:
On Fri, Feb 3, 2012 at 11:54 AM, NeilBrown [off-list ref] wrote:
quoted
On Thu, 2 Feb 2012 22:45:53 -0700 (MST) Paul Walmsley [off-list ref] wrote:
quoted
On Fri, 3 Feb 2012, NeilBrown wrote:
quoted
then CPUIDLE enters lower states and I think it uses less power but I
sometimes lose the first char I type (that is known) but also I sometimes get
corruption on output.
I don't see any output corruption on 35xx BeagleBoard, either with or
without these patches.  So this is presumably a 37xx-centric problem, and
unrelated to these patches, I would guess.
Maybe it is 37xx specific.  I think this is a DM3730.
Not sure if it's the same problem but with 3530 on 3.2 with
sleep_timeout set, I usually get first char dropped (as expected) but
sometimes I get corrupted char instead too. Corrupt char seems to
almost always happen if I set cpufreq to powersave, on performace it's
almost always ok, so maybe it's some timing problem,
I see that too - I'm glad someone else does :-)

If I look at the corruption as compared to the expected character, it is
always the case some it has been shifted down a few bits, with '1's shifted
in the top.
As bytes are sent lsb first followed by stop bits which are '1', this is
completely consistent with clocking the bits in a little bit late.

I see this with baud rates of 115200 and higher, but never with lower.

My theory is that there is a delay between the falling RX line waking the
system up, and the CPU enabling the UART - whether enabling the clocks or
doing a full config, I am not sure - though I think the former.

Maybe if we could enable the UART clocks immediately after returning from the
WFI instruction we could avoid the corruption....

NeilBrown

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help