freebsd-dev/sys/dev
Justin T. Gibbs 72df3c5621 Sync Perforce IDs, add tranceiver state change support, and correct
numerous error recovery buglets.

Many thanks to Tor Egge for his assistance in diagnosing problems with
the error recovery code.

aic7xxx.c:
	Report missed bus free events using their own sequencer interrupt
	code to avoid confusion with other "bad phase" interrupts.

	Remove a delay used in debugging.  This delay could only be hit
	in certain, very extreme, error recovery scenarios.

	Handle transceiver state changes correctly.  You can now
	plug an SE device into a hot-plug LVD bus without hanging
	the controller.

	When stepping through a critical section, panic if we step
	more than a reasonable number of times.

	After a bus reset, disable bus reset interupts until we either
	our first attempt to (re)select another device, or another device
	attemps to select us.  This removes the need to busy wait in
	kernel for the scsi reset line to fall yet still ensures we
	see any reset events that impact the state of either our initiator
	or target roles.  Before this change, we had the potential of
	servicing a "storm" of reset interrupts if the reset line was
	held for a significant amount of time.

	Indicate the current sequencer address whenever we dump the
	card's state.

aic7xxx.reg:
	Transceiver state change register definitions.

	Add the missed bussfree sequencer interrupt code.

	Re-enable the scsi reset interrupt if it has been
	disabled before every attempt to (re)select a device
	and when we have been selected as a target.

	When being (re)selected, check to see if the selection
	dissappeared just after we enabled our bus free interrupt.
	If the bus has gone free again, go back to the idle loop
	and wait for another selection.

	Note two locations where we should change our behavior
	if ATN is still raised.  If ATN is raised during the
	presentation of a command complete or disconnect message,
	we should ignore the message and expect the target to put
	us in msgout phase.  We don't currently do this as it
	requires some code re-arrangement so that critical sections
	can be properly placed around our handling of these two
	events.  Otherwise, we cannot guarantee that the check of
	ATN is atomic relative to our acking of the message in
	byte (the kernel could assert ATN).

	Only set the IDENTIFY_SEEN flag after we have settled
	on the SCB for this transaction.  The kernel looks at
	this flag before assuming that SCB_TAG is valid.  This
	avoids confusion during certain types of error recovery.

	Add a critical section around findSCB.  We cannot allow
	the kernel to remove an entry from the disconnected
	list while we are traversing it.  Ditto for get_free_or_disc_scb.

aic7xxx_freebsd.c:
	Only assume that SCB_TAG is accurate if IDENTIFY_SEEN is
	set in SEQ_FLAGS.

	Fix a typo that caused us to execute some code for the
	non-SCB paging case when paging SCBs.  This only occurred
	during error recovery.
