Lines 23-28
Link Here
|
23 |
#include <linux/acpi.h> |
23 |
#include <linux/acpi.h> |
24 |
#include "pci.h" |
24 |
#include "pci.h" |
25 |
|
25 |
|
|
|
26 |
/* In certain situations the ASRock BIOS sets high bits in the aperture base, |
27 |
* which breaks agpgart. This quirk corrects the base value. */ |
28 |
static void quirk_asrock_agp_aperture(struct pci_dev *dev) |
29 |
{ |
30 |
struct pci_dev *sb; |
31 |
u32 aper_base, tmp; |
32 |
|
33 |
/* The device we are quirking is the K8 northbridge, but this device |
34 |
* has no subsystem ID's and running this quirk on all K8 northbridges |
35 |
* would be silly. Instead, we use the subsystem ID's of the |
36 |
* southbridge to limit the quirk to only the affected systems. */ |
37 |
sb = pci_get_subsys(PCI_VENDOR_ID_NVIDIA, 0x00e0, PCI_VENDOR_ID_ASROCK, |
38 |
0x00e0); |
39 |
if (sb == NULL) |
40 |
return; |
41 |
|
42 |
pci_read_config_dword(dev, 0x94, &aper_base); |
43 |
tmp = aper_base & 0x7f; |
44 |
|
45 |
if (tmp != aper_base) { |
46 |
printk(KERN_INFO "PCI: quirked buggy ASRock aperture base " |
47 |
"from %x to %x\n", aper_base, tmp); |
48 |
pci_write_config_dword(dev, 0x94, tmp); |
49 |
} |
50 |
|
51 |
pci_dev_put(sb); |
52 |
} |
53 |
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x1103, quirk_asrock_agp_aperture); |
54 |
|
26 |
/* The Mellanox Tavor device gives false positive parity errors |
55 |
/* The Mellanox Tavor device gives false positive parity errors |
27 |
* Mark this device with a broken_parity_status, to allow |
56 |
* Mark this device with a broken_parity_status, to allow |
28 |
* PCI scanning code to "skip" this now blacklisted device. |
57 |
* PCI scanning code to "skip" this now blacklisted device. |