]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: dwc: skip MSI init if MSIs have been explicitly disabled
authorLucas Stach <l.stach@pengutronix.de>
Wed, 27 Feb 2019 16:52:19 +0000 (17:52 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 1 Mar 2019 12:05:45 +0000 (12:05 +0000)
commitccfa33cf3662f3e062baf0bf7d702401e92fcccd
tree0eb1b2c208ca2437cdd9ef7294a58348b44eb6f3
parent0883cc0a926390fd67c44a9a30e5ced0eac46731
PCI: dwc: skip MSI init if MSIs have been explicitly disabled

Since 071a9ad964a5 (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: 071a9ad964a5 ("PCI: dwc: Move MSI IRQs allocation to IRQ domains hierarchical API")
Tested-by: Tim Harvey <tharvey@gateworks.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Cc: stable@vger.kernel.org
drivers/pci/controller/dwc/pcie-designware-host.c