mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
libata-core: Be a bit more relaxed about early DMA zero devices
I guess Windows didn't care about the command so neither did they Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
edc9305284
commit
3acaf94bb0
1 changed files with 7 additions and 3 deletions
|
@ -2882,6 +2882,13 @@ static int ata_dev_set_mode(struct ata_device *dev)
|
|||
dev->pio_mode <= XFER_PIO_2)
|
||||
err_mask &= ~AC_ERR_DEV;
|
||||
|
||||
/* Early MWDMA devices do DMA but don't allow DMA mode setting.
|
||||
Don't fail an MWDMA0 set IFF the device indicates it is in MWDMA0 */
|
||||
if (dev->xfer_shift == ATA_SHIFT_MWDMA &&
|
||||
dev->dma_mode == XFER_MW_DMA_0 &&
|
||||
(dev->id[63] >> 8) & 1)
|
||||
err_mask &= ~AC_ERR_DEV;
|
||||
|
||||
if (err_mask) {
|
||||
ata_dev_printk(dev, KERN_ERR, "failed to set xfermode "
|
||||
"(err_mask=0x%x)\n", err_mask);
|
||||
|
@ -3943,9 +3950,6 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
|
|||
{ "_NEC DV5800A", NULL, ATA_HORKAGE_NODMA },
|
||||
{ "SAMSUNG CD-ROM SN-124", "N001", ATA_HORKAGE_NODMA },
|
||||
{ "Seagate STT20000A", NULL, ATA_HORKAGE_NODMA },
|
||||
{ "IOMEGA ZIP 250 ATAPI", NULL, ATA_HORKAGE_NODMA }, /* temporary fix */
|
||||
{ "IOMEGA ZIP 250 ATAPI Floppy",
|
||||
NULL, ATA_HORKAGE_NODMA },
|
||||
/* Odd clown on sil3726/4726 PMPs */
|
||||
{ "Config Disk", NULL, ATA_HORKAGE_NODMA |
|
||||
ATA_HORKAGE_SKIP_PM },
|
||||
|
|
Loading…
Reference in a new issue