[patch 27/37] jmicron: make ide jmicron driver play nice with libata ones

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg KH
Date: Friday, March 30, 2007 - 2:06 pm

-stable review patch.  If anyone has any objections, please let us know.

------------------
From: Tejun Heo <htejun@gmail.com>

jmicron: make ide jmicron driver play nice with libata ones

When libata is configured, the device is configured such that SATA and
PATA ports live in separate functions with different programming
interfaces.  pata_jmicron and ide jmicron drivers can drive only the
PATA part.

This patch makes jmicron match PCI class code such that it doesn't
attach itself to the SATA part preventing the proper ahci driver from
attaching.

This change is suggested by Bartlomiej.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: justin@jmicron.com
Cc: Chuck Ebbert <cebbert@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>


---
 drivers/ide/pci/jmicron.c |   29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)

--- a/drivers/ide/pci/jmicron.c
+++ b/drivers/ide/pci/jmicron.c
@@ -240,12 +240,31 @@ static int __devinit jmicron_init_one(st
 	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.
+ */
+#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, 0, 0, 0},
-	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
-	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
-	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
-	{ PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4},
+	{ 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},
 	{ 0, },
 };
 

-- 
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/37] 2.6.20-stable review, Greg KH, (Fri Mar 30, 2:03 pm)
[patch 04/37] UML - fix epoll, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 05/37] UML - host VDSO fix, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 06/37] UML - Fix static linking, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 06/37] UML - Fix static linking, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 08/37] uml: fix unreasonably long udelay, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 13/37] PPP: Fix PPP skb leak, Greg KH, (Fri Mar 30, 2:04 pm)
[patch 18/37] Fix decnet endianness, Greg KH, (Fri Mar 30, 2:05 pm)
[patch 19/37] NET: Fix FIB rules compatability, Greg KH, (Fri Mar 30, 2:05 pm)
[patch 22/37] V4L: Fix SECAM handling on saa7115, Greg KH, (Fri Mar 30, 2:05 pm)
[patch 27/37] jmicron: make ide jmicron driver play nice w ..., Greg KH, (Fri Mar 30, 2:06 pm)
[patch 28/37] i2o: block IO errors on i2o disk, Greg KH, (Fri Mar 30, 2:06 pm)
[patch 34/37] libata bugfix: HDIO_DRIVE_TASK, Greg KH, (Fri Mar 30, 2:06 pm)
[patch 36/37] libata: sata_mv: Fix 50xx irq mask, Greg KH, (Fri Mar 30, 2:07 pm)
Re: [patch 00/37] 2.6.20-stable review, Greg KH, (Fri Mar 30, 2:10 pm)
Re: [patch 34/37] libata bugfix: HDIO_DRIVE_TASK, Mark Lord, (Fri Mar 30, 2:42 pm)
libata bugfix: preserve LBA bit for HDIO_DRIVE_TASK, Mark Lord, (Fri Mar 30, 2:45 pm)
Re: [uml-devel] [patch 06/37] UML - Fix static linking, Blaisorblade, (Fri Mar 30, 6:21 pm)
Re: [patch 00/37] 2.6.20-stable review, Chuck Ebbert, (Wed Apr 4, 7:28 am)