]> git.baikalelectronics.ru Git - kernel.git/commitdiff
PCI/MSI: Document the various ways of ending up with NO_MSI
authorMarc Zyngier <maz@kernel.org>
Tue, 30 Mar 2021 15:11:44 +0000 (16:11 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 20 Apr 2021 13:11:22 +0000 (14:11 +0100)
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>
drivers/pci/msi.c

index d9c73c173c140be57aba6baec14bfa3857042b15..217dc9f0231fde66e563d184d764123bc06304cf 100644 (file)
@@ -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)