]> git.pld-linux.org Git - packages/kernel.git/blob - linux-2.4.20-serverworks.patch
- obsolete
[packages/kernel.git] / linux-2.4.20-serverworks.patch
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 0.089915 seconds and 3 git commands to generate.