From: Bharat Kumar Gogada <bharat.kumar.gogada@xxxxxxxxxx> Adding method pci_check_platform_service_irqs to check if platform has registered method to proivde dedicated IRQ lines for PCIe services like AER. Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xxxxxxxxxx> Signed-off-by: Stefan Roese <sr@xxxxxxx> Tested-by: Stefan Roese <sr@xxxxxxx> Cc: Bjorn Helgaas <helgaas@xxxxxxxxxx> Cc: Pali Rohár <pali@xxxxxxxxxx> Cc: Michal Simek <michal.simek@xxxxxxxxxx> --- include/linux/pci.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/include/linux/pci.h b/include/linux/pci.h index 291eadade811..d6812d596ecc 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2420,6 +2420,24 @@ static inline bool pci_ari_enabled(struct pci_bus *bus) return bus->self && bus->self->ari_enabled; } +/** + * pci_check_platform_service_irqs - check platform service irq's + * @pdev: PCI Express device to check + * @irqs: Array of irqs to populate + * @mask: Bitmask of capabilities + */ +static inline void pci_check_platform_service_irqs(struct pci_dev *dev, + int *irqs, int mask) +{ + struct pci_host_bridge *bridge; + + if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) { + bridge = pci_find_host_bridge(dev->bus); + if (bridge && bridge->setup_platform_service_irq) + bridge->setup_platform_service_irq(bridge, irqs, mask); + } +} + /** * pci_is_thunderbolt_attached - whether device is on a Thunderbolt daisy chain * @pdev: PCI device to check -- 2.34.1