2000-11-10 20:13:41 +00:00
..
aac Return -10 from the PCI probe to allow room for an updated driver to 2000-10-28 10:46:30 +00:00
acpica Remove unused PCI includes. 2000-11-06 22:33:49 +00:00
advansys Remove unneeded <stddef.h> #includes. 2000-10-29 16:57:42 +00:00
agp Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
aha Make a few more mallocs use M_ZERO. 2000-10-29 16:29:05 +00:00
ahb Add the use of M_ZERO to some malloc calls. 2000-10-29 15:47:16 +00:00
aic Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
aic7xxx Sync Perforce IDs, add tranceiver state change support, and correct 2000-11-10 20:13:41 +00:00
amd Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
amr Return -10 from the PCI probe to allow room for an updated driver to 2000-10-28 10:46:30 +00:00
an Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
ar Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
asr Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
ata Rearrange the timeouts in the reset code a bit, some ATAPI devices 2000-11-08 21:25:43 +00:00
atkbdc Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
awi Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
bktr Fix typo in comments 2000-10-31 14:30:29 +00:00
buslogic Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
cardbus Initial commit of NEWCARD cardbus side (that actually compiles and works) 2000-10-18 03:37:21 +00:00
ccd Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
cs Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
cy Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
dc Grrrr. Remember to bzero() the mediainfo structures after we allocate 2000-11-03 00:03:03 +00:00
de Convert the de driver into a loadable module. Still missing is an 2000-10-31 01:25:10 +00:00
dec Add missing $FreeBSD$ 2000-05-01 19:54:26 +00:00
dgb Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
dpt Convert all users of fldoff() to offsetof(). fldoff() is bad 2000-10-27 11:45:49 +00:00
ed Network modules are all "if_foo" not "foo". Avoid the confusing spew that 2000-10-15 20:23:27 +00:00
eisa Back out the previous change to the queue(3) interface. 2000-05-26 02:09:24 +00:00
en restore the freebsd local type-cast fixes that I mistakenly removed 2000-11-08 05:45:46 +00:00
ep Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
ex Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
fb Disabled EGA/VGA 1bpp/4bpp modes support. This is not real fix, but this comes 2000-10-31 07:58:34 +00:00
fdc Untangle some resource matching loops that were getting on my nerves 2000-10-15 08:50:45 +00:00
fe The fe driver does not support pnp devices. 2000-11-10 14:05:47 +00:00
fxp Make usual 1-line cardbus support modification. 2000-10-22 06:41:46 +00:00
hea Add back some #include <sys/systm.h> which were needed when <sys/ktr.h> 2000-10-30 20:37:01 +00:00
hfa Add back some #include <sys/systm.h> which were needed when <sys/ktr.h> 2000-10-30 20:37:01 +00:00
ic Add $FreeBSD$ 2000-05-01 20:32:07 +00:00
ichsmb Driver for the Intel 82801AA (ICH) SMBus controller and compatibles. 2000-10-06 00:09:46 +00:00
ida Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
ie Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
iicbus Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
isp I'm dropping the MAINTAINER request and see what happens. If it becomes 2000-10-31 05:55:54 +00:00
ispfw some copyright cleanups 2000-09-21 20:16:04 +00:00
joy Add ADS7182 as a known Joystick. 2000-01-18 08:38:35 +00:00
kbd Remove unneeded #include <sys/proc.h> lines. 2000-10-29 13:57:19 +00:00
lmc Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
lnc Make all Ethernet drivers attach using ether_ifattach() and detach using 2000-07-13 22:54:34 +00:00
mc146818 Add missing $FreeBSD$ 2000-05-01 19:54:26 +00:00
mca Set the RF_SHAREABLE flage when we allocate an IRQ. 2000-03-13 11:43:53 +00:00
mcd Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
md Avoid the modules madness I inadvertently introduced by making the 2000-09-02 19:17:34 +00:00
mii Catch up to moving headers: 2000-10-20 07:58:15 +00:00
mlx Return -10 from the PCI probe to allow room for an updated driver to 2000-10-28 10:46:30 +00:00
mly Convert all users of fldoff() to offsetof(). fldoff() is bad 2000-10-27 11:45:49 +00:00
mse Initiate deorbit burn sequence for <machine/mouse.h>. 2000-10-09 08:08:36 +00:00
musycc Always emply the NCO to attenuate jitter. The Receive clock recovery 2000-11-04 23:23:27 +00:00
ncv Change flags of ncv and nsp driver. Both were conflicted with the flags 2000-10-29 06:54:32 +00:00
nsp Change flags of ncv and nsp driver. Both were conflicted with the flags 2000-10-29 06:54:32 +00:00
null During a verbose boot, call the null device 'null' rather than 'null0' to 2000-10-06 00:46:29 +00:00
ofw OpenFirmware/PowerPC loader, part 2. 2000-11-10 06:39:58 +00:00
pccard Make a few more mallocs use M_ZERO. 2000-10-29 16:29:05 +00:00
pccbb Cleanup allocation of resources for 16-bits. We now do the right 2000-10-22 04:37:57 +00:00
pcf Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
pci fix warning compile error about unused variable 2000-10-29 10:07:43 +00:00
pcic Remove some silly debug writes and code that we don't need 2000-10-18 02:22:39 +00:00
pdq Remove unneeded <stddef.h> #includes. 2000-10-29 16:57:42 +00:00
ppbus Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
ppc Add support for the PC87303 chipset (found on Miata alphas) and add 2000-07-20 09:28:07 +00:00
random Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
ray Add attribute memory setup warnings 2000-07-11 21:31:59 +00:00
rc Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
rp Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
scd Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
sf Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
si Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
sio - Overhaul the software interrupt code to use interrupt threads for each 2000-10-25 05:19:40 +00:00
sk Fix a couple of cases where I tried to release the I/O space resource twice 2000-11-02 00:00:30 +00:00
smbus Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
sn Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
snc Remove unused #includes. 2000-10-31 08:22:26 +00:00
snp Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
sound adjust dma channels for vibra16x; recording should now work. full duplex does 2000-11-07 00:38:59 +00:00
speaker Add PnP probe methods to some common AT hardware drivers. In each case, 2000-06-23 07:44:33 +00:00
sr Mass update of isa drivers using compatability shims to use 2000-05-28 13:40:48 +00:00
stg Remove unnecessary printf(). 2000-10-29 06:03:47 +00:00
streams Cleanup after repo copy of sys/svr4 to sys/compat/svr4. 2000-09-01 08:47:14 +00:00
sym Convert all users of fldoff() to offsetof(). fldoff() is bad 2000-10-27 11:45:49 +00:00
syscons Don't needlessly indirect the APM softstate. It does nothing but 2000-10-31 21:00:15 +00:00
tdfx Added some handling code to work with SLI configs, and removed some unused 2000-10-10 03:51:54 +00:00
ti (Introduce something sitting in my repo for 3 weeks now...) 2000-10-21 00:13:35 +00:00
twe If we can't get a command to back the bio we just took off the queue, 2000-11-03 16:11:05 +00:00
tx Add missing delay after card reset. 2000-11-09 17:25:49 +00:00
usb Fix for powering off a HP DJ950C during printing. As stated by Ian: 2000-11-07 10:50:34 +00:00
vinum Get rid of the last traces of ACTUALLY_LKM_NOT_KERNEL 2000-10-23 08:35:41 +00:00
vn Call make_dev() with the correct minor number. 2000-09-26 19:09:44 +00:00
vr Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
vx Update the vortex driver so that it no longer needs the PCI compat 2000-11-07 00:56:14 +00:00
wds Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
wi Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
wl Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
xe Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00