From: Robert Hancock Date: Wed, 24 Jan 2007 02:09:02 +0000 (-0600) Subject: sata_nv: don't rely on NV_INT_DEV indication with ADMA X-Git-Tag: v2.6.20-rc6~10 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f740d1689d91415cfc749d17138a11ed03b7d38b;p=pandora-kernel.git sata_nv: don't rely on NV_INT_DEV indication with ADMA 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 Signed-off-by: Jeff Garzik --- Reading git-diff-tree failed