workaround for buggy BIOSes and i845 chipsets
Hello,
Vojtech Pavlik helped me to workaround this issue. This patch is backport from 2.5 to 2.4 and is applicable into 2.4.19-rc3. Maybe somebody will need it too. It works correctly on my system.
Michal
Patch:
drivers/pci/quirks.c Tue Jul 23 14:51:43 2002 renamed from drivers/pci/quirks.c Sat Jul 20 11:08:15 2002 +5 -0
@@ -471,6 +471,15 @@ r -> end = 0xffffff; } +static void __init quirk_ide_trash(struct pci_dev *dev) +{ + int i; + for(i = 0; i < 4; i++) + dev->resource[i].start = dev->resource[i].end =
dev->resource[i].flags = 0;
+}
+
+#define PCI_DEVICE_ID_INTEL_82801DB_9 0x24cb
+
/*
* The main table of quirks.
*/
@@ -498,6 +507,9 @@
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82443BX_0, quirk_natoma },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82443BX_1, quirk_natoma },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82443BX_2, quirk_natoma },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_10, quirk_ide_trash },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_82801CA_11, quirk_ide_trash },
+ { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_82801DB_9, quirk_ide_trash },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_SI,PCI_DEVICE_ID_SI_5597, quirk_nopcipci },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496,
quirk_nopcipci },
{ PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA,PCI_DEVICE_ID_VIA_8363_0, quirk_vialatency },
That only clears the buffered kernel records. 2.4.19-rc3-ac2 has the proper and correct fix to deal with XP BIOS HBA registration.
Cheers,
Quoted 44 lines · Michal Semler
Hello,
Vojtech Pavlik helped me to workaround this issue. This patch is backport from 2.5 to 2.4 and is applicable into 2.4.19-rc3. Maybe somebody will need it too. It works correctly on my system.Michal
Patch:
drivers/pci/quirks.c Tue Jul 23 14:51:43 2002 renamed from drivers/pci/quirks.c Sat Jul 20 11:08:15 2002 +9
-0@@ -471,6 +471,15 @@ r -> end = 0xffffff; } +static void __init quirk_ide_trash(struct pci_dev *dev) +{ + int i; + for(i = 0; i < 4; i++) + dev->resource[i].start = dev->resource[i].end = dev->resource[i].flags = 0; +} + +#define PCI_DEVICE_ID_INTEL_82801DB_9 0x24cb + /* * The main table of quirks.*/
drivers/pci/quirks.c Tue Jul 23 14:51:43 2002 renamed from drivers/pci/quirks.c Sat Jul 20 11:08:15 2002 +1
-0@@ -498,6 +507,9 @@ { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_0, quirk_natoma }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_1, quirk_natoma }, { PCI_FIXUP_FINAL, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443BX_2, quirk_natoma }, + { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL,
PCI_DEVICE_ID_INTEL_82801CA_10,quirk_ide_trash},
+ {PCI_FIXUP_HEADER,PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_82801CA_11,quirk_ide_trash},
+ {PCI_FIXUP_HEADER,PCI_VENDOR_ID_INTEL,PCI_DEVICE_ID_INTEL_82801DB_9,quirk_ide_trash},
{PCI_FIXUP_FINAL,PCI_VENDOR_ID_SI,PCI_DEVICE_ID_SI_5597,quirk_nopcipci},
{PCI_FIXUP_FINAL,PCI_VENDOR_ID_SI,PCI_DEVICE_ID_SI_496,
Quoted 9 lines
quirk_nopcipci},
{PCI_FIXUP_FINAL,PCI_VENDOR_ID_VIA,PCI_DEVICE_ID_VIA_8363_0,quirk_vialatency},
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Andre Hedrick
LAD Storage Consulting Group