Skip to contentSkip to conversation

workaround for buggy BIOSes and i845 chipsets

PATCH Michal Semler 2 participants 2 messages Jul 24, 2002 PCI

lore
Share & tools
lore
#0 lore raw

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 },

#1 lore raw

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