aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/quirks.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index f925e47bdad5..0a953d43b9a2 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1779,6 +1779,23 @@ static void __devinit quirk_msi_intx_disable_bug(struct pci_dev *dev)
1779{ 1779{
1780 dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG; 1780 dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
1781} 1781}
1782static void __devinit quirk_msi_intx_disable_ati_bug(struct pci_dev *dev)
1783{
1784 struct pci_dev *p;
1785
1786 /* SB700 MSI issue will be fixed at HW level from revision A21,
1787 * we need check PCI REVISION ID of SMBus controller to get SB700
1788 * revision.
1789 */
1790 p = pci_get_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
1791 NULL);
1792 if (!p)
1793 return;
1794
1795 if ((p->revision < 0x3B) && (p->revision >= 0x30))
1796 dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
1797 pci_dev_put(p);
1798}
1782DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM, 1799DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1783 PCI_DEVICE_ID_TIGON3_5780, 1800 PCI_DEVICE_ID_TIGON3_5780,
1784 quirk_msi_intx_disable_bug); 1801 quirk_msi_intx_disable_bug);
@@ -1799,17 +1816,15 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
1799 quirk_msi_intx_disable_bug); 1816 quirk_msi_intx_disable_bug);
1800 1817
1801DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390, 1818DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
1802 quirk_msi_intx_disable_bug); 1819 quirk_msi_intx_disable_ati_bug);
1803DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391, 1820DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
1804 quirk_msi_intx_disable_bug); 1821 quirk_msi_intx_disable_ati_bug);
1805DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392, 1822DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
1806 quirk_msi_intx_disable_bug); 1823 quirk_msi_intx_disable_ati_bug);
1807DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393, 1824DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
1808 quirk_msi_intx_disable_bug); 1825 quirk_msi_intx_disable_ati_bug);
1809DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394, 1826DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
1810 quirk_msi_intx_disable_bug); 1827 quirk_msi_intx_disable_ati_bug);
1811DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4395,
1812 quirk_msi_intx_disable_bug);
1813 1828
1814DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373, 1829DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
1815 quirk_msi_intx_disable_bug); 1830 quirk_msi_intx_disable_bug);