freebsd-dev/sys/i386/scsi
Justin T. Gibbs 74bb76f011 Be even more careful in how we manipulate the QOUTQCNT variable. Now we
do reset it from the QOUTCNT register inside a pause/unpause.  This now happens
once per command complete interrupt in the paging case (one interrupt can be
for multiple completed commands).  I may introduce a counter and do a lazy
update in the future, similar to what is done with the QINCNT.

Enhance the QUEUE FULL condition handling so that the number of openings will
be reduced.  This has become more important now that the driver is faster.
This code really belongs in the gerneric SCSI layer, as will be the case once
3.0 gets the code from the 'SCSI' branch.

Add some #if 0'd out trace code I've been using to help debug sequencer
problems.

Fix the SCB paging problem that I was seeing.  This was only on my 7850
controller and stems from the fact that its QINFIFO can only handle 3bit
SCB identifiers.  This means that you can only have 8 transactions open at
a time with the current paging scheme to these controllers.  The code added
to enforce this is generic in that it tests for the number of relevent bits
that the QINFIFO can store and adjusts the max accordingly.  It may be possible
to come up with a scheme that allows for more than 8 commands at a time, but
I don't know that it is worth the effort simply to fix a low end card.  The
aic7880 still can do 255.

This problem may be related to what Andrey was seeing since I don't have n
aic7770 rev E chip here to test on, but as soon as someone probes one of these
cards with this new code, the dmesg output will tell the whole story.
1996-11-16 01:19:14 +00:00
..
93cx6.c Add basic support for the 398X cards as multi-channel SCSI host adapters. 1996-10-28 06:10:02 +00:00
93cx6.h Add basic support for the 398X cards as multi-channel SCSI host adapters. 1996-10-28 06:10:02 +00:00
advansys.c Update to changes in generic SCSI layer. 1996-11-05 09:20:08 +00:00
advansys.h Advanced Systems Inc. SCSI Controller driver and ISA/VL front end. 1996-10-07 02:07:07 +00:00
aic7xxx.c Be even more careful in how we manipulate the QOUTQCNT variable. Now we 1996-11-16 01:19:14 +00:00
aic7xxx.h Clean up the memory mapped/Programmed I/O stuff so that the driver completely 1996-11-11 05:24:46 +00:00
bt.c oops somehow this dissppeared along the way.. 1996-08-19 02:42:40 +00:00
btreg.h Fixed pessimized (short) i/o port type. 1996-11-11 15:29:15 +00:00