diff options
-rw-r--r-- | drivers/ata/libata-core.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 6a2083a6d175..479f95a5c0a3 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -2333,6 +2333,10 @@ static int ata_dev_set_mode(struct ata_device *dev) | |||
2333 | dev->flags |= ATA_DFLAG_PIO; | 2333 | dev->flags |= ATA_DFLAG_PIO; |
2334 | 2334 | ||
2335 | err_mask = ata_dev_set_xfermode(dev); | 2335 | err_mask = ata_dev_set_xfermode(dev); |
2336 | /* Old CFA may refuse this command, which is just fine */ | ||
2337 | if (dev->xfer_shift == ATA_SHIFT_PIO && ata_id_is_cfa(dev->id)) | ||
2338 | err_mask &= ~AC_ERR_DEV; | ||
2339 | |||
2336 | if (err_mask) { | 2340 | if (err_mask) { |
2337 | ata_dev_printk(dev, KERN_ERR, "failed to set xfermode " | 2341 | ata_dev_printk(dev, KERN_ERR, "failed to set xfermode " |
2338 | "(err_mask=0x%x)\n", err_mask); | 2342 | "(err_mask=0x%x)\n", err_mask); |