Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bda7970c27b1033de0afa737cd8e5abf9c55c3d2
Commit:     bda7970c27b1033de0afa737cd8e5abf9c55c3d2
Parent:     07047935795917f21dc532c0c17811213cbc2e97
Author:     Tejun Heo <[EMAIL PROTECTED]>
AuthorDate: Thu Oct 11 23:53:59 2007 +0200
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Thu Oct 11 23:53:59 2007 +0200

    ide: make jmicron match vendor and device class
    
    PATA part of all current JMB controllers behave the same way and
    JMicron confirms that all future ones will stay compatible.  Matching
    vendor and device class is enough.
    
    For backward compatibility, jmicron still needs to match 361,3,5,6,8
    DIDs regardless of device class if libata is not configured but won't
    need further DID update from this point.
    
    Bart: cosmetic fixes to jmicron_chipset
    
    Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
    Cc: Ethan Hsiao <[EMAIL PROTECTED]>
    Cc: Justin Tsai <[EMAIL PROTECTED]>
    Cc: Alan Cox <[EMAIL PROTECTED]>
    Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/pci/jmicron.c |   65 +++++++++++++++++---------------------------
 1 files changed, 25 insertions(+), 40 deletions(-)

diff --git a/drivers/ide/pci/jmicron.c b/drivers/ide/pci/jmicron.c
index 65a0ff3..17490d2 100644
--- a/drivers/ide/pci/jmicron.c
+++ b/drivers/ide/pci/jmicron.c
@@ -160,22 +160,13 @@ fallback:
        return;
 }
 
-#define DECLARE_JMB_DEV(name_str)                      \
-       {                                               \
-               .name           = name_str,             \
-               .init_hwif      = init_hwif_jmicron,    \
-               .autodma        = AUTODMA,              \
-               .bootable       = ON_BOARD,             \
-               .enablebits     = { {0x40, 1, 1}, {0x40, 0x10, 0x10} }, \
-               .pio_mask       = ATA_PIO5,             \
-       }
-
-static ide_pci_device_t jmicron_chipsets[] __devinitdata = {
-       /* 0 */ DECLARE_JMB_DEV("JMB361"),
-       /* 1 */ DECLARE_JMB_DEV("JMB363"),
-       /* 2 */ DECLARE_JMB_DEV("JMB365"),
-       /* 3 */ DECLARE_JMB_DEV("JMB366"),
-       /* 4 */ DECLARE_JMB_DEV("JMB368"),
+static ide_pci_device_t jmicron_chipset __devinitdata = {
+       .name           = "JMB",
+       .init_hwif      = init_hwif_jmicron,
+       .autodma        = AUTODMA,
+       .bootable       = ON_BOARD,
+       .enablebits     = { { 0x40, 0x01, 0x01 }, { 0x40, 0x10, 0x10 } },
+       .pio_mask       = ATA_PIO5,
 };
 
 /**
@@ -189,35 +180,29 @@ static ide_pci_device_t jmicron_chipsets[] __devinitdata 
= {
 
 static int __devinit jmicron_init_one(struct pci_dev *dev, const struct 
pci_device_id *id)
 {
-       ide_setup_pci_device(dev, &jmicron_chipsets[id->driver_data]);
+       ide_setup_pci_device(dev, &jmicron_chipset);
        return 0;
 }
 
-/* If libata is configured, jmicron PCI quirk will configure it such
- * that the SATA ports are in AHCI function while the PATA ports are
- * in a separate IDE function.  In such cases, match device class and
- * attach only to IDE.  If libata isn't configured, keep the old
- * behavior for backward compatibility.
+/* All JMB PATA controllers have and will continue to have the same
+ * interface.  Matching vendor and device class is enough for all
+ * current and future controllers if the controller is programmed
+ * properly.
+ *
+ * If libata is configured, jmicron PCI quirk programs the controller
+ * into the correct mode.  If libata isn't configured, match known
+ * device IDs too to maintain backward compatibility.
  */
-#if defined(CONFIG_ATA) || defined(CONFIG_ATA_MODULE)
-#define JMB_CLASS      PCI_CLASS_STORAGE_IDE << 8
-#define JMB_CLASS_MASK 0xffff00
-#else
-#define JMB_CLASS      0
-#define JMB_CLASS_MASK 0
-#endif
-
 static struct pci_device_id jmicron_pci_tbl[] = {
-       { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361,
-         PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 0},
-       { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363,
-         PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 1},
-       { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365,
-         PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 2},
-       { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366,
-         PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 3},
-       { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368,
-         PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 4},
+#if !defined(CONFIG_ATA) && !defined(CONFIG_ATA_MODULE)
+       { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB361) },
+       { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB363) },
+       { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB365) },
+       { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB366) },
+       { PCI_VDEVICE(JMICRON, PCI_DEVICE_ID_JMICRON_JMB368) },
+#endif
+       { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
+         PCI_CLASS_STORAGE_IDE << 8, 0xffff00, 0 },
        { 0, },
 };
 
-
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