|
@@ -1779,6 +1779,23 @@ static void __devinit quirk_msi_intx_disable_bug(struct pci_dev *dev)
|
|
{
|
|
{
|
|
dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
|
dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
|
}
|
|
}
|
|
|
|
+static void __devinit quirk_msi_intx_disable_ati_bug(struct pci_dev *dev)
|
|
|
|
+{
|
|
|
|
+ struct pci_dev *p;
|
|
|
|
+
|
|
|
|
+ /* SB700 MSI issue will be fixed at HW level from revision A21,
|
|
|
|
+ * we need check PCI REVISION ID of SMBus controller to get SB700
|
|
|
|
+ * revision.
|
|
|
|
+ */
|
|
|
|
+ p = pci_get_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS,
|
|
|
|
+ NULL);
|
|
|
|
+ if (!p)
|
|
|
|
+ return;
|
|
|
|
+
|
|
|
|
+ if ((p->revision < 0x3B) && (p->revision >= 0x30))
|
|
|
|
+ dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
|
|
|
+ pci_dev_put(p);
|
|
|
|
+}
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
PCI_DEVICE_ID_TIGON3_5780,
|
|
PCI_DEVICE_ID_TIGON3_5780,
|
|
quirk_msi_intx_disable_bug);
|
|
quirk_msi_intx_disable_bug);
|
|
@@ -1799,17 +1816,15 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
quirk_msi_intx_disable_bug);
|
|
quirk_msi_intx_disable_bug);
|
|
|
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
|
|
+ quirk_msi_intx_disable_ati_bug);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
|
|
+ quirk_msi_intx_disable_ati_bug);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
|
|
+ quirk_msi_intx_disable_ati_bug);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
|
|
+ quirk_msi_intx_disable_ati_bug);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4394,
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4395,
|
|
|
|
- quirk_msi_intx_disable_bug);
|
|
|
|
|
|
+ quirk_msi_intx_disable_ati_bug);
|
|
|
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
|
|
quirk_msi_intx_disable_bug);
|
|
quirk_msi_intx_disable_bug);
|