|
@@ -20,6 +20,9 @@ struct pci_sysdata {
|
|
|
#ifdef CONFIG_X86_64
|
|
|
void *iommu; /* IOMMU private data */
|
|
|
#endif
|
|
|
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
|
|
+ void *fwnode; /* IRQ domain for MSI assignment */
|
|
|
+#endif
|
|
|
};
|
|
|
|
|
|
extern int pci_routeirq;
|
|
@@ -32,6 +35,7 @@ extern int noioapicreroute;
|
|
|
static inline int pci_domain_nr(struct pci_bus *bus)
|
|
|
{
|
|
|
struct pci_sysdata *sd = bus->sysdata;
|
|
|
+
|
|
|
return sd->domain;
|
|
|
}
|
|
|
|
|
@@ -41,6 +45,17 @@ static inline int pci_proc_domain(struct pci_bus *bus)
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
|
|
+static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
|
|
|
+{
|
|
|
+ struct pci_sysdata *sd = bus->sysdata;
|
|
|
+
|
|
|
+ return sd->fwnode;
|
|
|
+}
|
|
|
+
|
|
|
+#define pci_root_bus_fwnode _pci_root_bus_fwnode
|
|
|
+#endif
|
|
|
+
|
|
|
/* Can be used to override the logic in pci_scan_bus for skipping
|
|
|
already-configured bus numbers - to be used for buggy BIOSes
|
|
|
or architectures with incomplete PCI setup by the loader */
|