Messages in this thread Patch in this message | | | From | Marc Zyngier <> | Subject | [PATCH 08/13] PCI: MSI: Let PCI host bridges declare their lack of MSI handling | Date | Thu, 25 Feb 2021 15:10:18 +0000 |
| |
From: Thomas Gleixner <tglx@linutronix.de>
Some PCI host bridges cannot deal with MSIs at all. This has the unfortunate effect of triggering ugly warnings when an end-point driver requests MSIs.
Instead, let the bridge advertise such lack of MSIs, so that it can be flagged correctly by the core code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> [maz: commit message] Signed-off-by: Marc Zyngier <maz@kernel.org> --- drivers/pci/probe.c | 2 ++ include/linux/pci.h | 1 + 2 files changed, 3 insertions(+)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index fb04fc81a8bd..146bd85c037e 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -925,6 +925,8 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge) device_enable_async_suspend(bus->bridge); pci_set_bus_of_node(bus); pci_set_bus_msi_domain(bus); + if (bridge->no_msi) + bus->bus_flags |= PCI_BUS_FLAGS_NO_MSI; if (!parent) set_dev_node(bus->bridge, pcibus_to_node(bus)); diff --git a/include/linux/pci.h b/include/linux/pci.h index 105ef1a5191e..9db3abf9fd90 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -550,6 +550,7 @@ struct pci_host_bridge { unsigned int native_dpc:1; /* OS may use PCIe DPC */ unsigned int preserve_config:1; /* Preserve FW resource setup */ unsigned int size_windows:1; /* Enable root bus sizing */ + unsigned int no_msi:1; /* Bridge has no MSI support */ /* Resource alignment requirements */ resource_size_t (*align_resource)(struct pci_dev *dev, -- 2.29.2
| |