patch-2.1.132 linux/drivers/pci/quirks.c
Next file: linux/drivers/pnp/parport_probe.c
Previous file: linux/drivers/pci/pcisyms.c
Back to the patch index
Back to the overall index
- Lines: 49
- Date:
Wed Dec 16 13:35:49 1998
- Orig file:
v2.1.131/linux/drivers/pci/quirks.c
- Orig date:
Thu May 7 22:51:50 1998
diff -u --recursive --new-file v2.1.131/linux/drivers/pci/quirks.c linux/drivers/pci/quirks.c
@@ -125,6 +125,25 @@
}
}
+/* The VIA VP2/VP3/MVP3 seem to have some 'features'. There may be a workaround
+ but VIA don't answer queries. If you happen to have good contacts at VIA
+ ask them for me please -- Alan
+
+ This appears to be BIOS not version dependant. So presumably there is a
+ chipset level fix */
+
+
+int isa_dma_bridge_buggy = 0; /* Exported */
+
+__initfunc(static void quirk_isa_dma_hangs(struct pci_dev *dev, int arg))
+{
+ if(!isa_dma_bridge_buggy)
+ {
+ isa_dma_bridge_buggy=1;
+ printk(KERN_INFO "Activating ISA DMA hang workarounds.\n");
+ }
+}
+
typedef void (*quirk_handler)(struct pci_dev *, int);
@@ -141,7 +160,8 @@
#ifdef CONFIG_PCI_OPTIMIZE
{ quirk_bridge, "Bridge optimization" },
#endif
- { quirk_passive_release, "Passive release enable" },
+ { quirk_passive_release,"Passive release enable" },
+ { quirk_isa_dma_hangs, "Work around ISA DMA hangs" },
};
@@ -176,6 +196,12 @@
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82430, quirk_bridge, 0x00 },
#endif
{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82441, quirk_passive_release, 0x00 },
+ /*
+ * Its not totally clear which chipsets are the problematic ones
+ * This is the 82C586 variants. At the moment the 596 is an unknown
+ * quantity
+ */
+ { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_isa_dma_hangs, 0x00 },
};
__initfunc(void pci_quirks_init(void))
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov