|
@@ -2001,6 +2001,10 @@ unsigned int ata_pio_need_iordy(const struct ata_device *adev)
|
|
|
as the caller should know this */
|
|
|
if (adev->link->ap->flags & ATA_FLAG_NO_IORDY)
|
|
|
return 0;
|
|
|
+ /* CF spec. r4.1 Table 22 says no iordy on PIO5 and PIO6. */
|
|
|
+ if (ata_id_is_cfa(adev->id)
|
|
|
+ && (adev->pio_mode == XFER_PIO_5 || adev->pio_mode == XFER_PIO_6))
|
|
|
+ return 0;
|
|
|
/* PIO3 and higher it is mandatory */
|
|
|
if (adev->pio_mode > XFER_PIO_2)
|
|
|
return 1;
|