diff options
author | Tejun Heo <htejun@gmail.com> | 2007-05-31 03:40:48 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-31 10:58:13 -0400 |
commit | ebdf7d399e67499dbd2a6b5154805fb049846cbb (patch) | |
tree | 0a4bf1c79a06ea0747aa56fd312b6c1e42d27a1f /drivers/pci | |
parent | c1aee215d760175601b820bd1e2f0364e844ff8c (diff) |
pci-quirks: fix MSI disabling on RS400-200 and RS480
Commit c0affe9db42bf85f4a606b3262c35ec59a5d3788 doesn't work because
the host controller is being quirked not a PCI bridge. This patch
reverts the commit, rename quirk_svw_msi() to quirk_disable_all_msi()
and use it instead.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Matias Alejandro Torres <torresmat@gmail.com>
Cc: Greg K-H <greg@kroah.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/pci')
-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 */ |