1 --- ../kernel-2.4.20.orig/linux-2.4.20/drivers/pci/quirks.c 2003-01-27 16:58:29.000000000 -0500
2 +++ linux-2.4.20/drivers/pci/quirks.c 2003-01-27 17:13:22.000000000 -0500
8 +static void __init quirk_serverworks_writeoverlap(struct pci_dev *dev)
10 + /* extended memory controller configuration register 0 */
11 + static const int emccr = 0xCD;
12 + static const u8 wovl = (1 << 1); /* Write Overlap Enable bit */
15 + /* this is multi-function PCI device, only apply fixup to function 0 */
16 + if (PCI_FUNC(dev->devfn))
19 + pci_read_config_byte(dev, emccr, &tmp);
21 + tmp &= ~wovl; /* clear Write Overlap Enable */
22 + pci_write_config_byte(dev, emccr, tmp);
27 * The main table of quirks.
30 { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_2, quirk_piix3_usb },
31 { PCI_FIXUP_HEADER, PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_2, quirk_piix3_usb },
32 { PCI_FIXUP_FINAL, PCI_ANY_ID, PCI_ANY_ID, quirk_cardbus_legacy },
33 + { PCI_FIXUP_FINAL, PCI_VENDOR_ID_SERVERWORKS, 0x0014, quirk_serverworks_writeoverlap },
35 #ifdef CONFIG_X86_IO_APIC
36 { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_ioapic },