freebsd-nq/sys/dev/aic7xxx
Justin T. Gibbs 6d14c339f6 Clear the SCSI channel after we go to busfree instead of after re/selection.
Only enable reselections once the channel and SCSIRATE have been cleared.

Add a pause block around the test busy code in the non-tagged case to simplify
error recovery in the corner case of aborting an SCB that just got started.

Simplify reselection processing by removing the call to initialize_scsiid.

Clear the scsiseq re/select control bits and setup for catching bogus
busfrees earlier in the re/select process.

Improve the automatic PIO code.  It turns out that SPIORDY is not a reliable
hardware condition bit, so use REQINIT intstead.  Don't rely on PHASEMIS
either since it can take too long to come true.  Use a brute force comparison
instead.

Remove some unnecessary overhead in the command complete processing.  It
should be nearly impossible to overflow the QOUTFIFO (worst case 9 command
have to complete with at least 6 of them requiring paging on an aic7850),
so don't take the additional PIO hit to guard against this condition.  If we
don't see our interrupt in time, the system has bigger problems elsewhere.
If this ever does happen, the timeout handler will notice and retry the
command.
1997-01-22 18:01:07 +00:00
..
aicasm Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
aic7xxx_asm.1 John Aycock's BSD copyrighted sequencer assembler and sequencer code. This 1995-04-15 21:45:56 +00:00
aic7xxx_asm.c Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00
aic7xxx_reg.h Clear the SCSI channel after we go to busfree instead of after re/selection. 1997-01-22 18:01:07 +00:00
aic7xxx.seq Clear the SCSI channel after we go to busfree instead of after re/selection. 1997-01-22 18:01:07 +00:00
aicasm.c Make the long-awaited change from $Id$ to $FreeBSD$ 1997-01-14 07:20:47 +00:00