Messages in this thread Patch in this message | | | Date | Thu, 13 Nov 2003 03:46:38 +0100 | From | Xose Vazquez Perez <> | Subject | [PATCH]-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 <bugzilla@linuxace.com>
People with INTEL 440GX boards is going to get troubles without this patch.
-thanks- -- bug reports to ty.coon@yoyodine.org --- linux/arch/i386/kernel/pci-irq.c 2003-11-10 21:42:05.000000000 +0100 +++ new/arch/i386/kernel/pci-irq.c 2003-11-13 02:33:27.000000000 +0100 @@ -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) { --- linux/include/linux/pci_ids.h 2003-11-10 21:42:51.000000000 +0100 +++ new/include/linux/pci_ids.h 2003-11-13 02:35:31.000000000 +0100 @@ -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
| |