On 28/02/2019 13:29, Lorenzo Pieralisi wrote: > On Wed, Feb 27, 2019 at 05:52:19PM +0100, Lucas Stach wrote: >> Since 7c5925afbc58 (PCI: dwc: Move MSI IRQs allocation to IRQ domains >> hierarchical API) the MSI init claims one of the controller IRQs as a >> chained IRQ line for the MSI controller. On some designs, like the i.MX6, >> this line is shared with a PCIe legacy IRQ. When the line is claimed for >> the MSI domain, any device trying to use this legacy IRQs will fail to >> request this IRQ line. >> >> As MSI and legacy IRQs are already mutually exclusive on the DWC core, >> as the core won't forward any legacy IRQs once any MSI has been enabled, >> users wishing to use legacy IRQs already need to explictly disable MSI >> support (usually via the pci=nomsi kernel commandline option). To avoid >> any issues with MSI conflicting with legacy IRQs, just skip all of the >> DWC MSI initalization, including the IRQ line claim, when MSI is disabled. >> >> Fixes: c5925afbc58 >> (PCI: dwc: Move MSI IRQs allocation to IRQ domains hierarchical API) >> Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> >> Tested-by: Tim Harvey <tharvey@xxxxxxxxxxxxx> >> --- >> drivers/pci/controller/dwc/pcie-designware-host.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > I request Gustavo's ACK to proceed, thanks. > > Lorenzo > >> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c >> index 29a05759a294..f4a8494f616b 100644 >> --- a/drivers/pci/controller/dwc/pcie-designware-host.c >> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c >> @@ -433,7 +433,7 @@ int dw_pcie_host_init(struct pcie_port *pp) >> if (ret) >> pci->num_viewport = 2; >> >> - if (IS_ENABLED(CONFIG_PCI_MSI)) { >> + if (IS_ENABLED(CONFIG_PCI_MSI) && pci_msi_enabled()) { >> /* >> * If a specific SoC driver needs to change the >> * default number of vectors, it needs to implement >> -- >> 2.20.1 >> Acked-by: Gustavo Pimentel <gustavo.pimentel@xxxxxxxxxxxx>