|
@@ -2594,6 +2594,14 @@ static void quirk_msi_intx_disable_ati_bug(struct pci_dev *dev)
|
|
|
dev->dev_flags |= PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG;
|
|
|
pci_dev_put(p);
|
|
|
}
|
|
|
+static void quirk_msi_intx_disable_qca_bug(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ /* AR816X/AR817X/E210X MSI is fixed at HW level from revision 0x18 */
|
|
|
+ if (dev->revision < 0x18) {
|
|
|
+ dev_info(&dev->dev, "set MSI_INTX_DISABLE_BUG flag\n");
|
|
|
+ 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);
|
|
@@ -2643,6 +2651,16 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1073,
|
|
|
quirk_msi_intx_disable_bug);
|
|
|
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1083,
|
|
|
quirk_msi_intx_disable_bug);
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1090,
|
|
|
+ quirk_msi_intx_disable_qca_bug);
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x1091,
|
|
|
+ quirk_msi_intx_disable_qca_bug);
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x10a0,
|
|
|
+ quirk_msi_intx_disable_qca_bug);
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0x10a1,
|
|
|
+ quirk_msi_intx_disable_qca_bug);
|
|
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATTANSIC, 0xe091,
|
|
|
+ quirk_msi_intx_disable_qca_bug);
|
|
|
#endif /* CONFIG_PCI_MSI */
|
|
|
|
|
|
/* Allow manual resource allocation for PCI hotplug bridges
|