Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c88f90c3779cd5e710f2acdf59ad2bd0380de98d
Commit:     c88f90c3779cd5e710f2acdf59ad2bd0380de98d
Parent:     7dc951aefdc1dc20228691b04867fb6195864d67
Author:     Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Tue Nov 27 19:43:48 2007 +0900
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Wed Jan 23 05:24:12 2008 -0500

    libata: add ATA_CBL_PATA_IGN
    
    ATA_CBL_PATA_UNK indicates that the cable type can't be determined
    from the host side and might be either 80c or 40c.  libata applies
    drive or other generic limit in this case.  However, there are
    controllers where both host and drive side detections are
    misimplemented and the driver has to rely solely on private method -
    peeking BIOS or ACPI configuration or using some other private
    mechanism.
    
    This patch adds ATA_CBL_PATA_IGN which tells libata to ignore the
    cable type completely and just let the LLD determine the transfer mode
    via host transfer mode masks and ->mode_filter().
    
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Cc: Alan Cox <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/ata/libata-core.c |   13 +++++++++++++
 include/linux/ata.h       |    7 ++++---
 include/linux/libata.h    |    1 +
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 7115953..62c4b32 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2354,6 +2354,18 @@ int ata_cable_unknown(struct ata_port *ap)
 }
 
 /**
+ *     ata_cable_ignore        -       return ignored PATA cable.
+ *     @ap: port
+ *
+ *     Helper method for drivers which don't use cable type to limit
+ *     transfer mode.
+ */
+int ata_cable_ignore(struct ata_port *ap)
+{
+       return ATA_CBL_PATA_IGN;
+}
+
+/**
  *     ata_cable_sata  -       return SATA cable type
  *     @ap: port
  *
@@ -7665,4 +7677,5 @@ EXPORT_SYMBOL_GPL(ata_dev_try_classify);
 EXPORT_SYMBOL_GPL(ata_cable_40wire);
 EXPORT_SYMBOL_GPL(ata_cable_80wire);
 EXPORT_SYMBOL_GPL(ata_cable_unknown);
+EXPORT_SYMBOL_GPL(ata_cable_ignore);
 EXPORT_SYMBOL_GPL(ata_cable_sata);
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 43fecf6..c17e940 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -286,9 +286,10 @@ enum {
        ATA_CBL_NONE            = 0,
        ATA_CBL_PATA40          = 1,
        ATA_CBL_PATA80          = 2,
-       ATA_CBL_PATA40_SHORT    = 3,            /* 40 wire cable to high UDMA 
spec */
-       ATA_CBL_PATA_UNK        = 4,
-       ATA_CBL_SATA            = 5,
+       ATA_CBL_PATA40_SHORT    = 3,    /* 40 wire cable to high UDMA spec */
+       ATA_CBL_PATA_UNK        = 4,    /* don't know, maybe 80c? */
+       ATA_CBL_PATA_IGN        = 5,    /* don't know, ignore cable handling */
+       ATA_CBL_SATA            = 6,
 
        /* SATA Status and Control Registers */
        SCR_STATUS              = 0,
diff --git a/include/linux/libata.h b/include/linux/libata.h
index d9eb20c..bdb7c6e 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -927,6 +927,7 @@ extern u8 ata_irq_on(struct ata_port *ap);
 extern int ata_cable_40wire(struct ata_port *ap);
 extern int ata_cable_80wire(struct ata_port *ap);
 extern int ata_cable_sata(struct ata_port *ap);
+extern int ata_cable_ignore(struct ata_port *ap);
 extern int ata_cable_unknown(struct ata_port *ap);
 
 /*
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to