Revision f740d1689d91415cfc749d17138a11ed03b7d38b authored by Robert Hancock on 24 January 2007, 02:09:02 UTC, committed by Jeff Garzik on 24 January 2007, 07:01:49 UTC
Several people reported issues with certain drive commands timing out on sata_nv controllers running in ADMA mode. The commands in question were non-DMA-mapped commands, usually FLUSH CACHE or FLUSH CACHE EXT. From experimentation it appears that the NV_INT_DEV indication isn't always set when a legitimate command completion interrupt is received on a legacy-mode command, at least not on these controllers in ADMA mode. When a command is pending on the port, force the flag on always in the irq_stat value before calling nv_host_intr so that the drive busy state is always checked by ata_host_intr. This also fixes some questionable code in nv_host_intr which called ata_check_status when a command was pending and ata_host_intr returned "unhandled". If the device interrupted at just the wrong time this could cause interrupts to be lost. Signed-off-by: Robert Hancock <hancockr@shaw.ca> Signed-off-by: Jeff Garzik <jeff@garzik.org>
1 parent 82490c0
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 19.8 KB |
Makefile | -rw-r--r-- | 874 bytes |
calibrate.c | -rw-r--r-- | 4.7 KB |
do_mounts.c | -rw-r--r-- | 9.4 KB |
do_mounts.h | -rw-r--r-- | 1.4 KB |
do_mounts_initrd.c | -rw-r--r-- | 3.0 KB |
do_mounts_md.c | -rw-r--r-- | 7.3 KB |
do_mounts_rd.c | -rw-r--r-- | 10.0 KB |
initramfs.c | -rw-r--r-- | 11.6 KB |
main.c | -rw-r--r-- | 18.7 KB |
version.c | -rw-r--r-- | 1.0 KB |
Computing file changes ...