Source-Changes archive

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

CVS commit: syssrc/sys



Module Name:    syssrc
Committed By:   thorpej
Date:           Fri Apr 12 19:32:31 UTC 2002

Modified Files:
        syssrc/sys/arch/evbarm/iq80310: com_obio.c
        syssrc/sys/dev/ic: com.c comvar.h

Log Message:
* Add a new hwflag, COM_HW_NO_TXPRELOAD, which tells comstart() to
  not pre-load the chip's Tx buffer, but instead waits for the Tx Ready
  interrupt to transmit the first chunk of data.
* On the IOP310, set COM_HW_NO_TXPRELOAD, rather than COM_HW_TXFIFO_DISABLE.

This solves the "UART hangs" problem on the Npwr in a nicer way (i.e. we
get to use the FIFO, whee).  The COM_HW_NO_TXPRELOAD happens to match the
Linux 16550 driver's Tx algorithm, and the "UART hang" was never observed
on the Npwr running Linux.

Eventually, we might want to eliminate the COM_HW_NO_TXPRELOAD, and simply
always use its algorithm.  But it should be tested on more 16x50 variants
before we do that.

Kudos to Valeriy Ushakov <uwe%netbsd.org@localhost> for pointing out this 
solution
(which also happens to fix the stray UART interrupt issue on the Krups
Javastation), and to Allen Briggs <briggs%netbsd.org@localhost> for 
experimenting
with various methods of fixing this.


To generate a diff of this commit:
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/evbarm/iq80310/com_obio.c
cvs rdiff -r1.194 -r1.195 syssrc/sys/dev/ic/com.c
cvs rdiff -r1.42 -r1.43 syssrc/sys/dev/ic/comvar.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index