linux-uconsole/drivers/pci/controller
Richard Zhu 89c183580b PCI: imx: Enable MSI from downstream components
[ Upstream commit 75cb8d20c1 ]

The MSI Enable bit in the MSI Capability (PCIe r4.0, sec 7.7.1.2) controls
whether a Function can request service using MSI.

i.MX6 Root Ports implement the MSI Capability and may use MSI to request
service for events like PME, hotplug, AER, etc.  In addition, on i.MX6, the
MSI Enable bit controls delivery of MSI interrupts from components below
the Root Port.

Prior to f3fdfc4ac3 ("PCI: Remove host driver Kconfig selection of
CONFIG_PCIEPORTBUS"), enabling CONFIG_PCI_IMX6 automatically also enabled
CONFIG_PCIEPORTBUS, and when portdrv claimed the Root Ports, it set the MSI
Enable bit so it could use PME, hotplug, AER, etc.  As a side effect, that
also enabled delivery of MSI interrupts from downstream components.

The imx6q-pcie driver itself does not depend on portdrv, so set MSI Enable
in imx6q-pcie so MSI from downstream components works even if nobody uses
MSI for the Root Port events.

Fixes: f3fdfc4ac3 ("PCI: Remove host driver Kconfig selection of CONFIG_PCIEPORTBUS")
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Tested-by: Sven Van Asbroeck <TheSven73@googlemail.com>
Tested-by: Trent Piepho <tpiepho@impinj.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-02-12 19:47:19 +01:00
..
dwc PCI: imx: Enable MSI from downstream components 2019-02-12 19:47:19 +01:00
Kconfig Merge branch 'remotes/lorenzo/pci/mobiveil' 2018-08-15 14:59:14 -05:00
Makefile PCI: mobiveil: Add Kconfig/Makefile entries 2018-07-30 14:30:16 +01:00
pci-aardvark.c Merge branch 'remotes/lorenzo/pci/aardvark' 2018-08-15 14:59:09 -05:00
pci-ftpci100.c PCI: faraday: Fix I/O space page leak 2018-07-18 17:01:14 -05:00
pci-host-common.c
pci-host-generic.c
pci-hyperv.c PCI: hv: Fix return value check in hv_pci_assign_slots() 2018-09-21 19:13:22 -07:00
pci-mvebu.c PCI: mvebu: Fix PCI I/O mapping creation sequence 2018-10-01 15:42:09 -05:00
pci-rcar-gen2.c
pci-tegra.c
pci-thunder-ecam.c
pci-thunder-pem.c
pci-v3-semi.c PCI: v3-semi: Fix I/O space page leak 2018-07-18 17:02:13 -05:00
pci-versatile.c PCI: versatile: Fix I/O space page leak 2018-07-18 17:00:11 -05:00
pci-xgene-msi.c
pci-xgene.c PCI: xgene: Fix I/O space page leak 2018-07-18 16:59:40 -05:00
pcie-altera-msi.c
pcie-altera.c
pcie-cadence-ep.c PCI: cadence: Use AXI region 0 to signal interrupts from EP 2018-11-13 11:08:33 -08:00
pcie-cadence-host.c PCI: cadence: Add shutdown callback to host driver 2018-07-12 12:46:41 +01:00
pcie-cadence.c PCI: cadence: Correct probe behaviour when failing to get PHY 2018-11-13 11:08:35 -08:00
pcie-cadence.h PCI: cadence: Add Power Management ops for host and EP 2018-07-12 12:44:14 +01:00
pcie-iproc-bcma.c
pcie-iproc-msi.c
pcie-iproc-platform.c
pcie-iproc.c PCI: iproc: Reduce inbound/outbound mapping print level 2018-07-13 11:59:21 +01:00
pcie-iproc.h PCI: iproc: Reject unconfigured physical functions from PAXC 2018-07-13 11:56:55 +01:00
pcie-mediatek.c PCI: mediatek: Fix mtk_pcie_find_port() endpoint/port matching logic 2018-11-13 11:08:33 -08:00
pcie-mobiveil.c PCI: mobiveil: Add missing ../pci.h include 2018-07-30 14:30:12 +01:00
pcie-rcar.c PCI: rcar: Clean up PHY init on failure 2018-06-29 13:48:54 -05:00
pcie-rockchip-ep.c PCI: Update xxx_pcie_ep_raise_irq() and pci_epc_raise_irq() signatures 2018-07-19 11:34:42 +01:00
pcie-rockchip-host.c
pcie-rockchip.c
pcie-rockchip.h
pcie-tango.c
pcie-xilinx-nwl.c PCI: xilinx-nwl: Add missing of_node_put() 2018-06-29 13:50:10 -05:00
pcie-xilinx.c PCI: xilinx: Add missing of_node_put() 2018-06-29 13:49:54 -05:00
vmd.c PCI: vmd: White list for fast interrupt handlers 2018-06-28 17:25:33 +01:00