diff options
| -rw-r--r-- | drivers/pci/quirks.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 6ccc2e95930a..1cff65fb9c43 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
| @@ -1625,18 +1625,20 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, | |||
| 1625 | quirk_nvidia_ck804_pcie_aer_ext_cap); | 1625 | quirk_nvidia_ck804_pcie_aer_ext_cap); |
| 1626 | 1626 | ||
| 1627 | #ifdef CONFIG_PCI_MSI | 1627 | #ifdef CONFIG_PCI_MSI |
| 1628 | /* The Serverworks PCI-X chipset does not support MSI. We cannot easily rely | 1628 | /* Some chipsets do not support MSI. We cannot easily rely on setting |
| 1629 | * on setting PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually | 1629 | * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually |
| 1630 | * some other busses controlled by the chipset even if Linux is not aware of it. | 1630 | * some other busses controlled by the chipset even if Linux is not |
| 1631 | * Instead of setting the flag on all busses in the machine, simply disable MSI | 1631 | * aware of it. Instead of setting the flag on all busses in the |
| 1632 | * globally. | 1632 | * machine, simply disable MSI globally. |
| 1633 | */ | 1633 | */ |
| 1634 | static void __init quirk_svw_msi(struct pci_dev *dev) | 1634 | static void __init quirk_disable_all_msi(struct pci_dev *dev) |
| 1635 | { | 1635 | { |
| 1636 | pci_no_msi(); | 1636 | pci_no_msi(); |
| 1637 | printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n"); | 1637 | printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n"); |
| 1638 | } | 1638 | } |
| 1639 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_svw_msi); | 1639 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi); |
| 1640 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); | ||
| 1641 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); | ||
| 1640 | 1642 | ||
| 1641 | /* Disable MSI on chipsets that are known to not support it */ | 1643 | /* Disable MSI on chipsets that are known to not support it */ |
| 1642 | static void __devinit quirk_disable_msi(struct pci_dev *dev) | 1644 | static void __devinit quirk_disable_msi(struct pci_dev *dev) |
| @@ -1649,8 +1651,6 @@ static void __devinit quirk_disable_msi(struct pci_dev *dev) | |||
| 1649 | } | 1651 | } |
| 1650 | } | 1652 | } |
| 1651 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_msi); | 1653 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_8131_BRIDGE, quirk_disable_msi); |
| 1652 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_msi); | ||
| 1653 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_msi); | ||
| 1654 | 1654 | ||
| 1655 | /* Go through the list of Hypertransport capabilities and | 1655 | /* Go through the list of Hypertransport capabilities and |
| 1656 | * return 1 if a HT MSI capability is found and enabled */ | 1656 | * return 1 if a HT MSI capability is found and enabled */ |
