summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2008-12-09 17:14:04 +0900
committerJeff Garzik <jgarzik@redhat.com>2008-12-16 05:40:34 -0500
commit3ee89f177e3cef0b5b024bcb6df683a3fa7d795f (patch)
tree470dd4a4af017728b1e8fdc59614c61a4fa246d1
parentbab5b32a537edc83ff86bff91e46f328339f49f8 (diff)
downloadlinux-3ee89f177e3cef0b5b024bcb6df683a3fa7d795f.tar.gz
linux-3ee89f177e3cef0b5b024bcb6df683a3fa7d795f.tar.bz2
linux-3ee89f177e3cef0b5b024bcb6df683a3fa7d795f.zip
pata_hpt366: no ATAPI DMA
IDE hpt366 driver doesn't allow DMA for ATAPI devices and MWDMA2 on ATAPI device locks up pata_hpt366. Follow the suit. Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r--drivers/ata/pata_hpt366.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c
index 4824821745a2..e0c4f05d7d57 100644
--- a/drivers/ata/pata_hpt366.c
+++ b/drivers/ata/pata_hpt366.c
@@ -183,7 +183,9 @@ static unsigned long hpt366_filter(struct ata_device *adev, unsigned long mask)
mask &= ~(0xF8 << ATA_SHIFT_UDMA);
if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4))
mask &= ~(0xF0 << ATA_SHIFT_UDMA);
- }
+ } else if (adev->class == ATA_DEV_ATAPI)
+ mask &= ~(ATA_MASK_MWDMA | ATA_MASK_UDMA);
+
return ata_bmdma_mode_filter(adev, mask);
}