PERFORCE change 37484 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed Sep 3 23:42:38 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=37484
Change 37484 by marcel at marcel_nfs on 2003/09/03 23:42:28
Disable input flow control using CTS. I think the problem is
that we're writing the status (ie parity error or framing error)
into the receive FIFO. As such, we can only receive half as
much characters than when we don't do that. The threshold at
which RTS is deasserted is 28. Of course this assumes that we
can write 32 characters in the FIFO. But if you write status
bytes as wellm the FIFO is full at 16. Hence, we never reach
the threshold.
The alternative is to not write the status byte into the RFIFO,
but that means that we won't know which character or characters
in the FIFO have parity errors and/or framing errors. We just
get an interrupt to tell us that the UART has detected some
error, which given all the non-deterministic latencies is not
informative. The Linux driver apparently marks ALL characters
with the parity or framing error. I think that's rather brain-
dead.
Affected files ...
.. //depot/projects/uart/dev/uart/uart_dev_sab82532.c#22 edit
Differences ...
==== //depot/projects/uart/dev/uart/uart_dev_sab82532.c#22 (text+ko) ====
@@ -556,7 +556,7 @@
break;
case SAB_VSTR_V_32:
vstr = "v3.2";
- sc->sc_hwiflow = 1;
+ sc->sc_hwiflow = 0; /* CTS doesn't work with RFC:RFDF. */
sc->sc_hwoflow = 1;
break;
default:
More information about the p4-projects
mailing list