linux-mips
[Top] [All Lists]

[PATCH 2/3] libata: Add special ata_pio_need_iordy() handling for Compac

To: linux-ide@vger.kernel.org
Subject: [PATCH 2/3] libata: Add special ata_pio_need_iordy() handling for Compact Flash.
From: David Daney <ddaney@caviumnetworks.com>
Date: Wed, 10 Dec 2008 15:39:12 -0800
Cc: linux-mips@linux-mips.org, David Daney <ddaney@caviumnetworks.com>
In-reply-to: <494052D1.10208@caviumnetworks.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <494052D1.10208@caviumnetworks.com>
Sender: linux-mips-bounce@linux-mips.org
According to the Compact Flash specification r4.1, PIO modes 5 and 6
do not use iordy.

Signed-off-by: David Daney <ddaney@caviumnetworks.com>
---
 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 1be2dde..b4a35d8 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -1923,6 +1923,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;
-- 
1.5.6.5


<Prev in Thread] Current Thread [Next in Thread>