|
@@ -23,6 +23,9 @@ struct pci_sysdata {
|
|
|
#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN
|
|
|
void *fwnode; /* IRQ domain for MSI assignment */
|
|
|
#endif
|
|
|
+#if IS_ENABLED(CONFIG_VMD)
|
|
|
+ bool vmd_domain; /* True if in Intel VMD domain */
|
|
|
+#endif
|
|
|
};
|
|
|
|
|
|
extern int pci_routeirq;
|
|
@@ -56,6 +59,17 @@ static inline void *_pci_root_bus_fwnode(struct pci_bus *bus)
|
|
|
#define pci_root_bus_fwnode _pci_root_bus_fwnode
|
|
|
#endif
|
|
|
|
|
|
+static inline bool is_vmd(struct pci_bus *bus)
|
|
|
+{
|
|
|
+#if IS_ENABLED(CONFIG_VMD)
|
|
|
+ struct pci_sysdata *sd = bus->sysdata;
|
|
|
+
|
|
|
+ return sd->vmd_domain;
|
|
|
+#else
|
|
|
+ return false;
|
|
|
+#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 */
|