diff options
author | Dongdong Liu <liudongdong3@huawei.com> | 2017-02-03 16:02:07 -0500 |
---|---|---|
committer | Bjorn Helgaas <helgaas@kernel.org> | 2017-02-09 10:13:20 -0500 |
commit | 72f2ff0deb870145a5a2d24cd75b4f9936159a62 (patch) | |
tree | 7f76f1dbdb4b8bb2a345a2442cecd60b8cdc38f0 | |
parent | 4788316f743539076712d2b80b6cd289458fe2be (diff) |
PCI: Disable MSI for HiSilicon Hip06/Hip07 Root Ports
The PCIe Root Port in Hip06/Hip07 SoCs advertises an MSI capability, but it
cannot generate MSIs. It can transfer MSI/MSI-X from downstream devices,
but does not support MSI/MSI-X itself.
Add a quirk to prevent use of MSI/MSI-X by the Root Port.
[bhelgaas: changelog, sort vendor ID #define, drop device ID #define]
Signed-off-by: Dongdong Liu <liudongdong3@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Gabriele Paoloni <gabriele.paoloni@huawei.com>
Reviewed-by: Zhou Wang <wangzhou1@hisilicon.com>
-rw-r--r-- | drivers/pci/quirks.c | 1 | ||||
-rw-r--r-- | include/linux/pci_ids.h | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 1800befa8b8b..c49ac99bda4b 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -1634,6 +1634,7 @@ static void quirk_pcie_mch(struct pci_dev *pdev) | |||
1634 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_pcie_mch); | 1634 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7520_MCH, quirk_pcie_mch); |
1635 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch); | 1635 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7320_MCH, quirk_pcie_mch); |
1636 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch); | 1636 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_E7525_MCH, quirk_pcie_mch); |
1637 | DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_HUAWEI, 0x1610, quirk_pcie_mch); | ||
1637 | 1638 | ||
1638 | 1639 | ||
1639 | /* | 1640 | /* |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 73dda0edcb97..a4f77feecbb0 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2516,6 +2516,8 @@ | |||
2516 | #define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700 | 2516 | #define PCI_DEVICE_ID_KORENIX_JETCARDF2 0x1700 |
2517 | #define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff | 2517 | #define PCI_DEVICE_ID_KORENIX_JETCARDF3 0x17ff |
2518 | 2518 | ||
2519 | #define PCI_VENDOR_ID_HUAWEI 0x19e5 | ||
2520 | |||
2519 | #define PCI_VENDOR_ID_NETRONOME 0x19ee | 2521 | #define PCI_VENDOR_ID_NETRONOME 0x19ee |
2520 | #define PCI_DEVICE_ID_NETRONOME_NFP3200 0x3200 | 2522 | #define PCI_DEVICE_ID_NETRONOME_NFP3200 0x3200 |
2521 | #define PCI_DEVICE_ID_NETRONOME_NFP3240 0x3240 | 2523 | #define PCI_DEVICE_ID_NETRONOME_NFP3240 0x3240 |