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>
This commit is contained in:
parent
775c0e6de2
commit
0f3316bc71
@ -930,3 +930,8 @@ bool is_pci_dev_on_bus(const struct device *pci, unsigned int bus)
|
||||
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);
|
||||
}
|
||||
|
@ -193,6 +193,7 @@ bool is_enabled_cpu(const struct device *cpu);
|
||||
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 *);
|
||||
|
@ -317,7 +317,7 @@ static unsigned long acpi_create_drhd(unsigned long current, struct device *iomm
|
||||
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 @@ static unsigned long acpi_create_atsr(unsigned long current)
|
||||
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(
|
||||
|
Loading…
x
Reference in New Issue
Block a user