summary refs log tree commit diff
path: root/drivers/pci/quirks.c
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2017-11-14 12:11:33 -0600
committerBjorn Helgaas <bhelgaas@google.com>2017-11-14 12:11:33 -0600
commit89000e89bf4df8b9a0a16e1d3856913907385bd5 (patch)
tree25bd1e3b55dc0ff6df1b76d61cf672f4fbbefdc7 /drivers/pci/quirks.c
parentaaea12f7fe4c309c8cfa9040cbb3cb02feae0b4d (diff)
parent84d897d69938a33f4ce3877c82d573e7a2b4e5a9 (diff)
downloadlinux-89000e89bf4df8b9a0a16e1d3856913907385bd5.tar.gz
Merge branch 'pci/host-layerscape' into next
* pci/host-layerscape:
  PCI: layerscape: Change default error response behavior
  PCI: Disable MSI for Freescale Layerscape PCIe RC mode
  arm64: dts: ls1046a: Add PCIe controller DT nodes
  arm64: dts: ls1012a: Add PCIe controller DT node
  PCI: layerscape: Add support for ls1012a
  arm64: dts: ls1012a: Add MSI controller DT node
  irqchip/ls-scfg-msi: Add LS1012a MSI support
Diffstat (limited to 'drivers/pci/quirks.c')
-rw-r--r--drivers/pci/quirks.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 0e22cce05742..cbe85e921ede 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -4814,3 +4814,11 @@ static void quirk_no_ats(struct pci_dev *pdev)
 /* AMD Stoney platform GPU */
 DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, 0x98e4, quirk_no_ats);
 #endif /* CONFIG_PCI_ATS */
+
+/* Freescale PCIe doesn't support MSI in RC mode */
+static void quirk_fsl_no_msi(struct pci_dev *pdev)
+{
+	if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT)
+		pdev->no_msi = 1;
+}
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_FREESCALE, PCI_ANY_ID, quirk_fsl_no_msi);