aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorMarc Zyngier <maz@kernel.org>2021-03-30 16:11:44 +0100
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>2021-04-20 14:11:22 +0100
commit61af69296cbadf4c88a1076a3b3e5572827b04c8 (patch)
treea4f0b8be3141207d979035c2c8b2dd9f59a43e5c /drivers/pci/msi.c
parent645e9c38383d7fcde2784ee537fa18ec9bed54d9 (diff)
downloadlinux-61af69296cbadf4c88a1076a3b3e5572827b04c8.tar.gz
PCI/MSI: Document the various ways of ending up with NO_MSI
We have now three ways of ending up with NO_MSI being set. Document them. Link: https://lore.kernel.org/r/20210330151145.997953-14-maz@kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index d9c73c173c140..217dc9f0231fd 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -871,8 +871,15 @@ static int pci_msi_supported(struct pci_dev *dev, int nvec)
* Any bridge which does NOT route MSI transactions from its
* secondary bus to its primary bus must set NO_MSI flag on
* the secondary pci_bus.
- * We expect only arch-specific PCI host bus controller driver
- * or quirks for specific PCI bridges to be setting NO_MSI.
+ *
+ * The NO_MSI flag can either be set directly by:
+ * - arch-specific PCI host bus controller drivers (deprecated)
+ * - quirks for specific PCI bridges
+ *
+ * or indirectly by platform-specific PCI host bridge drivers by
+ * advertising the 'msi_domain' property, which results in
+ * the NO_MSI flag when no MSI domain is found for this bridge
+ * at probe time.
*/
for (bus = dev->bus; bus; bus = bus->parent)
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)