linux/drivers/pci
Richard Zhu 75cb8d20c1 PCI: imx: Enable MSI from downstream components
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>
2019-01-01 19:16:48 -06:00
..
controller PCI: imx: Enable MSI from downstream components 2019-01-01 19:16:48 -06:00
endpoint Merge branch 'remotes/lorenzo/pci/dwc' 2018-08-15 14:59:11 -05:00
hotplug Merge branch 'xarray' of git://git.infradead.org/users/willy/linux-dax 2018-10-28 11:35:40 -07:00
pcie Merge branch 'pci/misc' 2018-10-20 11:45:30 -05:00
switch switchtec: Fix Spectre v1 vulnerability 2018-09-11 08:47:40 -05:00
access.c PCI: Uninline PCI bus accessors for better ftracing 2018-10-04 16:37:37 -05:00
ats.c PCI: Enable PASID only if entire path supports End-End TLP prefixes 2018-06-30 14:10:03 -05:00
bus.c PCI: Fix is_added/is_busmaster race condition 2018-07-31 11:27:54 -05:00
ecam.c
host-bridge.c
iov.c PCI/IOV: Remove unnecessary include of <linux/pci-ats.h> 2018-10-11 14:35:12 -05:00
irq.c PCI: Use IRQF_ONESHOT if pci_request_irq() called with no handler 2018-07-31 10:43:43 -05:00
Kconfig Merge branch 'remotes/lorenzo/pci/controller-misc' 2018-10-20 11:45:47 -05:00
Makefile Merge branch 'remotes/lorenzo/pci/controller-misc' 2018-10-20 11:45:47 -05:00
mmap.c
msi.c PCI/MSI: Warn and return error if driver enables MSI/MSI-X twice 2018-09-25 15:17:39 -05:00
of.c iommu/of: make of_pci_map_rid() available for other devices too 2018-09-25 09:47:52 +02:00
p2pdma.c PCI/P2PDMA: Introduce configfs/sysfs enable attribute helpers 2018-10-17 12:18:17 -05:00
pci-acpi.c Merge branch 'pci/misc' 2018-10-20 11:45:30 -05:00
pci-bridge-emul.c PCI: Introduce PCI bridge emulated config space common logic 2018-10-18 17:50:19 +01:00
pci-bridge-emul.h PCI: Introduce PCI bridge emulated config space common logic 2018-10-18 17:50:19 +01:00
pci-driver.c Merge branch 'pci/misc' 2018-08-15 14:58:54 -05:00
pci-label.c
pci-mid.c x86/cpu: Sanitize FAM6_ATOM naming 2018-10-02 10:14:32 +02:00
pci-pf-stub.c
pci-stub.c
pci-sysfs.c Merge branch 'pci/hotplug' 2018-08-15 14:58:52 -05:00
pci.c pci-v4.20-changes 2018-10-25 06:50:48 -07:00
pci.h Merge branch 'pci/virtualization' 2018-10-20 11:45:35 -05:00
probe.c Merge branch 'pci/virtualization' 2018-10-20 11:45:35 -05:00
proc.c
quirks.c PCI: Fix Switchtec DMA aliasing quirk dmesg noise 2018-10-11 11:28:53 -05:00
remove.c PCI/ASPM: Fix link_state teardown on device removal 2018-09-17 16:32:23 -05:00
rom.c PCI: Make pci_get_rom_size() static 2018-06-29 21:17:26 -05:00
search.c
setup-bus.c PCI: Equalize hotplug memory and io for occupied and empty slots 2018-10-02 16:04:40 -05:00
setup-irq.c
setup-res.c
slot.c PCI/ERR: Use slot reset if available 2018-09-21 12:18:10 -05:00
syscall.c
vc.c
vpd.c PCI/VPD: Check for VPD access completion before checking for timeout 2018-08-14 16:04:46 -05:00
xen-pcifront.c