|
@@ -1621,12 +1621,8 @@ static void __init quirk_disable_all_msi(struct pci_dev *dev)
|
|
printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n");
|
|
printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n");
|
|
}
|
|
}
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi);
|
|
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX, quirk_disable_all_msi);
|
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi);
|
|
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RD580, quirk_disable_all_msi);
|
|
|
|
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RX790, quirk_disable_all_msi);
|
|
|
|
-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS690, quirk_disable_all_msi);
|
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_VT3351, quirk_disable_all_msi);
|
|
|
|
|
|
/* Disable MSI on chipsets that are known to not support it */
|
|
/* Disable MSI on chipsets that are known to not support it */
|
|
@@ -1678,6 +1674,9 @@ static void __devinit quirk_msi_ht_cap(struct pci_dev *dev)
|
|
}
|
|
}
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE,
|
|
quirk_msi_ht_cap);
|
|
quirk_msi_ht_cap);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS,
|
|
|
|
+ PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB,
|
|
|
|
+ quirk_msi_ht_cap);
|
|
|
|
|
|
/* The nVidia CK804 chipset may have 2 HT MSI mappings.
|
|
/* The nVidia CK804 chipset may have 2 HT MSI mappings.
|
|
* MSI are supported if the MSI capability set in any of these mappings.
|
|
* MSI are supported if the MSI capability set in any of these mappings.
|
|
@@ -1705,4 +1704,48 @@ static void __devinit quirk_nvidia_ck804_msi_ht_cap(struct pci_dev *dev)
|
|
}
|
|
}
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
|
|
quirk_nvidia_ck804_msi_ht_cap);
|
|
quirk_nvidia_ck804_msi_ht_cap);
|
|
|
|
+
|
|
|
|
+static void __devinit quirk_msi_intx_disable_bug(struct pci_dev *dev)
|
|
|
|
+{
|
|
|
|
+ dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
|
|
|
+}
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5780,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5780S,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5714,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5714S,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5715,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_BROADCOM,
|
|
|
|
+ PCI_DEVICE_ID_TIGON3_5715S,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4390,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4391,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4392,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4393,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+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);
|
|
|
|
+
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4373,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4374,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x4375,
|
|
|
|
+ quirk_msi_intx_disable_bug);
|
|
|
|
+
|
|
#endif /* CONFIG_PCI_MSI */
|
|
#endif /* CONFIG_PCI_MSI */
|