Messages in this thread | | | Date | Thu, 16 Aug 2012 15:16:16 +0200 | From | leroy christophe <> | Subject | Re: [PATCH] Powerpc 8xx CPM_UART delay in receive |
| |
Le 14/08/2012 16:52, Alan Cox a écrit : > On Tue, 14 Aug 2012 16:26:28 +0200 > Christophe Leroy <christophe.leroy@c-s.fr> wrote: > >> Hello, >> >> I'm not sure who to address this Patch to either >> >> It fixes a delay issue with CPM UART driver on Powerpc MPC8xx. >> The problem is that with the actual code, the driver waits 32 IDLE patterns before returning the received data to the upper level. It means for instance about 1 second at 300 bauds. >> This fix limits to one byte the waiting period. > Take a look how the 8250 does it - I think you want to set the value > based upon the data rate. Your patch will break it for everyone doing > high seed I/O. > > Alan > I'm not sure I understand what you mean. As far as I can see 8250/16550 is working a bit different, as it is based on a fifo and triggers an interrupt as soon as a given number of bytes is received. I also see that in case this amount is not reached, there is a receive-timeout which goes on after no byte is received for a duration of more than 4 bytes.
The PowerPC CPM is working differently. It doesn't use a fifo but buffers. Buffers are handed to the microprocessor only when they are full or after a timeout period which is adjustable. In the driver, the buffers are configured with a size of 32 bytes. And the timeout is set to the size of the buffer. That is this timeout that I'm reducing to 1 byte in my proposed patch. I can't see what it would break for high speed I/O.
Christophe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |