Skip to contentSkip to conversation

-2.4.23-rc1 pci-irq.c bad PCI ident of 440GX host bridge

PATCH New Xose Vazquez Perez 1 participant 1 message Nov 13, 2003 PCI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 -2.4.23-rc1 pci-irq.c bad PCI ident of 440GX host bridge

hi,

someone needs a new glasses ;-)

The code is using PCI_DEVICE_ID_INTEL_82450GX(0x84c5) to identify a 440GX Host Bridge. And that id is the *Memory Controller* of 450KX/GX chipsets. WRONG!

The Host Bridge of 440GX chipset is 82443GX. And it got _two_ PCI ident 0x71a0(AGP enable) and 0x71a2(with AGP disable).

This patch comes from http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=107880
by Phil Oester <[email protected]>

People with INTEL 440GX boards is going to get troubles without this patch.

-thanks-
--
bug reports to [email protected]

arch/i386/kernel/pci-irq.c +2 -1
@@ -575,7 +575,8 @@
 {
 	/* We must not touch 440GX even if we have tables. 440GX has
 	   different IRQ routing weirdness */
-	if(pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82450GX, NULL))
+	if(pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_0, NULL) ||
+	   pci_find_device(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443GX_2, NULL))
 		return 0;
 	switch(device)
 	{
include/linux/pci_ids.h +3 -0
@@ -1891,6 +1891,9 @@
 #define PCI_DEVICE_ID_INTEL_82443MX_1	0x7199
 #define PCI_DEVICE_ID_INTEL_82443MX_2	0x719a
 #define PCI_DEVICE_ID_INTEL_82443MX_3	0x719b
+#define PCI_DEVICE_ID_INTEL_82443GX_0	0x71a0
+#define PCI_DEVICE_ID_INTEL_82443GX_1	0x71a1
+#define PCI_DEVICE_ID_INTEL_82443GX_2	0x71a2
 #define PCI_DEVICE_ID_INTEL_82372FB_0	0x7600
 #define PCI_DEVICE_ID_INTEL_82372FB_1	0x7601
 #define PCI_DEVICE_ID_INTEL_82372FB_2	0x7602