6d14c339f6
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. |
||
---|---|---|
.. | ||
aicasm | ||
aic7xxx_asm.1 | ||
aic7xxx_asm.c | ||
aic7xxx_reg.h | ||
aic7xxx.seq | ||
aicasm.c |