device/device_util: Add and use is_pci_bridge()
TEST=Build and boot on intel/archercity CRB
Change-Id: Ied4921f7dc7e144e580d05d4f2262777aa59d895
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81566
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/device/device_util.c b/src/device/device_util.c
index 7dcf081..d91df76 100644
--- a/src/device/device_util.c
+++ b/src/device/device_util.c
@@ -930,3 +930,8 @@
return is_pci(pci) && pci->upstream->segment_group == 0
&& pci->upstream->secondary == bus;
}
+
+bool is_pci_bridge(const struct device *pci)
+{
+ return is_pci(pci) && ((pci->hdr_type & 0x7f) == PCI_HEADER_TYPE_BRIDGE);
+}
diff --git a/src/include/device/device.h b/src/include/device/device.h
index ac7e8691..48e539f 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -193,6 +193,7 @@
bool is_pci(const struct device *pci);
bool is_enabled_pci(const struct device *pci);
bool is_pci_dev_on_bus(const struct device *pci, unsigned int bus);
+bool is_pci_bridge(const struct device *pci);
/* Returns whether there is a hotplug port on the path to the given device. */
bool dev_path_hotplug(const struct device *);
diff --git a/src/soc/intel/xeon_sp/uncore_acpi.c b/src/soc/intel/xeon_sp/uncore_acpi.c
index 95f1492..6b6363d 100644
--- a/src/soc/intel/xeon_sp/uncore_acpi.c
+++ b/src/soc/intel/xeon_sp/uncore_acpi.c
@@ -317,7 +317,7 @@
const struct device *domain = dev_get_domain(iommu);
struct device *dev = NULL;
while ((dev = dev_bus_each_child(domain->downstream, dev)))
- if ((dev->hdr_type & 0x7f) == PCI_HEADER_TYPE_BRIDGE)
+ if (is_pci_bridge(dev))
current +=
acpi_create_dmar_ds_pci_br_for_port(
current, dev, pcie_seg, false, NULL);
@@ -421,7 +421,7 @@
continue;
for (child = dev->upstream->children; child; child = child->sibling) {
- if ((child->hdr_type & 0x7f) != PCI_HEADER_TYPE_BRIDGE)
+ if (!is_pci_bridge(child))
continue;
current +=
acpi_create_dmar_ds_pci_br_for_port(