NetBSD/sys/dev
thorpej a228727423 Apply the following change from 06/28/2003 04:46:54 by gibbs to the
FreeBSD ahd driver:

Fix a race condition in the flushing of commands that
have completed across the bus but not to the host before
processing of an exception condition (busfree, bus reset,
etc.).  When flushing the controller of completed commands,
we also look for packetized commands that have completed
with good status and are stored in the "good status fifo".
The hardware will post to the good status fifo even if
data for that command is still active in a FIFO.  In
one particular failure case, a command outstanding on the
bus reconnected, transferred data into a FIFO, and provided
good status while the host driver was processing an expected
busfree event (PPR message negotiation).  This resulted in
an entry in the good status fifo that we completed, but
since the sequencer was paused, the data in the data FIFO
for this command had never been transferred to the host.
Once the busfree processing was complete, the sequencer
was unpaused, and the data completed its transfer to the
host.  In some instances, the client for the data was notified
of the completion and attempted to view the data before
it arrived.  This case only occurred during FreeBSD's
multi-target probe of the SCSI bus while some devices are
negotiating to go packetized and some devices are already
running in packetized.

The fix is to run and FIFOs active with a context in the
good status fifo to completion before completing the command
to the SCSI layer.  This requies duplicating the FIFO rundown
operations in the host driver that would usually be handled
by the firmware, but there is no other alternative.

Don't blindly shutdown the SCB dma engine when restarting
the sequencer.  We may be killing an operation that is
not supposed to be cancelled.  The cases where we need to
shutdown these dma engines are already handled elsewhere in
the driver.

Fix a few more ahd_in?() -> ahd_in?_scbram() instances.
2003-08-29 05:50:42 +00:00
..
acpi check return value of AcpiEnterSleepStatePrep() to catch 2003-08-17 03:45:19 +00:00
apm
arcbios
ata For LBA drives, compute the number of cylinders from the drive capacity 2003-08-03 17:53:04 +00:00
bi Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
bluetooth A little printf-casting to make the DIAGNOSTIC sections of this 2003-07-24 19:19:42 +00:00
cardbus
dec Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
dmover Add support for xor2-xor8 to swdmover. 2003-07-25 13:59:09 +00:00
ebus
eisa
gpib Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
hpc French keydesc for Jornada 680/690. Written based on photos and 2003-08-23 02:48:47 +00:00
i2c
i2o
ic Apply the following change from 06/28/2003 04:46:54 by gibbs to the 2003-08-29 05:50:42 +00:00
ieee1394 sprinkle some LL suffixes on >32 bit number literals 2003-08-04 07:00:19 +00:00
ir
isa Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
isapnp aha and le uses isadma 2003-08-14 10:03:03 +00:00
marvell Try to drain the Tx pending queues after dealing with Rx/Tx interrupts. 2003-08-05 14:55:06 +00:00
mca Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
microcode Apply the following change from 06/28/2003 04:44:10 by gibbs to the 2003-08-29 03:54:06 +00:00
mii
mscp Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
mvme Move the prototype of clock_rtc_config() into <dev/clock_subr.h>. 2003-07-18 19:20:55 +00:00
news
ofisa
ofw Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
pci Apply the following change from 06/28/2003 04:39:49 by gibbs to the 2003-08-29 04:17:39 +00:00
pckbc Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
pcmcia Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
podulebus
qbus Keep track of which addresses that are used by devices, so that probing 2003-08-28 14:59:06 +00:00
raidframe Let boot code include raidframe.h to get RF_PROTECTED_SECTORS. 2003-08-12 10:01:08 +00:00
rasops
rcons Undo previous as it broke things. 2003-08-25 17:50:22 +00:00
sbus change PROM_getprop() from taking a "void **" for the storage, to a 2003-08-27 15:59:49 +00:00
scsipi Added three scsi IDs which were tested by Dave Barnes who sent in 2003-08-07 17:54:26 +00:00
smbus
std
sun cc_callout does not belong to struct cons_channel, as it's only used 2003-08-27 01:37:38 +00:00
sysmon do wakeup() only when someone is waiting for us. 2003-08-11 15:07:14 +00:00
tc Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
usb udav*, for ether w/ Davicom DM9601 chipset. Shingo WATANABE 2003-08-22 05:13:29 +00:00
vme fix error in previous 2003-08-28 16:36:22 +00:00
wscons Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
wsfont Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
xmi
auconv.c
auconv.h
audio_if.h
audio.c
audiovar.h
aurateconv.c
ccd.c Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
ccdvar.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
cgd_crypto.c
cgd_crypto.h
cgd.c
cgdvar.h
clock_subr.c sys/types.h -> sys/param.h to get vax inlines correct. 2003-08-13 11:35:25 +00:00
clock_subr.h Rename clock_rtc_config() to todr_attach(). 2003-07-18 21:41:22 +00:00
clockctl.c
cninit.c Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
cons.c Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
cons.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
DEVNAMES Add qt as the DELQA-PLUS driver. 2003-08-28 10:04:28 +00:00
dksubr.c
dkvar.h
kttcp.c
kttcpio.h
ld.c
ldvar.h
Makefile
md_root.c
md.c
md.h
midi_if.h
midi.c
midisyn.c
midisynvar.h
midivar.h
mm.c
mulaw.c
mulaw.h
radio_if.h
radio.c
radiovar.h
rnd.c
rndpool.c
sequencer.c
sequencervar.h
verified_exec.c
vnd.c Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00
vndvar.h Move UCB-licensed code from 4-clause to 3-clause licence. 2003-08-07 16:26:28 +00:00