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 >