Subject: Re: More com driver changes; need testers
To: None <gson@araneus.fi>
From: Markus Kilbinger <kilbi@rad.rwth-aachen.de>
List: port-i386
Date: 05/01/1997 18:05:07
>>>>> "Andreas" == Andreas Gustafsson <gson@araneus.fi> writes:

    Andreas> Markus Kilbinger <kilbi@rad.rwth-aachen.de> said:
    >> Hmm, I tried the patch, but it didn't change anything
    >> obviously. There are still lost chars on output decreasing
    >> dramatically the final transmission rate even at a serial speed
    >> down to 38400 baud.

    Andreas> I was also recently suffering from lost output characters
    Andreas> on a com port, after upgrading (!) the port from a 16450
    Andreas> to a 16550.

    Andreas> The reason for this lossage appears to be that the com
    Andreas> driver always fills the _whole_ 16550 output FIFO with
    Andreas> data whenever it gets a "transmitter ready" interrupt.
    Andreas> Since there is no way of stopping transmission of the
    Andreas> data once it has been loaded into the FIFO, it means that
    Andreas> if CTS drops immediately after the FIFO has been filled,
    Andreas> up to 16 characters will still be transmitted before the
    Andreas> flow control takes effect.  This is more than enough to
    Andreas> overflow the input buffer on some devices.

That would reflect my impression.

    Andreas> I see no way around this problem other than reducing the
    Andreas> amount of data loaded into the FIFO on each transmit
    Andreas> interrupt.  On my own system, I simply reduced it to a
    Andreas> single character; that cured the problem for me.  Here's
    Andreas> the patch I'm using (against the stock 1.2 com.c):

'Cause I'm using the -current sources I thought that reducing the
'...fifolen' from '16' to '1' for a 16550a would be equivalent to that
patch, but it didn't help, too :-(.

Markus.