From 5a20da0dab8d1623dfcfe82ea973d744917672aa Mon Sep 17 00:00:00 2001 From: David Daney Date: Wed, 10 Dec 2008 15:39:12 -0800 Subject: [PATCH] --- yaml --- r: 127709 b: refs/heads/master c: 5c18c4d28ba9a29203c1dc6b7c64df63ca00938a h: refs/heads/master i: 127707: 27b9036d5e6e850dc650d6e0832ad53919ec59aa v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-core.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index bcabcf04b615..75dad5d256ee 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 78a7ba47fbc34a387e6347179ba571236596efbb +refs/heads/master: 5c18c4d28ba9a29203c1dc6b7c64df63ca00938a diff --git a/trunk/drivers/ata/libata-core.c b/trunk/drivers/ata/libata-core.c index 9ae583554c8b..175df54eb664 100644 --- a/trunk/drivers/ata/libata-core.c +++ b/trunk/drivers/ata/libata-core.c @@ -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;