On Fri, 2018-12-21 at 04:33 +0000, Richard Zhu wrote: > 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 commit f3fdfc4ac3a2 ("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. > > After f3fdfc4ac3a2, the imx6q-pcie driver can operate without > portdrv, but that means imx6q-pcie must set the MSI Enable bit > itself if downstream components use MSI. > > Fixes: f3fdfc4ac3a2 ("PCI: Remove host driver Kconfig selection of > CONFIG_PCIEPORTBUS") > > Signed-off-by: Richard Zhu <hongxing.zhu@xxxxxxx> > Reviewed-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > Tested-by: Sven Van Asbroeck <TheSven73@xxxxxxxxxxxxxx> > Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Tested on IMX7d, allows MSI to work without enabling PCIEPORTBUS, which fails without this patch.