]> git.pld-linux.org Git - packages/kernel.git/blame - linux-2.4.20-serverworks.patch
- added description of djurban's branch
[packages/kernel.git] / linux-2.4.20-serverworks.patch
CommitLineData
d6b4d2a5
JR
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
3@@ -615,6 +615,25 @@
4 }
5 }
6
7+
8+static void __init quirk_serverworks_writeoverlap(struct pci_dev *dev)
9+{
10+ /* extended memory controller configuration register 0 */
11+ static const int emccr = 0xCD;
12+ static const u8 wovl = (1 << 1); /* Write Overlap Enable bit */
13+ u8 tmp;
14+
15+ /* this is multi-function PCI device, only apply fixup to function 0 */
16+ if (PCI_FUNC(dev->devfn))
17+ return;
18+
19+ pci_read_config_byte(dev, emccr, &tmp);
20+ if (tmp & wovl) {
21+ tmp &= ~wovl; /* clear Write Overlap Enable */
22+ pci_write_config_byte(dev, emccr, tmp);
23+ }
24+}
25+
26 /*
27 * The main table of quirks.
28 */
29@@ -661,6 +680,7 @@
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 },
34
35 #ifdef CONFIG_X86_IO_APIC
36 { PCI_FIXUP_FINAL, PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_ioapic },
This page took 1.97707 seconds and 4 git commands to generate.