|
@@ -2333,6 +2333,10 @@ static int ata_dev_set_mode(struct ata_device *dev)
|
|
|
dev->flags |= ATA_DFLAG_PIO;
|
|
|
|
|
|
err_mask = ata_dev_set_xfermode(dev);
|
|
|
+ /* Old CFA may refuse this command, which is just fine */
|
|
|
+ if (dev->xfer_shift == ATA_SHIFT_PIO && ata_id_is_cfa(dev->id))
|
|
|
+ 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);
|