diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/quirks.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 08cd86a6dd66..23b599d6a9d5 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -93,8 +93,21 @@ static void __devinit quirk_nopcipci(struct pci_dev *dev) | |||
93 | pci_pci_problems |= PCIPCI_FAIL; | 93 | pci_pci_problems |= PCIPCI_FAIL; |
94 | } | 94 | } |
95 | } | 95 | } |
96 | |||
97 | static void __devinit quirk_nopciamd(struct pci_dev *dev) | ||
98 | { | ||
99 | u8 rev; | ||
100 | pci_read_config_byte(dev, 0x08, &rev); | ||
101 | if (rev == 0x13) { | ||
102 | /* Erratum 24 */ | ||
103 | printk(KERN_INFO "Chipset erratum: Disabling direct PCI/AGP transfers.\n"); | ||
104 | pci_pci_problems |= PCIAGP_FAIL; | ||
105 | } | ||
106 | } | ||
107 | |||
96 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, quirk_nopcipci ); | 108 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_5597, quirk_nopcipci ); |
97 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496, quirk_nopcipci ); | 109 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_496, quirk_nopcipci ); |
110 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8151_0, quirk_nopciamd ); | ||
98 | 111 | ||
99 | /* | 112 | /* |
100 | * Triton requires workarounds to be used by the drivers | 113 | * Triton requires workarounds to be used by the drivers |
@@ -555,7 +568,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, quirk_via_vt | |||
555 | * is currently marked NoFix | 568 | * is currently marked NoFix |
556 | * | 569 | * |
557 | * We have multiple reports of hangs with this chipset that went away with | 570 | * We have multiple reports of hangs with this chipset that went away with |
558 | * noapic specified. For the moment we assume its the errata. We may be wrong | 571 | * noapic specified. For the moment we assume it's the erratum. We may be wrong |
559 | * of course. However the advice is demonstrably good even if so.. | 572 | * of course. However the advice is demonstrably good even if so.. |
560 | */ | 573 | */ |
561 | static void __devinit quirk_amd_ioapic(struct pci_dev *dev) | 574 | static void __devinit quirk_amd_ioapic(struct pci_dev *dev) |
@@ -564,7 +577,7 @@ static void __devinit quirk_amd_ioapic(struct pci_dev *dev) | |||
564 | 577 | ||
565 | pci_read_config_byte(dev, PCI_REVISION_ID, &rev); | 578 | pci_read_config_byte(dev, PCI_REVISION_ID, &rev); |
566 | if (rev >= 0x02) { | 579 | if (rev >= 0x02) { |
567 | printk(KERN_WARNING "I/O APIC: AMD Errata #22 may be present. In the event of instability try\n"); | 580 | printk(KERN_WARNING "I/O APIC: AMD Erratum #22 may be present. In the event of instability try\n"); |
568 | printk(KERN_WARNING " : booting with the \"noapic\" option.\n"); | 581 | printk(KERN_WARNING " : booting with the \"noapic\" option.\n"); |
569 | } | 582 | } |
570 | } | 583 | } |