mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 19:07:52 +00:00
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>
This commit is contained in:
parent
645e9c3838
commit
61af69296c
1 changed files with 9 additions and 2 deletions
|
@ -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
|
* Any bridge which does NOT route MSI transactions from its
|
||||||
* secondary bus to its primary bus must set NO_MSI flag on
|
* secondary bus to its primary bus must set NO_MSI flag on
|
||||||
* the secondary pci_bus.
|
* 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)
|
for (bus = dev->bus; bus; bus = bus->parent)
|
||||||
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
|
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
|
||||||
|
|
Loading…
Reference in a new issue