• Lucas Stach's avatar
    PCI: dwc: skip MSI init if MSIs have been explicitly disabled · 3afc8299
    Lucas Stach authored
    Since 7c5925af (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: 7c5925af ("PCI: dwc: Move MSI IRQs allocation to IRQ domains hierarchical API")
    Tested-by: default avatarTim Harvey <tharvey@gateworks.com>
    Signed-off-by: default avatarLucas Stach <l.stach@pengutronix.de>
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Acked-by: default avatarGustavo Pimentel <gustavo.pimentel@synopsys.com>
    Cc: stable@vger.kernel.org
    3afc8299
pcie-designware-host.c 17.8 KB