diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index d5939e6..ad5fd5b 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -1769,6 +1769,7 @@ int ata_dev_read_id(struct ata_device *d goto retry; } +#if 0 if ((flags & ATA_READID_POSTRESET) && class == ATA_DEV_ATA) { /* * The exact sequence expected by certain pre-ATA4 drives is: @@ -1793,6 +1794,7 @@ int ata_dev_read_id(struct ata_device *d goto retry; } } +#endif *p_class = class; @@ -2778,7 +2780,9 @@ static int ata_dev_set_mode(struct ata_d if (dev->xfer_shift == ATA_SHIFT_PIO) dev->flags |= ATA_DFLAG_PIO; - err_mask = ata_dev_set_xfermode(dev); + err_mask = 0; + if (!(dev->xfer_shift == ATA_SHIFT_PIO && ata_id_is_cfa(dev->id))) + 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;