Re: serial flow control appears broken

From: Lee Howard
Date: Fri Jul 27 2007 - 01:54:36 EST


Alan Cox wrote:

Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

It's a Shuttle HOT-661 motherboard (VIA Apollo Pro Plus mainboard chipset). Both FreeBSD and Linux identify the serial chipset type as 16550A.



So you've got 16bytes of buffering. That ought to be enough on a modern
PC. The older kernels use quite limited internal buffers which may be a
factor, the current ones have a rewritten tty buffering layer which may
improve matters enormously.


So, does this explain why I wouldn't have a problem at 115200 bps with kernel 2.2.5 but why I do with 2.6.5 and 2.6.18? Both hardware and software flow control work fine with 2.2.5 (meaning I don't see any error message and I don't have any data corruption), but neither works to avoid the "kernel: ttyS1: 1 input overrun(s)" and consequent data corruption issue in 2.6.5 nor 2.6.18.

Was there some associated application change in tty handling that needed to occur between the 2.2 and 2.6 kernels to properly implement flow control?

Thanks,

Lee.
-
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/