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