RE: serial flow control appears broken

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Trivial check:

Did you set the CRTSCTS flag in the c_cflag parameter to tcsetattr() in your
linux application code ? Or in the corresponding ioctl(..., TCSETA,...) call
?


> -----Original Message-----
> From: linux-serial-owner@xxxxxxxxxxxxxxx
> [mailto:linux-serial-owner@xxxxxxxxxxxxxxx]On Behalf Of Lee Howard
> Sent: Thursday, July 26, 2007 3:53 AM
> To: linux-serial@xxxxxxxxxxxxxxx; tytso@xxxxxxx; rmk@xxxxxxxxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Subject: serial flow control appears broken
>
>
> Hello.
>
> I have fax modems that will, in their proper behavior with certain
> features, send up to 64 kilobytes of data to the host DTE all
> at once.
> (So, the fax modem handles an incoming fax and periodically will send
> between 256 bytes and 64 kilobytes of data in bursts.)
>
> When the DCE-DTE (modem-to-host) communication rate is established at
> 115200 bps data loss occurs systems using at least Linux
> kernels 2.6.5
> and 2.6.18 (and probably everything in-beween and then some
> more).  This
> is because the modem overflows the host's buffer.  This is
> evidenced in
> kernel logging:
>
> Jul 23 14:01:30 gollum kernel: ttyS1: 1 input overrun(s)
> Jul 23 17:09:45 gollum kernel: ttyS1: 1 input overrun(s)
>
> Normally I would blame the modem itself for not honoring the
> host's flow
> control signals.  However, I have worked with the modem manufacturer
> closely on this matter for over three months now.  In that
> process they
> have improved the responsiveness of the modem and have fixed other
> problems, but the end result is that it truly does appear that the
> serial tty driver is not using flow control.  Whether software flow
> control (XON/XOFF) or hardware flow control (RTS/CTS) is used
> the result
> is the same.
>
> This is evidenced in hardware flow control by a little LED
> labeled "RTS"
> that is on the external modem.  This LED lights up when pin 7
> of the DB9
> serial connection is given +12Vdc current (signalling "RTS"
> is on - that
> the host can accept data).  The LED goes dark when the current is
> removed (signalling that the host cannot accept data).  This
> "RTS" LED
> never flickers at all, as it should, when receiving these
> bursts of data
> - the LED stays lit as long as the serial cable is connected to the
> host... and yet I will see those "input overrun" messages.  Thus, it
> seems quite clear that the Linux serial tty driver is not deasserting
> RTS as it should in hardware flow control.  (And probably the
> analogous
> problem exists in software flow control, too.)
>
> Please tell me what I can do to help you resove and/or remedy this
> matter.  Also, please let me know if I have contacted the
> wrong people.
> (I have cross-posted to linux-kernel as a catch-all.  I am not
> subscribed to either linux-serial or linux-kernel mailing lists.  So
> please CC me in any list responses.)
>
> If it is of any value to know (perhaps they have common
> code?), the same
> error occurs on FreeBSD 6.2 as well.   The problem does not occur on
> Windows.  The problem does not occur on RedHat 6.0 (kernel 2.2.5).
>
> Thanks,
>
> Lee.
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-serial" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

-
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux