freebsd-nq/sys/dev/aic7xxx
Justin T. Gibbs 73f1c25915 Clean up error recovery code:
aic7xxx.c:
	In target mode, reset the TQINPOS on every restart of the sequencer.
	In the past we did this only during a bus reset, but there are other
	reasons the sequencer might be reset.

	In ahc_clear_critical_section(), disable pausing chip interrupts while
	we step the sequencer out of a critical section.  This avoids the
	possibility of getting a pausing interrupt (unexpected bus free,
	bus reset, etc.) that would prevent the sequencer from stepping.

	Send the correct async notifications in the case of a BDR or bus reset.

	In ahc_loadseq(), correct the calculation of our critical sections.
	In some cases, the sections would be larger than needed.

aic7xxx.h:
	Remove an unused SCB flag.

aic7xxx.seq:
	MK_MESSAGE is cleared by the kernel, there is no need to waste
	a sequencer instruction clearing it.

aic7xxx_freebsd.c:
	Go through the host message loop instead of issuing a single
	byte message directly in the ahc_timeout() case where we
	are currently on the bus to the device.  The effect is the same,
	but this way we get a nice printf saying that an expected BDR
	was delivered instead of an unexpected bus free.

	If we are requeuing an SCB for an error recovery action, be sure
	to set the DISCONNECTED flag in the in-core version of the SCB.
	This ensures that, in the SCB-paging case, the sequencer will
	still recognize the reselection as valid even if the version
	of the SCB with this flag set was never previously paged out
	to system memory.  In the non-paging case, set the MK_MESSAGE
	flag in SCB_CONTROL directly.

aic7xxx_pci.c:
	Enable the Memeory Write and Invalidate bug workaround for
	all aic7880 chips with revs < 1.  This bug is rarely triggered
	in FreeBSD as most transfers end on cache-aligned boundaries,
	but a recheck of my references indicates that these chips
	are affected.
2000-10-09 01:46:01 +00:00
..
aicasm Correct pedantic errors in arrays generated by the assembler (trailing 2000-10-05 04:25:42 +00:00
ahc_eisa.c Move aicasm to its own subdirectory. 2000-09-16 20:02:28 +00:00
ahc_pci.c Add Perforce RCSIDs for easy revision correlation to my local tree. 2000-09-22 22:18:05 +00:00
aic7xxx_93cx6.c Add Perforce RCSIDs for easy revision correlation to my local tree. 2000-09-22 22:18:05 +00:00
aic7xxx_93cx6.h Add Perforce RCSIDs for easy revision correlation to my local tree. 2000-09-22 22:18:05 +00:00
aic7xxx_freebsd.c Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7xxx_freebsd.h Convert the driver to use a single DMA for fetching new commands instead 2000-10-05 04:24:14 +00:00
aic7xxx_inline.h Convert the driver to use a single DMA for fetching new commands instead 2000-10-05 04:24:14 +00:00
aic7xxx_osm.c Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7xxx_osm.h Convert the driver to use a single DMA for fetching new commands instead 2000-10-05 04:24:14 +00:00
aic7xxx_pci.c Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7xxx.c Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7xxx.h Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7xxx.reg Convert the driver to use a single DMA for fetching new commands instead 2000-10-05 04:24:14 +00:00
aic7xxx.seq Clean up error recovery code: 2000-10-09 01:46:01 +00:00
aic7770.c Move aicasm to its own subdirectory. 2000-09-16 20:02:28 +00:00