Felix Held has submitted this change. ( https://review.coreboot.org/c/coreboot/+/78330?usp=email )
Change subject: device/device.h: Rename busses for clarity ......................................................................
device/device.h: Rename busses for clarity
This renames bus to upstream and link_list to downstream.
Signed-off-by: Arthur Heymans arthur@aheymans.xyz Change-Id: I80a81b6b8606e450ff180add9439481ec28c2420 Reviewed-on: https://review.coreboot.org/c/coreboot/+/78330 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Felix Held felix-coreboot@felixheld.de --- M src/acpi/acpi.c M src/acpi/device.c M src/arch/x86/mpspec.c M src/cpu/intel/haswell/haswell_init.c M src/cpu/intel/model_2065x/model_2065x_init.c M src/cpu/intel/model_206ax/model_206ax_init.c M src/device/cardbus_device.c M src/device/device.c M src/device/device_const.c M src/device/device_util.c M src/device/i2c_bus.c M src/device/mdio.c M src/device/oprom/realmode/x86.c M src/device/oprom/realmode/x86_interrupts.c M src/device/oprom/yabel/device.c M src/device/oprom/yabel/interrupt.c M src/device/pci_device.c M src/device/pci_rom.c M src/device/pciexp_device.c M src/device/pcix_device.c M src/device/pnp_device.c M src/device/resource_allocator_v4.c M src/device/root_device.c M src/drivers/i2c/ptn3460/ptn3460.c M src/drivers/intel/dptf/dptf.c M src/drivers/intel/ish/ish.c M src/drivers/intel/mipi_camera/camera.c M src/drivers/intel/soundwire/soundwire.c M src/drivers/net/phy/m88e1512/m88e1512.c M src/drivers/net/r8168.c M src/drivers/nxp/uwb/uwb.c M src/drivers/pcie/generic/generic.c M src/drivers/spi/acpi/acpi.c M src/drivers/usb/hub/acpi.c M src/drivers/usb/pci_xhci/pci_xhci.c M src/drivers/wifi/generic/acpi.c M src/drivers/wifi/generic/smbios.c M src/drivers/wwan/fm/acpi_fm350gl.c M src/ec/google/chromeec/ec_acpi.c M src/include/device/device.h M src/include/device/pci_ops.h M src/lib/smbios.c M src/mainboard/aopen/dxplplusu/acpi_tables.c M src/mainboard/emulation/qemu-i440fx/northbridge.c M src/mainboard/google/brox/mainboard.c M src/mainboard/google/brya/mainboard.c M src/mainboard/google/kahlee/variants/careena/mainboard.c M src/mainboard/google/kahlee/variants/treeya/audio.c M src/mainboard/google/octopus/mainboard.c M src/mainboard/google/rex/mainboard.c M src/mainboard/google/zork/variants/baseboard/ramstage_common.c M src/mainboard/ibase/mb899/mptable.c M src/mainboard/kontron/986lcd-m/mptable.c M src/mainboard/pcengines/apu2/mainboard.c M src/mainboard/roda/rk9/ti_pci7xx1.c M src/mainboard/siemens/fa_ehl/mainboard.c M src/mainboard/siemens/mc_apl1/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c M src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c M src/mainboard/siemens/mc_ehl/mainboard.c M src/northbridge/amd/pi/00730F01/northbridge.c M src/northbridge/intel/e7505/northbridge.c M src/northbridge/intel/gm45/northbridge.c M src/northbridge/intel/haswell/pcie.c M src/northbridge/intel/i440bx/northbridge.c M src/northbridge/intel/i945/northbridge.c M src/northbridge/intel/pineview/northbridge.c M src/northbridge/intel/sandybridge/pcie.c M src/northbridge/intel/x4x/northbridge.c M src/soc/amd/cezanne/xhci.c M src/soc/amd/common/block/acpi/ivrs.c M src/soc/amd/common/block/data_fabric/domain.c M src/soc/amd/common/block/lpc/lpc.c M src/soc/amd/genoa_poc/domain.c M src/soc/amd/glinda/xhci.c M src/soc/amd/mendocino/xhci.c M src/soc/amd/phoenix/xhci.c M src/soc/amd/picasso/xhci.c M src/soc/amd/stoneyridge/northbridge.c M src/soc/cavium/cn81xx/ecam0.c M src/soc/intel/apollolake/chip.c M src/soc/intel/braswell/southcluster.c M src/soc/intel/common/block/acpi/pep.c M src/soc/intel/common/block/lpc/lpc.c M src/soc/intel/common/block/pcie/rtd3/rtd3.c M src/soc/intel/common/block/usb4/pcie.c M src/soc/intel/common/block/xhci/xhci.c M src/soc/intel/denverton_ns/lpc.c M src/soc/intel/meteorlake/fsp_params.c M src/soc/intel/skylake/chip.c M src/soc/intel/xeon_sp/chip_common.c M src/soc/intel/xeon_sp/cpx/soc_acpi.c M src/soc/intel/xeon_sp/skx/soc_acpi.c M src/soc/intel/xeon_sp/spr/soc_acpi.c M src/soc/intel/xeon_sp/uncore.c M src/soc/intel/xeon_sp/uncore_acpi.c M src/southbridge/amd/pi/hudson/lpc.c M src/southbridge/intel/bd82x6x/pcie.c M src/superio/common/generic.c M src/superio/common/ssdt.c M src/superio/nuvoton/npcd378/superio.c M src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c M util/sconfig/main.c 104 files changed, 343 insertions(+), 348 deletions(-)
Approvals: Felix Held: Looks good to me, approved build bot (Jenkins): Verified
diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index 0e4798c..6bf452e 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -700,8 +700,8 @@
if (device->path.type == DEVICE_PATH_PCI) { spmi->pci_device_flag = ACPI_IPMI_PCI_DEVICE_FLAG; - spmi->pci_segment_group = device->bus->segment_group; - spmi->pci_bus = device->bus->secondary; + spmi->pci_segment_group = device->upstream->segment_group; + spmi->pci_bus = device->upstream->secondary; spmi->pci_device = device->path.pci.devfn >> 3; spmi->pci_function = device->path.pci.devfn & 0x7; } else if (type != IPMI_INTERFACE_SSIF) { diff --git a/src/acpi/device.c b/src/acpi/device.c index 823cdbeb..368b86c 100644 --- a/src/acpi/device.c +++ b/src/acpi/device.c @@ -83,8 +83,8 @@ }
/* Walk up the tree to find if any parent can identify this device */ - while (pdev->bus) { - pdev = pdev->bus->dev; + while (pdev->upstream) { + pdev = pdev->upstream->dev; if (!pdev) break; if (is_root_device(pdev)) @@ -147,8 +147,8 @@ return cur;
/* Walk up the tree to the root device */ - if (!is_root_device(dev) && dev->bus && dev->bus->dev) - next = acpi_device_path_fill(dev->bus->dev, buf, buf_len, cur); + if (!is_root_device(dev) && dev->upstream && dev->upstream->dev) + next = acpi_device_path_fill(dev->upstream->dev, buf, buf_len, cur); if (next < 0) return next;
@@ -182,10 +182,10 @@ { static char buf[DEVICE_PATH_MAX] = {};
- if (!dev || !dev->bus || !dev->bus->dev) + if (!dev || !dev->upstream || !dev->upstream->dev) return NULL;
- if (acpi_device_path_fill(dev->bus->dev, buf, sizeof(buf), 0) <= 0) + if (acpi_device_path_fill(dev->upstream->dev, buf, sizeof(buf), 0) <= 0) return NULL;
return buf; diff --git a/src/arch/x86/mpspec.c b/src/arch/x86/mpspec.c index 3ddee2f..b8bdb09 100644 --- a/src/arch/x86/mpspec.c +++ b/src/arch/x86/mpspec.c @@ -284,11 +284,11 @@
unsigned char dstirq_x[4];
- if (!dev->link_list) + if (!dev->downstream) return;
- child = dev->link_list->children; - srcbus = dev->link_list->secondary; + child = dev->downstream->children; + srcbus = dev->downstream->secondary;
while (child) { if (child->path.type != DEVICE_PATH_PCI) @@ -476,7 +476,7 @@ memset(buses, 0, sizeof(buses));
for (dev = all_devices; dev; dev = dev->next) { - struct bus *bus = dev->link_list; + struct bus *bus = dev->downstream; if (!bus) continue; if (bus->secondary > 255) { diff --git a/src/cpu/intel/haswell/haswell_init.c b/src/cpu/intel/haswell/haswell_init.c index 83d847cb..86dcbea 100644 --- a/src/cpu/intel/haswell/haswell_init.c +++ b/src/cpu/intel/haswell/haswell_init.c @@ -449,7 +449,7 @@ static void configure_thermal_target(struct device *dev) { /* Make sure your devicetree has the cpu_cluster below chip cpu/intel/haswell! */ - struct cpu_intel_haswell_config *conf = dev->bus->dev->chip_info; + struct cpu_intel_haswell_config *conf = dev->upstream->dev->chip_info; msr_t msr;
/* Set TCC activation offset if supported */ diff --git a/src/cpu/intel/model_2065x/model_2065x_init.c b/src/cpu/intel/model_2065x/model_2065x_init.c index 3497ae0..cb74854 100644 --- a/src/cpu/intel/model_2065x/model_2065x_init.c +++ b/src/cpu/intel/model_2065x/model_2065x_init.c @@ -22,7 +22,7 @@
static void configure_thermal_target(struct device *dev) { - struct cpu_intel_model_2065x_config *conf = dev->bus->dev->chip_info; + struct cpu_intel_model_2065x_config *conf = dev->upstream->dev->chip_info; msr_t msr;
/* Set TCC activation offset if supported */ diff --git a/src/cpu/intel/model_206ax/model_206ax_init.c b/src/cpu/intel/model_206ax/model_206ax_init.c index 372989c..d9340ff 100644 --- a/src/cpu/intel/model_206ax/model_206ax_init.c +++ b/src/cpu/intel/model_206ax/model_206ax_init.c @@ -223,7 +223,7 @@
static void configure_thermal_target(struct device *dev) { - struct cpu_intel_model_206ax_config *conf = dev->bus->dev->chip_info; + struct cpu_intel_model_206ax_config *conf = dev->upstream->dev->chip_info; msr_t msr;
if (boot_cpu()) { diff --git a/src/device/cardbus_device.c b/src/device/cardbus_device.c index 23f24dd..2eb070e 100644 --- a/src/device/cardbus_device.c +++ b/src/device/cardbus_device.c @@ -119,7 +119,7 @@ u16 ctrl;
ctrl = pci_read_config16(dev, PCI_CB_BRIDGE_CONTROL); - ctrl |= (dev->link_list->bridge_ctrl & ( + ctrl |= (dev->downstream->bridge_ctrl & ( PCI_BRIDGE_CTL_VGA | PCI_BRIDGE_CTL_MASTER_ABORT | PCI_BRIDGE_CTL_BUS_RESET)); diff --git a/src/device/device.c b/src/device/device.c index 743a3af..72a408e 100644 --- a/src/device/device.c +++ b/src/device/device.c @@ -101,7 +101,7 @@ dev->enabled = 1;
/* Add the new device to the list of children of the bus. */ - dev->bus = parent; + dev->upstream = parent; if (child) child->sibling = dev; else @@ -139,13 +139,13 @@ */ static struct bus *__alloc_bus(struct device *parent) { - if (parent->link_list) - return parent->link_list; + if (parent->downstream) + return parent->downstream;
struct bus *bus = calloc(1, sizeof(struct bus)); if (!bus) die("Couldn't allocate downstream bus!\n"); - parent->link_list = bus; + parent->downstream = bus; bus->dev = parent;
return bus; @@ -205,8 +205,8 @@ curdev->ops->read_resources(curdev);
/* Read in the resources behind the current device's links. */ - if (curdev->link_list) - read_resources(curdev->link_list); + if (curdev->downstream) + read_resources(curdev->downstream); } post_log_clear(); printk(BIOS_SPEW, "%s %s segment group %d bus %d done\n", @@ -236,7 +236,7 @@ continue;
printk(BIOS_DEBUG, "found VGA at %s\n", dev_path(dev)); - if (dev->bus->no_vga16) { + if (dev->upstream->no_vga16) { printk(BIOS_WARNING, "A bridge on the path doesn't support 16-bit VGA decoding!"); } @@ -270,7 +270,7 @@ /* All legacy VGA cards have MEM & I/O space registers. */ vga->command |= (PCI_COMMAND_MEMORY | PCI_COMMAND_IO); vga_pri = vga; - bus = vga->bus; + bus = vga->upstream; }
/* Now walk up the bridges setting the VGA enable. */ @@ -278,7 +278,7 @@ printk(BIOS_DEBUG, "Setting PCI_BRIDGE_CTL_VGA for bridge %s\n", dev_path(bus->dev)); bus->bridge_ctrl |= PCI_BRIDGE_CTL_VGA | PCI_BRIDGE_CTL_VGA16; - bus = (bus == bus->dev->bus) ? 0 : bus->dev->bus; + bus = (bus == bus->dev->upstream) ? 0 : bus->dev->upstream; } }
@@ -343,8 +343,8 @@ }
for (dev = link->children; dev; dev = dev->sibling) { - if (dev->link_list) - enable_resources(dev->link_list); + if (dev->downstream) + enable_resources(dev->downstream); } post_log_clear(); } @@ -391,7 +391,7 @@
do_scan_bus = 1; while (do_scan_bus) { - struct bus *link = busdev->link_list; + struct bus *link = busdev->downstream; busdev->ops->scan_bus(busdev); do_scan_bus = 0; if (!link || !link->reset_needed) @@ -399,7 +399,7 @@ if (reset_bus(link)) do_scan_bus = 1; else - busdev->bus->reset_needed = 1; + busdev->upstream->reset_needed = 1; }
scan_time = stopwatch_duration_msecs(&sw); @@ -496,14 +496,14 @@ /* Read the resources for the entire tree. */
printk(BIOS_INFO, "Reading resources...\n"); - read_resources(root->link_list); + read_resources(root->downstream); printk(BIOS_INFO, "Done reading resources.\n");
print_resource_tree(root, BIOS_SPEW, "After reading.");
allocate_resources(root);
- assign_resources(root->link_list); + assign_resources(root->downstream); printk(BIOS_INFO, "Done setting resources.\n"); print_resource_tree(root, BIOS_SPEW, "After assigning values.");
@@ -521,8 +521,8 @@ printk(BIOS_INFO, "Enabling resources...\n");
/* Now enable everything. */ - if (dev_root.link_list) - enable_resources(dev_root.link_list); + if (dev_root.downstream) + enable_resources(dev_root.downstream);
printk(BIOS_INFO, "done.\n"); } @@ -546,7 +546,7 @@ long init_time;
if (dev->path.type == DEVICE_PATH_I2C) { - printk(BIOS_DEBUG, "smbus: %s->", dev_path(dev->bus->dev)); + printk(BIOS_DEBUG, "smbus: %s->", dev_path(dev->upstream->dev)); }
printk(BIOS_DEBUG, "%s init\n", dev_path(dev)); @@ -572,8 +572,8 @@ }
for (dev = link->children; dev; dev = dev->sibling) - if (dev->link_list) - init_link(dev->link_list); + if (dev->downstream) + init_link(dev->downstream); }
/** @@ -590,8 +590,8 @@ init_dev(&dev_root);
/* Now initialize everything. */ - if (dev_root.link_list) - init_link(dev_root.link_list); + if (dev_root.downstream) + init_link(dev_root.downstream); post_log_clear();
printk(BIOS_INFO, "Devices initialized\n"); @@ -626,8 +626,8 @@ final_dev(dev);
for (dev = link->children; dev; dev = dev->sibling) - if (dev->link_list) - final_link(dev->link_list); + if (dev->downstream) + final_link(dev->downstream); } /** * Finalize all devices in the global device tree. @@ -643,7 +643,7 @@ final_dev(&dev_root);
/* Now finalize everything. */ - final_link(dev_root.link_list); + final_link(dev_root.downstream);
printk(BIOS_INFO, "Devices finalized\n"); } diff --git a/src/device/device_const.c b/src/device/device_const.c index c91c009..0521c7e 100644 --- a/src/device/device_const.c +++ b/src/device/device_const.c @@ -34,8 +34,8 @@ result = 0; for (dev = all_devices; dev; dev = dev->next) { if ((dev->path.type == DEVICE_PATH_PCI) && - (dev->bus->secondary == bus) && - (dev->bus->segment_group == 0) && + (dev->upstream->secondary == bus) && + (dev->upstream->segment_group == 0) && (dev->path.pci.devfn == devfn)) { result = dev; break; @@ -210,7 +210,7 @@ if (nested_path_length == 1 || !child) return child;
- return find_dev_nested_path(child->link_list, nested_path + 1, nested_path_length - 1); + return find_dev_nested_path(child->downstream, nested_path + 1, nested_path_length - 1); }
DEVTREE_CONST struct device *pcidev_path_behind( @@ -234,8 +234,8 @@ dev = dev->next; continue; } - if (dev->bus->secondary == bus && dev->bus->segment_group == 0) - return pcidev_path_behind(dev->bus, devfn); + if (dev->upstream->secondary == bus && dev->upstream->segment_group == 0) + return pcidev_path_behind(dev->upstream, devfn); dev = dev->next; } return NULL; @@ -253,7 +253,7 @@ if (!pci_domain) return NULL;
- pci_root = pci_domain->link_list; + pci_root = pci_domain->downstream; return pci_root; }
@@ -277,7 +277,7 @@ return NULL; }
- return pcidev_path_behind(bridge->link_list, devfn); + return pcidev_path_behind(bridge->downstream, devfn); }
DEVTREE_CONST struct device *pcidev_path_on_root_debug(pci_devfn_t devfn, const char *func) @@ -317,7 +317,7 @@ result = 0; for (dev = all_devices; dev; dev = dev->next) { if ((dev->path.type == DEVICE_PATH_I2C) && - (dev->bus->secondary == bus) && + (dev->upstream->secondary == bus) && (dev->path.i2c.device == addr)) { result = dev; break; diff --git a/src/device/device_util.c b/src/device/device_util.c index ea4ef27..b5d0d98 100644 --- a/src/device/device_util.c +++ b/src/device/device_util.c @@ -97,7 +97,7 @@ case DEVICE_PATH_ROOT: break; case DEVICE_PATH_PCI: - ret |= dev->bus->segment_group << 16 | dev->bus->secondary << 8 | dev->path.pci.devfn; + ret |= dev->upstream->segment_group << 16 | dev->upstream->secondary << 8 | dev->path.pci.devfn; break; case DEVICE_PATH_PNP: ret |= dev->path.pnp.port << 8 | dev->path.pnp.device; @@ -169,8 +169,8 @@ case DEVICE_PATH_PCI: snprintf(buffer, sizeof(buffer), "PCI: %02x:%02x:%02x.%01x", - dev->bus->segment_group, - dev->bus->secondary, + dev->upstream->segment_group, + dev->upstream->secondary, PCI_SLOT(dev->path.pci.devfn), PCI_FUNC(dev->path.pci.devfn)); break; @@ -180,7 +180,7 @@ break; case DEVICE_PATH_I2C: snprintf(buffer, sizeof(buffer), "I2C: %02x:%02x", - dev->bus->secondary, + dev->upstream->secondary, dev->path.i2c.device); break; case DEVICE_PATH_APIC: @@ -253,8 +253,8 @@ struct device *dev_get_pci_domain(struct device *dev) { /* Walk up the tree up to the PCI domain */ - while (dev && dev->bus && !is_root_device(dev)) { - dev = dev->bus->dev; + while (dev && dev->upstream && !is_root_device(dev)) { + dev = dev->upstream->dev; if (dev->path.type == DEVICE_PATH_DOMAIN) return dev; } @@ -529,10 +529,10 @@ end = resource_end(resource); buf[0] = '\0';
- if (dev->link_list && (resource->flags & IORESOURCE_PCI_BRIDGE)) { + if (dev->downstream && (resource->flags & IORESOURCE_PCI_BRIDGE)) { snprintf(buf, sizeof(buf), - "seg %02x bus %02x ", dev->link_list->segment_group, - dev->link_list->secondary); + "seg %02x bus %02x ", dev->downstream->segment_group, + dev->downstream->secondary); } printk(BIOS_DEBUG, "%s %02lx <- [0x%016llx - 0x%016llx] size 0x%08llx " "gran 0x%02x %s%s%s\n", dev_path(dev), resource->index, @@ -560,8 +560,8 @@
/* If it is a subtractive resource recurse. */ if (res->flags & IORESOURCE_SUBTRACTIVE) { - if (curdev->link_list) - search_bus_resources(curdev->link_list, type_mask, type, + if (curdev->downstream) + search_bus_resources(curdev->downstream, type_mask, type, search, gp); continue; } @@ -617,8 +617,8 @@ struct device *child;
for (child = bus->children; child; child = child->sibling) { - if (child->link_list) - disable_children(child->link_list); + if (child->downstream) + disable_children(child->downstream); dev_set_enabled(child, 0); } } @@ -634,10 +634,10 @@ if (!dev || !dev->enabled) return 0;
- if (!dev->link_list || !dev->link_list->children) + if (!dev->downstream || !dev->downstream->children) return 0;
- for (child = dev->link_list->children; child; child = child->sibling) { + for (child = dev->downstream->children; child; child = child->sibling) { if (child->path.type == DEVICE_PATH_NONE) continue; if (child->enabled) @@ -659,9 +659,9 @@ indent[i] = '\0';
printk(BIOS_DEBUG, "%s%s", indent, dev_path(root)); - if (root->link_list && root->link_list->children) + if (root->downstream && root->downstream->children) printk(BIOS_DEBUG, " child on link 0 %s", - dev_path(root->link_list->children)); + dev_path(root->downstream->children)); printk(BIOS_DEBUG, "\n");
for (res = root->resource_list; res; res = res->next) { @@ -672,10 +672,10 @@ res->index); }
- if (!root->link_list) + if (!root->downstream) return;
- for (child = root->link_list->children; child; child = child->sibling) + for (child = root->downstream->children; child; child = child->sibling) resource_tree(child, debug_level, depth + 1); }
@@ -709,10 +709,10 @@ printk(debug_level, "%s%s: enabled %d\n", depth_str, dev_path(dev), dev->enabled);
- if (!dev->link_list) + if (!dev->downstream) return;
- for (sibling = dev->link_list->children; sibling; sibling = sibling->sibling) + for (sibling = dev->downstream->children; sibling; sibling = sibling->sibling) show_devs_tree(sibling, debug_level, depth + 1); }
@@ -890,7 +890,7 @@
bool dev_path_hotplug(const struct device *dev) { - for (dev = dev->bus->dev; dev != dev->bus->dev; dev = dev->bus->dev) { + for (dev = dev->upstream->dev; dev != dev->upstream->dev; dev = dev->upstream->dev) { if (dev->hotplug_port) return true; } @@ -909,7 +909,7 @@ bool is_cpu(const struct device *cpu) { return cpu->path.type == DEVICE_PATH_APIC && - cpu->bus->dev->path.type == DEVICE_PATH_CPU_CLUSTER; + cpu->upstream->dev->path.type == DEVICE_PATH_CPU_CLUSTER; }
bool is_enabled_cpu(const struct device *cpu) @@ -929,5 +929,6 @@
bool is_pci_dev_on_bus(const struct device *pci, unsigned int bus) { - return is_pci(pci) && pci->bus->segment_group == 0 && pci->bus->secondary == bus; + return is_pci(pci) && pci->upstream->segment_group == 0 + && pci->upstream->secondary == bus; } diff --git a/src/device/i2c_bus.c b/src/device/i2c_bus.c index 1d4aa2d..41ef14a 100644 --- a/src/device/i2c_bus.c +++ b/src/device/i2c_bus.c @@ -18,10 +18,10 @@
struct bus *i2c_link(const struct device *const dev) { - if (!dev || !dev->bus) + if (!dev || !dev->upstream) return NULL;
- struct bus *link = dev->bus; + struct bus *link = dev->upstream; while (link) { struct device *const parent = link->dev;
@@ -29,8 +29,8 @@ (parent->ops->ops_i2c_bus || parent->ops->ops_smbus_bus)) break;
- if (parent && parent->bus && link != parent->bus) - link = parent->bus; + if (parent && parent->upstream && link != parent->upstream) + link = parent->upstream; else link = NULL; } diff --git a/src/device/mdio.c b/src/device/mdio.c index 39ac40b..89da60b 100644 --- a/src/device/mdio.c +++ b/src/device/mdio.c @@ -19,7 +19,7 @@ uint16_t mdio_read(struct device *dev, uint8_t offset) { const struct mdio_bus_operations *mdio_ops; - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev;
assert(dev->path.type == DEVICE_PATH_MDIO); mdio_ops = dev_get_mdio_ops(parent); @@ -30,7 +30,7 @@ void mdio_write(struct device *dev, uint8_t offset, uint16_t val) { const struct mdio_bus_operations *mdio_ops; - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev;
assert(dev->path.type == DEVICE_PATH_MDIO); mdio_ops = dev_get_mdio_ops(parent); diff --git a/src/device/oprom/realmode/x86.c b/src/device/oprom/realmode/x86.c index 367614d..c3adf40 100644 --- a/src/device/oprom/realmode/x86.c +++ b/src/device/oprom/realmode/x86.c @@ -415,7 +415,7 @@
void run_bios(struct device *dev, unsigned long addr) { - u32 num_dev = (dev->bus->secondary << 8) | dev->path.pci.devfn; + u32 num_dev = (dev->upstream->secondary << 8) | dev->path.pci.devfn;
/* Setting up required hardware. * Removing this will cause random illegal instruction exceptions diff --git a/src/device/oprom/realmode/x86_interrupts.c b/src/device/oprom/realmode/x86_interrupts.c index 945052b..71fc1d5 100644 --- a/src/device/oprom/realmode/x86_interrupts.c +++ b/src/device/oprom/realmode/x86_interrupts.c @@ -138,7 +138,7 @@ X86_EAX |= PCIBIOS_SUCCESSFUL; // busnum is an unsigned char; // devfn is an int, so we mask it off. - busdevfn = (dev->bus->secondary << 8) + busdevfn = (dev->upstream->secondary << 8) | (dev->path.pci.devfn & 0xff); printk(BIOS_DEBUG, "0x%x: return 0x%x\n", func, busdevfn); X86_EBX = busdevfn; diff --git a/src/device/oprom/yabel/device.c b/src/device/oprom/yabel/device.c index 2c98578..d1dc801 100644 --- a/src/device/oprom/yabel/device.c +++ b/src/device/oprom/yabel/device.c @@ -65,7 +65,7 @@ { int taa_index = 0; struct resource *r; - u8 bus = bios_device.dev->bus->secondary; + u8 bus = bios_device.dev->upstream->secondary; u16 devfn = bios_device.dev->path.pci.devfn;
bios_device.bus = bus; diff --git a/src/device/oprom/yabel/interrupt.c b/src/device/oprom/yabel/interrupt.c index 968e471..e78a3cb 100644 --- a/src/device/oprom/yabel/interrupt.c +++ b/src/device/oprom/yabel/interrupt.c @@ -375,7 +375,7 @@ } else if (CONFIG(YABEL_PCI_ACCESS_OTHER_DEVICES)) { dev = dev_find_device(M.x86.R_DX, M.x86.R_CX, 0); if (dev != NULL) { - M.x86.R_BH = dev->bus->secondary; + M.x86.R_BH = dev->upstream->secondary; M.x86.R_BL = dev->path.pci.devfn; DEBUG_PRINTF_INTR ("%s(): function %x: PCI Find Device --> 0x%04x\n", diff --git a/src/device/pci_device.c b/src/device/pci_device.c index 24b9523..8ead8a5 100644 --- a/src/device/pci_device.c +++ b/src/device/pci_device.c @@ -585,7 +585,7 @@
void pci_domain_set_resources(struct device *dev) { - assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static void pci_store_resource(const struct device *const dev, @@ -718,8 +718,8 @@ for (res = dev->resource_list; res; res = res->next) pci_set_resource(dev, res);
- if (dev->link_list && dev->link_list->children) - assign_resources(dev->link_list); + if (dev->downstream && dev->downstream->children) + assign_resources(dev->downstream);
/* Set a default latency timer. */ pci_write_config8(dev, PCI_LATENCY_TIMER, 0x40); @@ -782,10 +782,10 @@ * Enable I/O in command register if there is VGA card * connected with (even it does not claim I/O resource). */ - if (dev->link_list->bridge_ctrl & PCI_BRIDGE_CTL_VGA) + if (dev->downstream->bridge_ctrl & PCI_BRIDGE_CTL_VGA) dev->command |= PCI_COMMAND_IO; ctrl = pci_read_config16(dev, PCI_BRIDGE_CONTROL); - ctrl |= dev->link_list->bridge_ctrl; + ctrl |= dev->downstream->bridge_ctrl; ctrl |= (PCI_BRIDGE_CTL_PARITY | PCI_BRIDGE_CTL_SERR); /* Error check. */ printk(BIOS_DEBUG, "%s bridge ctrl <- %04x\n", dev_path(dev), ctrl); pci_write_config16(dev, PCI_BRIDGE_CONTROL, ctrl); @@ -843,7 +843,7 @@ { static int should_run = -1;
- if (dev->bus->segment_group) { + if (dev->upstream->segment_group) { printk(BIOS_ERR, "Only option ROMs of devices in first PCI segment group can " "be run.\n"); return 0; @@ -990,7 +990,7 @@ pci_write_config16(bus->dev, PCI_BRIDGE_CONTROL, bridge_ctrl);
/* If the upstream bridge doesn't support VGA16, we don't have to check */ - bus->no_vga16 |= bus->dev->bus->no_vga16; + bus->no_vga16 |= bus->dev->upstream->no_vga16; if (bus->no_vga16) return;
@@ -1215,7 +1215,7 @@ if (!dev) { struct device dummy;
- dummy.bus = bus; + dummy.upstream = bus; dummy.path.type = DEVICE_PATH_PCI; dummy.path.pci.devfn = devfn;
@@ -1317,9 +1317,9 @@ */ unsigned int pci_match_simple_dev(struct device *dev, pci_devfn_t sdev) { - return dev->bus->secondary == PCI_DEV2BUS(sdev) && - dev->bus->segment_group == PCI_DEV2SEG(sdev) && - dev->path.pci.devfn == PCI_DEV2DEVFN(sdev); + return dev->upstream->secondary == PCI_DEV2BUS(sdev) && + dev->upstream->segment_group == PCI_DEV2SEG(sdev) && + dev->path.pci.devfn == PCI_DEV2DEVFN(sdev); }
/** @@ -1333,14 +1333,14 @@ */ uint16_t pci_find_cap_recursive(const struct device *dev, uint16_t cap) { - assert(dev->bus); + assert(dev->upstream); uint16_t pos = pci_find_capability(dev, cap); - const struct device *bridge = dev->bus->dev; + const struct device *bridge = dev->upstream->dev; while (bridge && (bridge->path.type == DEVICE_PATH_PCI)) { - assert(bridge->bus); + assert(bridge->upstream); if (!pci_find_capability(bridge, cap)) return 0; - bridge = bridge->bus->dev; + bridge = bridge->upstream->dev; } return pos; } @@ -1546,7 +1546,7 @@ static void pci_bridge_route(struct bus *link, scan_state state) { struct device *dev = link->dev; - struct bus *parent = dev->bus; + struct bus *parent = dev->upstream; uint8_t primary, secondary, subordinate;
if (state == PCI_ROUTE_SCAN) { @@ -1625,17 +1625,17 @@
printk(BIOS_SPEW, "%s for %s\n", __func__, dev_path(dev));
- if (dev->link_list == NULL) { + if (dev->downstream == NULL) { struct bus *link; link = malloc(sizeof(*link)); if (link == NULL) die("Couldn't allocate a link!\n"); memset(link, 0, sizeof(*link)); link->dev = dev; - dev->link_list = link; + dev->downstream = link; }
- bus = dev->link_list; + bus = dev->downstream;
pci_bridge_vga_compat(bus);
@@ -1670,7 +1670,7 @@ */ void pci_host_bridge_scan_bus(struct device *dev) { - struct bus *link = dev->link_list; + struct bus *link = dev->downstream; pci_scan_bus(link, PCI_DEVFN(0, 0), 0xff); }
@@ -1733,8 +1733,8 @@
/* While our current device has parent devices */ child = dev; - for (parent = child->bus->dev; parent; parent = parent->bus->dev) { - parent_bus = parent->bus->secondary; + for (parent = child->upstream->dev; parent; parent = parent->upstream->dev) { + parent_bus = parent->upstream->secondary; parent_devfn = parent->path.pci.devfn; child_devfn = child->path.pci.devfn;
@@ -1798,7 +1798,7 @@ if (!(dev->enabled && (dev->path.type == DEVICE_PATH_PCI))) return -1;
- bus = dev->bus->secondary; + bus = dev->upstream->secondary; devfn = dev->path.pci.devfn;
/* Get and validate the interrupt pin used. Only 1-4 are allowed */ diff --git a/src/device/pci_rom.c b/src/device/pci_rom.c index cc1e5d1..1e212ab 100644 --- a/src/device/pci_rom.c +++ b/src/device/pci_rom.c @@ -230,7 +230,7 @@ printk(BIOS_ERR, "%s failed\n", __func__); return current; } - if (device->bus->segment_group) { + if (device->upstream->segment_group) { printk(BIOS_ERR, "VFCT only supports GPU in first PCI segment group.\n"); return current; } @@ -243,7 +243,7 @@
header->DeviceID = device->device; header->VendorID = device->vendor; - header->PCIBus = device->bus->secondary; + header->PCIBus = device->upstream->secondary; header->PCIFunction = PCI_FUNC(device->path.pci.devfn); header->PCIDevice = PCI_SLOT(device->path.pci.devfn); header->ImageLength = rom->size * 512; diff --git a/src/device/pciexp_device.c b/src/device/pciexp_device.c index ab8430f..969dbb00 100644 --- a/src/device/pciexp_device.c +++ b/src/device/pciexp_device.c @@ -302,7 +302,7 @@ struct device *parent = NULL; unsigned int parent_cap = 0; if (!dev->ops->ops_pci || !dev->ops->ops_pci->get_ltr_max_latencies) { - parent = dev->bus->dev; + parent = dev->upstream->dev; if (parent->path.type != DEVICE_PATH_PCI) return; parent_cap = pci_find_capability(parent, PCI_CAP_ID_PCIE); @@ -319,9 +319,9 @@ do { if (dev->ops->ops_pci && dev->ops->ops_pci->get_ltr_max_latencies) break; - if (dev->bus->dev == dev || dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev == dev || dev->upstream->dev->path.type != DEVICE_PATH_PCI) return false; - dev = dev->bus->dev; + dev = dev->upstream->dev; } while (true);
dev->ops->ops_pci->get_ltr_max_latencies(max_snoop, max_nosnoop); @@ -627,7 +627,7 @@
static void pciexp_tune_dev(struct device *dev) { - struct device *root = dev->bus->dev; + struct device *root = dev->upstream->dev; unsigned int root_cap, cap;
cap = pci_find_capability(dev, PCI_CAP_ID_PCIE); @@ -752,7 +752,7 @@ /* Add dummy slot to preserve resources, must happen after bus scan */ struct device *dummy; struct device_path dummy_path = { .type = DEVICE_PATH_NONE }; - dummy = alloc_dev(dev->link_list, &dummy_path); + dummy = alloc_dev(dev->downstream, &dummy_path); dummy->ops = &pciexp_hotplug_dummy_ops; }
diff --git a/src/device/pcix_device.c b/src/device/pcix_device.c index e40ed3b..7ddc15d 100644 --- a/src/device/pcix_device.c +++ b/src/device/pcix_device.c @@ -107,11 +107,11 @@ sstatus = pci_read_config16(dev, pos + PCI_X_SEC_STATUS);
if (PCI_X_SSTATUS_MFREQ(sstatus) != PCI_X_SSTATUS_CONVENTIONAL_PCI) - pcix_tune_bus(dev->link_list); + pcix_tune_bus(dev->downstream);
/* Print the PCI-X bus speed. */ - printk(BIOS_DEBUG, "PCI: %02x:%02x: %s\n", dev->link_list->segment_group, - dev->link_list->secondary, pcix_speed(sstatus)); + printk(BIOS_DEBUG, "PCI: %02x:%02x: %s\n", dev->downstream->segment_group, + dev->downstream->secondary, pcix_speed(sstatus)); }
/** Default device operations for PCI-X bridges */ diff --git a/src/device/pnp_device.c b/src/device/pnp_device.c index dad791c..f799530 100644 --- a/src/device/pnp_device.c +++ b/src/device/pnp_device.c @@ -384,7 +384,7 @@ continue;
path.pnp.device = info[i].function; - dev = alloc_find_dev(base_dev->bus, &path); + dev = alloc_find_dev(base_dev->upstream, &path);
/* Don't initialize a device multiple times. */ if (dev->ops) diff --git a/src/device/resource_allocator_v4.c b/src/device/resource_allocator_v4.c index 73ec9c1..c9630bb 100644 --- a/src/device/resource_allocator_v4.c +++ b/src/device/resource_allocator_v4.c @@ -78,7 +78,7 @@
static bool dev_has_children(const struct device *dev) { - const struct bus *bus = dev->link_list; + const struct bus *bus = dev->downstream; return bus && bus->children; }
@@ -122,7 +122,7 @@ resource_t base; const unsigned long type_mask = IORESOURCE_TYPE_MASK | IORESOURCE_PREFETCH; const unsigned long type_match = bridge_res->flags & type_mask; - struct bus *bus = bridge->link_list; + struct bus *bus = bridge->downstream;
child_res = NULL;
@@ -208,7 +208,7 @@ { const struct device *child; struct resource *res; - struct bus *bus = bridge->link_list; + struct bus *bus = bridge->downstream; const unsigned long type_mask = IORESOURCE_TYPE_MASK | IORESOURCE_PREFETCH;
for (res = bridge->resource_list; res; res = res->next) { @@ -256,10 +256,10 @@ const struct device *child; const int print_depth = 1;
- if (domain->link_list == NULL) + if (domain->downstream == NULL) return;
- for (child = domain->link_list->children; child; child = child->sibling) { + for (child = domain->downstream->children; child; child = child->sibling) {
/* Skip if this is not a bridge or has no children under it. */ if (!dev_has_children(child)) @@ -299,7 +299,7 @@ memranges_create_hole(ranges, res->base, res->size); }
- bus = dev->link_list; + bus = dev->downstream; if (bus == NULL) return;
@@ -399,7 +399,7 @@
setup_resource_ranges(domain, type, &ranges);
- while ((dev = largest_resource(domain->link_list, &res, type_mask, type))) { + while ((dev = largest_resource(domain->downstream, &res, type_mask, type))) {
if (!res->size) continue; @@ -441,7 +441,7 @@ { const unsigned long type_mask = IORESOURCE_TYPE_MASK | IORESOURCE_PREFETCH | IORESOURCE_FIXED; - struct bus *const bus = bridge->link_list; + struct bus *const bus = bridge->downstream; struct resource *res; struct device *child;
@@ -496,7 +496,7 @@ allocate_toplevel_resources(domain, IORESOURCE_MEM);
struct device *child; - for (child = domain->link_list->children; child; child = child->sibling) { + for (child = domain->downstream->children; child; child = child->sibling) { if (!dev_has_children(child)) continue;
@@ -553,10 +553,10 @@ { const struct device *child;
- if ((root == NULL) || (root->link_list == NULL)) + if ((root == NULL) || (root->downstream == NULL)) return;
- for (child = root->link_list->children; child; child = child->sibling) { + for (child = root->downstream->children; child; child = child->sibling) {
if (child->path.type != DEVICE_PATH_DOMAIN) continue; diff --git a/src/device/root_device.c b/src/device/root_device.c index 54e82ea..0164b19 100644 --- a/src/device/root_device.c +++ b/src/device/root_device.c @@ -39,10 +39,10 @@ { struct device *child;
- if (!bus->link_list) + if (!bus->downstream) return;
- for (child = bus->link_list->children; child; child = child->sibling) + for (child = bus->downstream->children; child; child = child->sibling) enable_static_device(child); }
@@ -53,12 +53,12 @@
printk(BIOS_SPEW, "%s for %s\n", __func__, dev_path(bus));
- if (bus->link_list) { - bus->link_list->secondary = ++bus_max; + if (bus->downstream) { + bus->downstream->secondary = ++bus_max;
- for (child = bus->link_list->children; child; child = child->sibling) { + for (child = bus->downstream->children; child; child = child->sibling) { enable_static_device(child); - printk(BIOS_DEBUG, "bus: %s->", dev_path(child->bus->dev)); + printk(BIOS_DEBUG, "bus: %s->", dev_path(child->upstream->dev)); } }
@@ -86,8 +86,8 @@
enable_static_devices(bus);
- if (bus->link_list) - scan_bridges(bus->link_list); + if (bus->downstream) + scan_bridges(bus->downstream);
printk(BIOS_SPEW, "%s for %s done\n", __func__, dev_path(bus)); } diff --git a/src/drivers/i2c/ptn3460/ptn3460.c b/src/drivers/i2c/ptn3460/ptn3460.c index 93acb18..76b3bc8 100644 --- a/src/drivers/i2c/ptn3460/ptn3460.c +++ b/src/drivers/i2c/ptn3460/ptn3460.c @@ -172,8 +172,8 @@ return; } /* Initialize the I2C controller before it is used. */ - if (ptn_dev->bus && ptn_dev->bus->dev->ops && ptn_dev->bus->dev->ops->init) - ptn_dev->bus->dev->ops->init(ptn_dev->bus->dev); + if (ptn_dev->upstream && ptn_dev->upstream->dev->ops && ptn_dev->upstream->dev->ops->init) + ptn_dev->upstream->dev->ops->init(ptn_dev->upstream->dev); ptn3460_init(ptn_dev); }
diff --git a/src/drivers/intel/dptf/dptf.c b/src/drivers/intel/dptf/dptf.c index bceb0de..f313540 100644 --- a/src/drivers/intel/dptf/dptf.c +++ b/src/drivers/intel/dptf/dptf.c @@ -503,7 +503,7 @@ enum dptf_participant p;
/* The CPU device gets an _ADR that matches the ACPI PCI address for 00:04.00 */ - parent = dev && dev->bus ? dev->bus->dev : NULL; + parent = dev && dev->upstream ? dev->upstream->dev : NULL; if (!parent || parent->path.type != DEVICE_PATH_PCI) { printk(BIOS_ERR, "%s: DPTF objects must live under 00:04.0 PCI device\n", __func__); diff --git a/src/drivers/intel/ish/ish.c b/src/drivers/intel/ish/ish.c index 6dba46a..0ad0bb8 100644 --- a/src/drivers/intel/ish/ish.c +++ b/src/drivers/intel/ish/ish.c @@ -12,7 +12,7 @@ static void ish_fill_ssdt_generator(const struct device *dev) { struct drivers_intel_ish_config *config = dev->chip_info; - struct device *root = dev->bus->dev; + struct device *root = dev->upstream->dev; struct acpi_dp *dsd;
if (!config) diff --git a/src/drivers/intel/mipi_camera/camera.c b/src/drivers/intel/mipi_camera/camera.c index 77c86ea..4044a26 100644 --- a/src/drivers/intel/mipi_camera/camera.c +++ b/src/drivers/intel/mipi_camera/camera.c @@ -199,7 +199,7 @@ static uint32_t address_for_dev_type(const struct device *dev, uint8_t dev_type) { struct drivers_intel_mipi_camera_config *config = dev->chip_info; - uint16_t i2c_bus = dev->bus ? dev->bus->secondary : 0xFFFF; + uint16_t i2c_bus = dev->upstream ? dev->upstream->secondary : 0xFFFF; uint16_t i2c_addr;
switch (dev_type) { @@ -416,7 +416,7 @@ .type = DEVICE_PATH_I2C, .i2c.device = config->vcm_address, }; - struct device *vcm_dev = find_dev_path(dev->bus, &path); + struct device *vcm_dev = find_dev_path(dev->upstream, &path); struct drivers_intel_mipi_camera_config *vcm_config; vcm_config = vcm_dev ? vcm_dev->chip_info : NULL;
@@ -927,7 +927,7 @@ const struct device *pdev;
if (config->has_power_resource) { - pdev = dev->bus->dev; + pdev = dev->upstream->dev; if (!pdev || !pdev->enabled) return;
@@ -951,7 +951,7 @@ write_i2c_camera_device(dev, scope); break; case DEVICE_PATH_GENERIC: - pdev = dev->bus->dev; + pdev = dev->upstream->dev; scope = acpi_device_scope(pdev); if (!scope) return; diff --git a/src/drivers/intel/soundwire/soundwire.c b/src/drivers/intel/soundwire/soundwire.c index f9421fc..0137dad 100644 --- a/src/drivers/intel/soundwire/soundwire.c +++ b/src/drivers/intel/soundwire/soundwire.c @@ -21,7 +21,7 @@ { struct device *child;
- for (child = dev->link_list->children; child; child = child->sibling) { + for (child = dev->downstream->children; child; child = child->sibling) { if (child->enabled && child->path.type == DEVICE_PATH_GENERIC && child->path.generic.id == link) return true; diff --git a/src/drivers/net/phy/m88e1512/m88e1512.c b/src/drivers/net/phy/m88e1512/m88e1512.c index 07110c6..7e67500 100644 --- a/src/drivers/net/phy/m88e1512/m88e1512.c +++ b/src/drivers/net/phy/m88e1512/m88e1512.c @@ -21,10 +21,10 @@ if (config->downshift_cnt) { if (config->downshift_cnt > DOWNSHIFT_CNT_MAX) { printk(BIOS_INFO, "%s: Downshift counter for %s is too large.\n", - dev_path(dev->bus->dev), dev->chip_ops->name); + dev_path(dev->upstream->dev), dev->chip_ops->name); } else { printk(BIOS_DEBUG, "%s: Enable downshift after %d attempts for %s.\n", - dev_path(dev->bus->dev), config->downshift_cnt, + dev_path(dev->upstream->dev), config->downshift_cnt, dev->chip_ops->name);
reg = mdio_read(dev, COPPER_SPEC_CTRL_REG_1); @@ -42,7 +42,7 @@ /* Configure LEDs if requested. */ if (config->configure_leds) { printk(BIOS_DEBUG, "%s: Set a customized LED mode for %s.\n", - dev_path(dev->bus->dev), dev->chip_ops->name); + dev_path(dev->upstream->dev), dev->chip_ops->name);
/* Select page 3 to access LED function control register. */ switch_page(dev, 3); @@ -57,7 +57,7 @@ /* INTn can be routed to LED[2] pin. */ if (config->enable_int) { printk(BIOS_DEBUG, "%s: INTn is routed to LED[2] pin %s.\n", - dev_path(dev->bus->dev), dev->chip_ops->name); + dev_path(dev->upstream->dev), dev->chip_ops->name);
/* Select page 3 to access LED function control register. */ switch_page(dev, 3); @@ -70,7 +70,7 @@ /* Set RGMII output impedance manually. */ if (config->force_mos) { printk(BIOS_DEBUG, "%s: Set RGMII driver strength manually for %s.\n", - dev_path(dev->bus->dev), dev->chip_ops->name); + dev_path(dev->upstream->dev), dev->chip_ops->name);
/* Select page 2 to access RGMII output impedance calibration override register. */ diff --git a/src/drivers/net/r8168.c b/src/drivers/net/r8168.c index 70a0f63..6d93ed2 100644 --- a/src/drivers/net/r8168.c +++ b/src/drivers/net/r8168.c @@ -364,7 +364,7 @@ static void r8168_net_fill_ssdt(const struct device *dev) { struct drivers_net_config *config = dev->chip_info; - const char *path = acpi_device_path(dev->bus->dev); + const char *path = acpi_device_path(dev->upstream->dev); u32 address;
if (!path || !config) diff --git a/src/drivers/nxp/uwb/uwb.c b/src/drivers/nxp/uwb/uwb.c index 0f5ba47..b828657 100644 --- a/src/drivers/nxp/uwb/uwb.c +++ b/src/drivers/nxp/uwb/uwb.c @@ -15,10 +15,10 @@ struct device *spi_dev; struct device_operations *ops;
- if (!dev->bus || !dev->bus->dev) + if (!dev->upstream || !dev->upstream->dev) return -1;
- spi_dev = dev->bus->dev; + spi_dev = dev->upstream->dev; ops = spi_dev->ops;
if (ops && ops->ops_spi_bus && ops->ops_spi_bus->dev_to_bus) diff --git a/src/drivers/pcie/generic/generic.c b/src/drivers/pcie/generic/generic.c index 1b7976e..e401261 100644 --- a/src/drivers/pcie/generic/generic.c +++ b/src/drivers/pcie/generic/generic.c @@ -27,13 +27,13 @@ pci_rom_ssdt(dev);
config = dev->chip_info; - if (!config || !dev->bus || !dev->bus->dev) + if (!config || !dev->upstream || !dev->upstream->dev) return;
const char *scope; const char *name;
- scope = acpi_device_path(dev->bus->dev); + scope = acpi_device_path(dev->upstream->dev); name = acpi_device_name(dev);
acpigen_write_scope(scope); diff --git a/src/drivers/spi/acpi/acpi.c b/src/drivers/spi/acpi/acpi.c index b58bc2d..537c377 100644 --- a/src/drivers/spi/acpi/acpi.c +++ b/src/drivers/spi/acpi/acpi.c @@ -15,10 +15,10 @@ struct device *spi_dev; struct device_operations *ops;
- if (!dev->bus || !dev->bus->dev) + if (!dev->upstream || !dev->upstream->dev) return -1;
- spi_dev = dev->bus->dev; + spi_dev = dev->upstream->dev; ops = spi_dev->ops;
if (ops && ops->ops_spi_bus && diff --git a/src/drivers/usb/hub/acpi.c b/src/drivers/usb/hub/acpi.c index e26d584..3944952 100644 --- a/src/drivers/usb/hub/acpi.c +++ b/src/drivers/usb/hub/acpi.c @@ -41,7 +41,7 @@ struct device *port = NULL; unsigned int child_count = 0;
- while ((port = dev_bus_each_child(dev->link_list, port)) != NULL) { + while ((port = dev_bus_each_child(dev->downstream, port)) != NULL) { if (child_count++ >= config->port_count) { printk(BIOS_WARNING, "%s cannot be added. Port Count limit reached.\n", dev_name(port)); diff --git a/src/drivers/usb/pci_xhci/pci_xhci.c b/src/drivers/usb/pci_xhci/pci_xhci.c index 398595d..47f69c0 100644 --- a/src/drivers/usb/pci_xhci/pci_xhci.c +++ b/src/drivers/usb/pci_xhci/pci_xhci.c @@ -76,7 +76,7 @@ if (is_root_device(dev)) return NULL;
- dev = dev->bus->dev; + dev = dev->upstream->dev; }
return dev; diff --git a/src/drivers/wifi/generic/acpi.c b/src/drivers/wifi/generic/acpi.c index f37a084..6abad83 100644 --- a/src/drivers/wifi/generic/acpi.c +++ b/src/drivers/wifi/generic/acpi.c @@ -610,7 +610,7 @@ if (!dev) return;
- path = acpi_device_path(dev->bus->dev); + path = acpi_device_path(dev->upstream->dev); if (!path) return;
diff --git a/src/drivers/wifi/generic/smbios.c b/src/drivers/wifi/generic/smbios.c index 82c96a5..e6ccd5d 100644 --- a/src/drivers/wifi/generic/smbios.c +++ b/src/drivers/wifi/generic/smbios.c @@ -38,5 +38,5 @@
int smbios_write_wifi_cnvi(struct device *dev, int *handle, unsigned long *current) { - return smbios_write_wifi_pcie(dev->bus->dev, handle, current); + return smbios_write_wifi_pcie(dev->upstream->dev, handle, current); } diff --git a/src/drivers/wwan/fm/acpi_fm350gl.c b/src/drivers/wwan/fm/acpi_fm350gl.c index 77ff085..564ac03 100644 --- a/src/drivers/wwan/fm/acpi_fm350gl.c +++ b/src/drivers/wwan/fm/acpi_fm350gl.c @@ -317,7 +317,7 @@ static void wwan_fm350gl_acpi_fill_ssdt(const struct device *dev) { const struct drivers_wwan_fm_config *config = config_of(dev); - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev; const char *scope = acpi_device_path(parent); const struct soc_intel_common_block_pcie_rtd3_config *rtd3_config;
diff --git a/src/ec/google/chromeec/ec_acpi.c b/src/ec/google/chromeec/ec_acpi.c index 3367cfa..cf29636 100644 --- a/src/ec/google/chromeec/ec_acpi.c +++ b/src/ec/google/chromeec/ec_acpi.c @@ -273,7 +273,7 @@ path.type = DEVICE_PATH_GENERIC; path.generic.id = 0; path.generic.subid = 0; - ec = alloc_find_dev(dev->bus, &path); + ec = alloc_find_dev(dev->upstream, &path); ec->ops = &ec_ops;
if (CONFIG(DRIVERS_INTEL_DPTF)) diff --git a/src/include/device/device.h b/src/include/device/device.h index 7e52f41..27ef82a 100644 --- a/src/include/device/device.h +++ b/src/include/device/device.h @@ -95,8 +95,8 @@ */
struct device { - DEVTREE_CONST struct bus *bus; /* bus this device is on, for bridge - * devices, it is the up stream bus */ + DEVTREE_CONST struct bus *upstream; + DEVTREE_CONST struct bus *downstream;
DEVTREE_CONST struct device *sibling; /* next device on this bus */
@@ -124,11 +124,6 @@ /* Base registers for this device. I/O, MEM and Expansion ROM */ DEVTREE_CONST struct resource *resource_list;
- /* links are (downstream) buses attached to the device, usually a leaf - * device with no children has 0 buses attached and a bridge has 1 bus - */ - DEVTREE_CONST struct bus *link_list; - #if !DEVTREE_EARLY struct device_operations *ops; struct chip_operations *chip_ops; @@ -458,11 +453,11 @@
static inline bool is_root_device(const struct device *dev) { - if (!dev || !dev->bus) + if (!dev || !dev->upstream) return false;
return (dev->path.type == DEVICE_PATH_ROOT) || - (dev->bus->dev == dev); + (dev->upstream->dev == dev); }
void enable_static_device(struct device *dev); diff --git a/src/include/device/pci_ops.h b/src/include/device/pci_ops.h index de5f913..90c59fb 100644 --- a/src/include/device/pci_ops.h +++ b/src/include/device/pci_ops.h @@ -12,8 +12,8 @@
static __always_inline pci_devfn_t pcidev_bdf(const struct device *dev) { - return (dev->path.pci.devfn << 12) | (dev->bus->secondary << 20) | - (dev->bus->segment_group << 28); + return (dev->path.pci.devfn << 12) | (dev->upstream->secondary << 20) | + (dev->upstream->segment_group << 28); }
static __always_inline pci_devfn_t pcidev_assert(const struct device *dev) diff --git a/src/lib/smbios.c b/src/lib/smbios.c index c6cfb05..449e4fd 100644 --- a/src/lib/smbios.c +++ b/src/lib/smbios.c @@ -1114,8 +1114,8 @@ return smbios_write_type41(current, handle, name, // name instance_id, // inst - dev->bus->segment_group, // segment group - dev->bus->secondary, //bus + dev->upstream->segment_group, // segment group + dev->upstream->secondary, //bus PCI_SLOT(dev->path.pci.devfn), // device PCI_FUNC(dev->path.pci.devfn), // func device_type); @@ -1167,8 +1167,8 @@ 0, 1, 0, - dev->bus->segment_group, - dev->bus->secondary, + dev->upstream->segment_group, + dev->upstream->secondary, dev->path.pci.devfn); }
diff --git a/src/mainboard/aopen/dxplplusu/acpi_tables.c b/src/mainboard/aopen/dxplplusu/acpi_tables.c index e22b454..114068f 100644 --- a/src/mainboard/aopen/dxplplusu/acpi_tables.c +++ b/src/mainboard/aopen/dxplplusu/acpi_tables.c @@ -11,7 +11,7 @@ bdev = pcidev_on_root(2, 0); /* P64H2 Bus B IOAPIC */ if (bdev) - dev = pcidev_path_behind(bdev->link_list, PCI_DEVFN(28, 0)); + dev = pcidev_path_behind(bdev->downstream, PCI_DEVFN(28, 0)); if (dev) { res = find_resource(dev, PCI_BASE_ADDRESS_0); current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, res->base); @@ -19,7 +19,7 @@
/* P64H2 Bus A IOAPIC */ if (bdev) - dev = pcidev_path_behind(bdev->link_list, PCI_DEVFN(30, 0)); + dev = pcidev_path_behind(bdev->downstream, PCI_DEVFN(30, 0)); if (dev) { res = find_resource(dev, PCI_BASE_ADDRESS_0); current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, res->base); diff --git a/src/mainboard/emulation/qemu-i440fx/northbridge.c b/src/mainboard/emulation/qemu-i440fx/northbridge.c index 6c26366..609e389 100644 --- a/src/mainboard/emulation/qemu-i440fx/northbridge.c +++ b/src/mainboard/emulation/qemu-i440fx/northbridge.c @@ -39,7 +39,7 @@
static void cpu_pci_domain_set_resources(struct device *dev) { - assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static void cpu_pci_domain_read_resources(struct device *dev) diff --git a/src/mainboard/google/brox/mainboard.c b/src/mainboard/google/brox/mainboard.c index f892099..5820805 100644 --- a/src/mainboard/google/brox/mainboard.c +++ b/src/mainboard/google/brox/mainboard.c @@ -106,7 +106,7 @@ static void mainboard_generate_wwan_shutdown(const struct device *dev) { const struct drivers_wwan_fm_config *config = config_of(dev); - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
if (!config) return; @@ -126,7 +126,7 @@ static void mainboard_generate_dgpu_shutdown(const struct device *dev) { /* Call `_OFF` from the Power Resource associated with the dGPU's PEG port. */ - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
if (parent) acpigen_emit_namestring(acpi_device_path_join(parent, "PGPR._OFF")); diff --git a/src/mainboard/google/brya/mainboard.c b/src/mainboard/google/brya/mainboard.c index aa332cd..9cf56b2 100644 --- a/src/mainboard/google/brya/mainboard.c +++ b/src/mainboard/google/brya/mainboard.c @@ -106,7 +106,7 @@ static void mainboard_generate_wwan_shutdown(const struct device *dev) { const struct drivers_wwan_fm_config *config = config_of(dev); - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
if (!config) return; @@ -126,7 +126,7 @@ static void mainboard_generate_dgpu_shutdown(const struct device *dev) { /* Call `_OFF` from the Power Resource associated with the dGPU's PEG port. */ - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
if (parent) acpigen_emit_namestring(acpi_device_path_join(parent, "PGPR._OFF")); diff --git a/src/mainboard/google/kahlee/variants/careena/mainboard.c b/src/mainboard/google/kahlee/variants/careena/mainboard.c index 937a411..c54b530 100644 --- a/src/mainboard/google/kahlee/variants/careena/mainboard.c +++ b/src/mainboard/google/kahlee/variants/careena/mainboard.c @@ -26,7 +26,7 @@ if (mmio_dev == NULL) return;
- while ((child = dev_bus_each_child(mmio_dev->link_list, child)) != NULL) { + while ((child = dev_bus_each_child(mmio_dev->downstream, child)) != NULL) { if (child->path.type != DEVICE_PATH_I2C) continue; if (child->path.i2c.device != 0x1a) diff --git a/src/mainboard/google/kahlee/variants/treeya/audio.c b/src/mainboard/google/kahlee/variants/treeya/audio.c index ac7f7a2..e7a20ea 100644 --- a/src/mainboard/google/kahlee/variants/treeya/audio.c +++ b/src/mainboard/google/kahlee/variants/treeya/audio.c @@ -25,7 +25,7 @@ } } while (mmio_dev->path.mmio.addr != APU_I2C0_BASE);
- while ((child = dev_bus_each_child(mmio_dev->link_list, child)) != NULL) { + while ((child = dev_bus_each_child(mmio_dev->downstream, child)) != NULL) { if (child->path.type != DEVICE_PATH_I2C) continue; if (child->path.i2c.device != RT58_I2C_ADDRESS) diff --git a/src/mainboard/google/octopus/mainboard.c b/src/mainboard/google/octopus/mainboard.c index 92b1074..3392a3c 100644 --- a/src/mainboard/google/octopus/mainboard.c +++ b/src/mainboard/google/octopus/mainboard.c @@ -179,7 +179,7 @@ { struct device *audio_dev = NULL; struct bus *audio_i2c_bus = - pcidev_path_on_root(PCH_DEVFN_I2C5)->link_list; + pcidev_path_on_root(PCH_DEVFN_I2C5)->downstream; enum ssfc_audio_codec codec = ssfc_get_audio_codec();
while ((audio_dev = dev_bus_each_child(audio_i2c_bus, audio_dev))) { diff --git a/src/mainboard/google/rex/mainboard.c b/src/mainboard/google/rex/mainboard.c index 3ca85ff..bf489ff 100644 --- a/src/mainboard/google/rex/mainboard.c +++ b/src/mainboard/google/rex/mainboard.c @@ -82,7 +82,7 @@ static void mainboard_generate_wwan_shutdown(const struct device *dev) { const struct drivers_wwan_fm_config *config = config_of(dev); - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
if (!config) return; diff --git a/src/mainboard/google/zork/variants/baseboard/ramstage_common.c b/src/mainboard/google/zork/variants/baseboard/ramstage_common.c index 3c203f5..a544548 100644 --- a/src/mainboard/google/zork/variants/baseboard/ramstage_common.c +++ b/src/mainboard/google/zork/variants/baseboard/ramstage_common.c @@ -115,7 +115,7 @@ if (variant_uses_v3_6_schematics()) return;
- while ((child = dev_bus_each_child(mmio_dev->link_list, child)) != NULL) { + while ((child = dev_bus_each_child(mmio_dev->downstream, child)) != NULL) { struct drivers_i2c_generic_config *cfg;
if (child->chip_ops == &drivers_i2c_generic_ops) { diff --git a/src/mainboard/ibase/mb899/mptable.c b/src/mainboard/ibase/mb899/mptable.c index 4ec578a..a9ad7c7 100644 --- a/src/mainboard/ibase/mb899/mptable.c +++ b/src/mainboard/ibase/mb899/mptable.c @@ -19,7 +19,7 @@
firewire = dev_find_device(0x104c, 0x8023, 0); if (firewire) { - firewire_bus = firewire->bus->secondary; + firewire_bus = firewire->upstream->secondary; printk(BIOS_SPEW, "Firewire device is on bus %x\n", firewire_bus); } @@ -30,7 +30,7 @@ if (!riser) riser = dev_find_device(0x3388, 0x0022, 0); if (riser) { - riser_bus = riser->link_list->secondary; + riser_bus = riser->downstream->secondary; printk(BIOS_SPEW, "Riser bus is %x\n", riser_bus); }
diff --git a/src/mainboard/kontron/986lcd-m/mptable.c b/src/mainboard/kontron/986lcd-m/mptable.c index 605b8d7..b0bfbe7 100644 --- a/src/mainboard/kontron/986lcd-m/mptable.c +++ b/src/mainboard/kontron/986lcd-m/mptable.c @@ -18,7 +18,7 @@
firewire = dev_find_device(0x104c, 0x8023, 0); if (firewire) { - firewire_bus = firewire->bus->secondary; + firewire_bus = firewire->upstream->secondary; }
/* If a riser card is used, this riser is detected on bus 4, so its secondary bus is the */ @@ -27,7 +27,7 @@ if (!riser) riser = dev_find_device(0x3388, 0x0022, 0); if (riser) { - riser_bus = riser->link_list->secondary; + riser_bus = riser->downstream->secondary; }
mptable_write_buses(mc, NULL, &isa_bus); diff --git a/src/mainboard/pcengines/apu2/mainboard.c b/src/mainboard/pcengines/apu2/mainboard.c index a09fa66..ac5c928 100644 --- a/src/mainboard/pcengines/apu2/mainboard.c +++ b/src/mainboard/pcengines/apu2/mainboard.c @@ -277,7 +277,7 @@
dev = pcidev_on_root(2, 2); if (dev) - dev = pcidev_path_behind(dev->link_list, PCI_DEVFN(0, 0)); + dev = pcidev_path_behind(dev->downstream, PCI_DEVFN(0, 0)); if (!dev) return serial;
diff --git a/src/mainboard/roda/rk9/ti_pci7xx1.c b/src/mainboard/roda/rk9/ti_pci7xx1.c index 3ff339c..970e83d 100644 --- a/src/mainboard/roda/rk9/ti_pci7xx1.c +++ b/src/mainboard/roda/rk9/ti_pci7xx1.c @@ -19,7 +19,7 @@ u16 gcr = pci_read_config16(dev, 0x86); for (fn = 5; fn > 0; --fn) { const struct device *const d = - pcidev_path_behind(dev->bus, PCI_DEVFN(slot, fn)); + pcidev_path_behind(dev->upstream, PCI_DEVFN(slot, fn)); if (!d || d->enabled) continue; printk(BIOS_DEBUG, "%s: Hiding function #%d.\n", __func__, fn); diff --git a/src/mainboard/siemens/fa_ehl/mainboard.c b/src/mainboard/siemens/fa_ehl/mainboard.c index 7aa0d86..ac16346 100644 --- a/src/mainboard/siemens/fa_ehl/mainboard.c +++ b/src/mainboard/siemens/fa_ehl/mainboard.c @@ -42,7 +42,7 @@ */ enum cb_err mainboard_get_mac_address(struct device *dev, uint8_t mac[MAC_ADDR_LEN]) { - struct bus *parent = dev->bus; + struct bus *parent = dev->upstream; uint8_t buf[16], mapping[16], i = 0, chain_len = 0;
memset(buf, 0, sizeof(buf)); @@ -51,10 +51,10 @@ /* The first entry in the tree is the device itself. */ buf[0] = dev->path.pci.devfn; chain_len = 1; - for (i = 1; i < MAX_PATH_DEPTH && parent->dev->bus->subordinate; i++) { + for (i = 1; i < MAX_PATH_DEPTH && parent->dev->upstream->subordinate; i++) { buf[i] = parent->dev->path.pci.devfn; chain_len++; - parent = parent->dev->bus; + parent = parent->dev->upstream; } if (i == MAX_PATH_DEPTH) { /* The path is deeper than MAX_PATH_DEPTH devices, error. */ diff --git a/src/mainboard/siemens/mc_apl1/mainboard.c b/src/mainboard/siemens/mc_apl1/mainboard.c index 0593797..51427be 100644 --- a/src/mainboard/siemens/mc_apl1/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/mainboard.c @@ -55,7 +55,7 @@ */ enum cb_err mainboard_get_mac_address(struct device *dev, uint8_t mac[MAC_ADDR_LEN]) { - struct bus *parent = dev->bus; + struct bus *parent = dev->upstream; uint8_t buf[16], mapping[16], i = 0, chain_len = 0;
memset(buf, 0, sizeof(buf)); @@ -64,10 +64,10 @@ /* The first entry in the tree is the device itself. */ buf[0] = dev->path.pci.devfn; chain_len = 1; - for (i = 1; i < MAX_PATH_DEPTH && parent->dev->bus->subordinate; i++) { + for (i = 1; i < MAX_PATH_DEPTH && parent->dev->upstream->subordinate; i++) { buf[i] = parent->dev->path.pci.devfn; chain_len++; - parent = parent->dev->bus; + parent = parent->dev->upstream; } if (i == MAX_PATH_DEPTH) { /* The path is deeper than MAX_PATH_DEPTH devices, error. */ diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c index b61f32d..c6beff6 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl3/mainboard.c @@ -41,7 +41,7 @@
/* Disable clock outputs 0 and 2-4 (CLKOUT) for upstream XIO2001 PCIe to PCI Bridge. */ - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x1d); } @@ -50,7 +50,7 @@ mainboard. */ dev = dev_find_device(PCI_VID_SIEMENS, 0x403f, 0); if (dev) { - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x3c); } diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c index 8eedce6..eda4b1b 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl5/mainboard.c @@ -51,7 +51,7 @@
/* Disable clock outputs 0-3 (CLKOUT) for upstream XIO2001 PCIe to PCI Bridge. */ - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x0f); } @@ -60,7 +60,7 @@ mainboard. */ dev = dev_find_device(PCI_VID_SIEMENS, 0x403f, 0); if (dev) { - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x3e); } diff --git a/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c b/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c index 1856a35..a5fe3d7 100644 --- a/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c +++ b/src/mainboard/siemens/mc_apl1/variants/mc_apl6/mainboard.c @@ -41,7 +41,7 @@
/* Disable clock outputs 0-3 (CLKOUT) for upstream XIO2001 PCIe to PCI Bridge. */ - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x0F); } @@ -50,7 +50,7 @@ mainboard. */ dev = dev_find_device(PCI_VID_SIEMENS, 0x403f, 0); if (dev) { - struct device *parent = dev->bus->dev; + struct device *parent = dev->upstream->dev; if (parent && parent->device == PCI_DID_TI_XIO2001) pci_write_config8(parent, 0xd8, 0x3c); } diff --git a/src/mainboard/siemens/mc_ehl/mainboard.c b/src/mainboard/siemens/mc_ehl/mainboard.c index 7aa0d86..ac16346 100644 --- a/src/mainboard/siemens/mc_ehl/mainboard.c +++ b/src/mainboard/siemens/mc_ehl/mainboard.c @@ -42,7 +42,7 @@ */ enum cb_err mainboard_get_mac_address(struct device *dev, uint8_t mac[MAC_ADDR_LEN]) { - struct bus *parent = dev->bus; + struct bus *parent = dev->upstream; uint8_t buf[16], mapping[16], i = 0, chain_len = 0;
memset(buf, 0, sizeof(buf)); @@ -51,10 +51,10 @@ /* The first entry in the tree is the device itself. */ buf[0] = dev->path.pci.devfn; chain_len = 1; - for (i = 1; i < MAX_PATH_DEPTH && parent->dev->bus->subordinate; i++) { + for (i = 1; i < MAX_PATH_DEPTH && parent->dev->upstream->subordinate; i++) { buf[i] = parent->dev->path.pci.devfn; chain_len++; - parent = parent->dev->bus; + parent = parent->dev->upstream; } if (i == MAX_PATH_DEPTH) { /* The path is deeper than MAX_PATH_DEPTH devices, error. */ diff --git a/src/northbridge/amd/pi/00730F01/northbridge.c b/src/northbridge/amd/pi/00730F01/northbridge.c index 7e9cfd8..b318be0 100644 --- a/src/northbridge/amd/pi/00730F01/northbridge.c +++ b/src/northbridge/amd/pi/00730F01/northbridge.c @@ -186,7 +186,7 @@ ivrs_ivhd_generic_t *ivhd_entry = (ivrs_ivhd_generic_t *)*current;
ivhd_entry->type = type; - ivhd_entry->dev_id = dev->path.pci.devfn | (dev->bus->secondary << 8); + ivhd_entry->dev_id = dev->path.pci.devfn | (dev->upstream->secondary << 8); ivhd_entry->dte_setting = data; *current += sizeof(ivrs_ivhd_generic_t); } else if (type == IVHD_DEV_8_BYTE_ALIAS_SELECT) { @@ -195,12 +195,12 @@ ivrs_ivhd_alias_t *ivhd_entry = (ivrs_ivhd_alias_t *)*current;
ivhd_entry->type = type; - ivhd_entry->dev_id = dev->path.pci.devfn | (dev->bus->secondary << 8); + ivhd_entry->dev_id = dev->path.pci.devfn | (dev->upstream->secondary << 8); ivhd_entry->dte_setting = data; ivhd_entry->reserved1 = 0; ivhd_entry->reserved2 = 0; ivhd_entry->source_dev_id = parent->path.pci.devfn | - (parent->bus->secondary << 8); + (parent->upstream->secondary << 8); *current += sizeof(ivrs_ivhd_alias_t); }
@@ -243,7 +243,7 @@
if (dev->path.type == DEVICE_PATH_PCI) {
- if ((dev->bus->secondary == 0x0) && + if ((dev->upstream->secondary == 0x0) && (dev->path.pci.devfn == 0x0)) *root_level = depth;
@@ -253,8 +253,8 @@ } }
- if (dev->link_list) { - for (sibling = dev->link_list->children; sibling; sibling = sibling->sibling) + if (dev->downstream) { + for (sibling = dev->downstream->children; sibling; sibling = sibling->sibling) add_ivhd_device_entries(dev, sibling, depth + 1, depth, root_level, current, ivhd_length); } @@ -290,12 +290,12 @@ ivhd_11->flags = ivrs_agesa->ivhd.flags & 0x3f; ivhd_11->length = sizeof(struct acpi_ivrs_ivhd_11); /* BDF <bus>:00.2 */ - ivhd_11->device_id = 0x02 | (nb_dev->bus->secondary << 8); + ivhd_11->device_id = 0x02 | (nb_dev->upstream->secondary << 8); /* PCI Capability block 0x40 (type 0xf, "Secure device") */ ivhd_11->capability_offset = 0x40; ivhd_11->iommu_base_low = ivrs_agesa->ivhd.iommu_base_low; ivhd_11->iommu_base_high = ivrs_agesa->ivhd.iommu_base_high; - ivhd_11->pci_segment_group = nb_dev->bus->segment_group; + ivhd_11->pci_segment_group = nb_dev->upstream->segment_group; ivhd_11->iommu_info = ivrs_agesa->ivhd.iommu_info; ivhd_11->iommu_attributes.perf_counters = (IOMMU_MMIO32(ivhd_11->iommu_base_low + 0x4000) >> 7) & 0xf; @@ -358,12 +358,12 @@ ivrs->ivhd.flags = ivrs_agesa->ivhd.flags; ivrs->ivhd.length = sizeof(struct acpi_ivrs_ivhd); /* BDF <bus>:00.2 */ - ivrs->ivhd.device_id = 0x02 | (nb_dev->bus->secondary << 8); + ivrs->ivhd.device_id = 0x02 | (nb_dev->upstream->secondary << 8); /* PCI Capability block 0x40 (type 0xf, "Secure device") */ ivrs->ivhd.capability_offset = 0x40; ivrs->ivhd.iommu_base_low = ivrs_agesa->ivhd.iommu_base_low; ivrs->ivhd.iommu_base_high = ivrs_agesa->ivhd.iommu_base_high; - ivrs->ivhd.pci_segment_group = nb_dev->bus->segment_group; + ivrs->ivhd.pci_segment_group = nb_dev->upstream->segment_group; ivrs->ivhd.iommu_info = ivrs_agesa->ivhd.iommu_info; ivrs->ivhd.iommu_feature_info = ivrs_agesa->ivhd.iommu_feature_info; /* Enable EFR if supported */ diff --git a/src/northbridge/intel/e7505/northbridge.c b/src/northbridge/intel/e7505/northbridge.c index fa29ef5..23d60dc 100644 --- a/src/northbridge/intel/e7505/northbridge.c +++ b/src/northbridge/intel/e7505/northbridge.c @@ -52,7 +52,7 @@
static void mch_domain_set_resources(struct device *dev) { - assign_resources(dev->link_list); + assign_resources(dev->downstream); }
struct device_operations e7505_pci_domain_ops = { diff --git a/src/northbridge/intel/gm45/northbridge.c b/src/northbridge/intel/gm45/northbridge.c index 50d0d89..dc18791 100644 --- a/src/northbridge/intel/gm45/northbridge.c +++ b/src/northbridge/intel/gm45/northbridge.c @@ -122,7 +122,7 @@ report_resource_stored(dev, resource, ""); }
- assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static void mch_domain_init(struct device *dev) diff --git a/src/northbridge/intel/haswell/pcie.c b/src/northbridge/intel/haswell/pcie.c index 7fe57e9..4eeaa3f 100644 --- a/src/northbridge/intel/haswell/pcie.c +++ b/src/northbridge/intel/haswell/pcie.c @@ -20,8 +20,8 @@ if (dev->path.type != DEVICE_PATH_PCI) return NULL;
- assert(dev->bus); - if (dev->bus->secondary == 0) + assert(dev->upstream); + if (dev->upstream->secondary == 0) switch (dev->path.pci.devfn) { case PCI_DEVFN(1, 0): return "PEGP"; @@ -31,12 +31,12 @@ return "PEG2"; };
- struct device *const port = dev->bus->dev; + struct device *const port = dev->upstream->dev; assert(port); - assert(port->bus); + assert(port->upstream);
if (dev->path.pci.devfn == PCI_DEVFN(0, 0) && - port->bus->secondary == 0 && + port->upstream->secondary == 0 && (port->path.pci.devfn == PCI_DEVFN(1, 0) || port->path.pci.devfn == PCI_DEVFN(1, 1) || port->path.pci.devfn == PCI_DEVFN(1, 2))) diff --git a/src/northbridge/intel/i440bx/northbridge.c b/src/northbridge/intel/i440bx/northbridge.c index d588197..0a72cb7 100644 --- a/src/northbridge/intel/i440bx/northbridge.c +++ b/src/northbridge/intel/i440bx/northbridge.c @@ -34,8 +34,8 @@
pci_domain_read_resources(dev);
- pci_tolm = find_pci_tolm(dev->link_list); - mc_dev = dev->link_list->children; + pci_tolm = find_pci_tolm(dev->downstream); + mc_dev = dev->downstream->children; if (mc_dev) { unsigned long tomk, tolmk; int idx; diff --git a/src/northbridge/intel/i945/northbridge.c b/src/northbridge/intel/i945/northbridge.c index 34ebcb2..79e9ee5 100644 --- a/src/northbridge/intel/i945/northbridge.c +++ b/src/northbridge/intel/i945/northbridge.c @@ -26,7 +26,7 @@ /* Can we find out how much memory we can use at most * this way? */ - pci_tolm = find_pci_tolm(dev->link_list); + pci_tolm = find_pci_tolm(dev->downstream); printk(BIOS_DEBUG, "pci_tolm: 0x%x\n", pci_tolm);
tolud = pci_read_config8(d0f0, TOLUD) << 24; @@ -65,7 +65,7 @@ for (res = dev->resource_list; res; res = res->next) report_resource_stored(dev, res, "");
- assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static const char *northbridge_acpi_name(const struct device *dev) diff --git a/src/northbridge/intel/pineview/northbridge.c b/src/northbridge/intel/pineview/northbridge.c index d7a6c84..c24493a 100644 --- a/src/northbridge/intel/pineview/northbridge.c +++ b/src/northbridge/intel/pineview/northbridge.c @@ -108,7 +108,7 @@ for (res = dev->resource_list; res; res = res->next) report_resource_stored(dev, res, "");
- assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static void mch_domain_init(struct device *dev) diff --git a/src/northbridge/intel/sandybridge/pcie.c b/src/northbridge/intel/sandybridge/pcie.c index 96fb12f..244b0f5 100644 --- a/src/northbridge/intel/sandybridge/pcie.c +++ b/src/northbridge/intel/sandybridge/pcie.c @@ -13,8 +13,8 @@ if (dev->path.type != DEVICE_PATH_PCI) return NULL;
- assert(dev->bus); - if (dev->bus->secondary == 0) + assert(dev->upstream); + if (dev->upstream->secondary == 0) switch (dev->path.pci.devfn) { case PCI_DEVFN(1, 0): return "PEGP"; @@ -26,12 +26,12 @@ return "PEG6"; };
- struct device *const port = dev->bus->dev; + struct device *const port = dev->upstream->dev; assert(port); - assert(port->bus); + assert(port->upstream);
if (dev->path.pci.devfn == PCI_DEVFN(0, 0) && - port->bus->secondary == 0 && + port->upstream->secondary == 0 && (port->path.pci.devfn == PCI_DEVFN(1, 0) || port->path.pci.devfn == PCI_DEVFN(1, 1) || port->path.pci.devfn == PCI_DEVFN(1, 2) || diff --git a/src/northbridge/intel/x4x/northbridge.c b/src/northbridge/intel/x4x/northbridge.c index b037cf8..4987cae 100644 --- a/src/northbridge/intel/x4x/northbridge.c +++ b/src/northbridge/intel/x4x/northbridge.c @@ -72,7 +72,7 @@ for (res = dev->resource_list; res; res = res->next) report_resource_stored(dev, res, "");
- assign_resources(dev->link_list); + assign_resources(dev->downstream); }
static void mch_domain_init(struct device *dev) diff --git a/src/soc/amd/cezanne/xhci.c b/src/soc/amd/cezanne/xhci.c index b0205c6..fc1c119 100644 --- a/src/soc/amd/cezanne/xhci.c +++ b/src/soc/amd/cezanne/xhci.c @@ -26,10 +26,10 @@
enum cb_err pci_xhci_get_wake_gpe(const struct device *dev, int *gpe) { - if (dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
- if (dev->bus->dev->path.pci.devfn != PCIE_ABC_A_DEVFN) + if (dev->upstream->dev->path.pci.devfn != PCIE_ABC_A_DEVFN) return CB_ERR_ARG;
if (dev->path.type != DEVICE_PATH_PCI) diff --git a/src/soc/amd/common/block/acpi/ivrs.c b/src/soc/amd/common/block/acpi/ivrs.c index 57b5974..bd52d7c 100644 --- a/src/soc/amd/common/block/acpi/ivrs.c +++ b/src/soc/amd/common/block/acpi/ivrs.c @@ -96,7 +96,7 @@ memset(ivhd_entry, 0, sizeof(*ivhd_entry));
ivhd_entry->type = type; - ivhd_entry->dev_id = dev->path.pci.devfn | (dev->bus->secondary << 8); + ivhd_entry->dev_id = dev->path.pci.devfn | (dev->upstream->secondary << 8); ivhd_entry->dte_setting = data; *current += sizeof(ivrs_ivhd_generic_t); } else if (type == IVHD_DEV_8_BYTE_ALIAS_SELECT) { @@ -104,12 +104,12 @@ memset(ivhd_entry, 0, sizeof(*ivhd_entry));
ivhd_entry->type = type; - ivhd_entry->dev_id = dev->path.pci.devfn | (dev->bus->secondary << 8); + ivhd_entry->dev_id = dev->path.pci.devfn | (dev->upstream->secondary << 8); ivhd_entry->dte_setting = data; ivhd_entry->reserved1 = 0; ivhd_entry->reserved2 = 0; ivhd_entry->source_dev_id = parent->path.pci.devfn | - (parent->bus->secondary << 8); + (parent->upstream->secondary << 8); *current += sizeof(ivrs_ivhd_alias_t); }
@@ -145,7 +145,7 @@ return;
if (dev->path.type == DEVICE_PATH_PCI) { - if ((dev->bus->secondary == nb_bus) && + if ((dev->upstream->secondary == nb_bus) && (dev->path.pci.devfn == 0x0)) *root_level = depth;
@@ -154,9 +154,9 @@ ivrs_add_device_or_bridge(parent, dev, current); }
- if (!dev->link_list) + if (!dev->downstream) return; - for (sibling = dev->link_list->children; sibling; sibling = sibling->sibling) + for (sibling = dev->downstream->children; sibling; sibling = sibling->sibling) add_ivhd_device_entries(dev, sibling, depth + 1, depth, root_level, current, nb_bus); } @@ -173,21 +173,21 @@ * Add all possible PCI devices in the domain that can generate transactions * processed by IOMMU. Start with device <bus>:01.0 */ - current = ivhd_dev_range(current, PCI_DEVFN(0, 3) | (dev->link_list->secondary << 8), - 0xff | (dev->link_list->subordinate << 8), 0); + current = ivhd_dev_range(current, PCI_DEVFN(0, 3) | (dev->downstream->secondary << 8), + 0xff | (dev->downstream->subordinate << 8), 0);
add_ivhd_device_entries(NULL, dev, 0, -1, &root_level, - ¤t, dev->link_list->secondary); + ¤t, dev->downstream->secondary);
res = probe_resource(dev, IOMMU_IOAPIC_IDX); if (res) { /* Describe IOAPIC associated with the IOMMU */ current = acpi_fill_ivrs_ioapic(current, (u8 *)(uintptr_t)res->base, - PCI_DEVFN(0, 1) | (dev->link_list->secondary << 8), 0); + PCI_DEVFN(0, 1) | (dev->downstream->secondary << 8), 0); }
/* If the domain has secondary bus as zero then associate HPET & FCH IOAPIC */ - if (dev->link_list->secondary == 0) { + if (dev->downstream->secondary == 0) { /* Describe HPET */ current = ivhd_describe_hpet(current, 0x00, SMBUS_DEVFN); /* Describe FCH IOAPICs */ @@ -212,11 +212,11 @@ ivhd_40->flags = ivhd->flags & 0x3f; ivhd_40->length = sizeof(struct acpi_ivrs_ivhd_40); /* BDF <bus>:00.2 */ - ivhd_40->device_id = 0x02 | (nb_dev->bus->secondary << 8); + ivhd_40->device_id = 0x02 | (nb_dev->upstream->secondary << 8); ivhd_40->capability_offset = pci_find_capability(iommu_dev, IOMMU_CAP_ID); ivhd_40->iommu_base_low = ivhd->iommu_base_low; ivhd_40->iommu_base_high = ivhd->iommu_base_high; - ivhd_40->pci_segment_group = nb_dev->bus->segment_group; + ivhd_40->pci_segment_group = nb_dev->upstream->segment_group; ivhd_40->iommu_info = ivhd->iommu_info; /* For type 40h bits 31:28 and 12:0 are reserved */ ivhd_40->iommu_attributes = ivhd->iommu_feature_info & 0xfffe000; @@ -230,9 +230,9 @@
/* Now repeat all the device entries from type 10h */ current_backup = current; - current = acpi_ivhd_misc(current, nb_dev->bus->dev); + current = acpi_ivhd_misc(current, nb_dev->upstream->dev);
- if (nb_dev->bus->secondary == 0) { + if (nb_dev->upstream->secondary == 0) { /* Describe EMMC */ if (CONFIG(SOC_AMD_COMMON_BLOCK_EMMC)) { /* PCI_DEVFN(0x13, 1) doesn't exist in the hardware, but it's what the @@ -269,11 +269,11 @@ ivhd_11->flags = ivhd->flags & 0x3f; ivhd_11->length = sizeof(struct acpi_ivrs_ivhd_11); /* BDF <bus>:00.2 */ - ivhd_11->device_id = 0x02 | (nb_dev->bus->secondary << 8); + ivhd_11->device_id = 0x02 | (nb_dev->upstream->secondary << 8); ivhd_11->capability_offset = pci_find_capability(iommu_dev, IOMMU_CAP_ID); ivhd_11->iommu_base_low = ivhd->iommu_base_low; ivhd_11->iommu_base_high = ivhd->iommu_base_high; - ivhd_11->pci_segment_group = nb_dev->bus->segment_group; + ivhd_11->pci_segment_group = nb_dev->upstream->segment_group; ivhd_11->iommu_info = ivhd->iommu_info; ivhd11_attr_ptr = (ivhd11_iommu_attr_t *)&ivhd->iommu_feature_info; ivhd_11->iommu_attributes.perf_counters = ivhd11_attr_ptr->perf_counters; @@ -289,7 +289,7 @@
/* Now repeat all the device entries from type 10h */ current_backup = current; - current = acpi_ivhd_misc(current, nb_dev->bus->dev); + current = acpi_ivhd_misc(current, nb_dev->upstream->dev); ivhd_11->length += (current - current_backup);
return acpi_fill_ivrs40(current, ivhd, nb_dev, iommu_dev); @@ -317,8 +317,8 @@
while ((dev = dev_find_path(dev, DEVICE_PATH_DOMAIN)) != NULL) {
- nb_dev = pcidev_path_behind(dev->link_list, PCI_DEVFN(0, 0)); - iommu_dev = pcidev_path_behind(dev->link_list, PCI_DEVFN(0, 2)); + nb_dev = pcidev_path_behind(dev->downstream, PCI_DEVFN(0, 0)); + iommu_dev = pcidev_path_behind(dev->downstream, PCI_DEVFN(0, 2)); if (!nb_dev) { printk(BIOS_WARNING, "%s: Northbridge device not present!\n", __func__); printk(BIOS_WARNING, "%s: IVRS table not generated...\n", __func__); @@ -334,7 +334,7 @@ ivhd->length = sizeof(struct acpi_ivrs_ivhd);
/* BDF <bus>:00.2 */ - ivhd->device_id = 0x02 | (nb_dev->bus->secondary << 8); + ivhd->device_id = 0x02 | (nb_dev->upstream->secondary << 8); ivhd->capability_offset = pci_find_capability(iommu_dev, IOMMU_CAP_ID); ivhd->iommu_base_low = pci_read_config32(iommu_dev, IOMMU_CAP_BASE_LO) & 0xffffc000; ivhd->iommu_base_high = pci_read_config32(iommu_dev, IOMMU_CAP_BASE_HI); @@ -363,7 +363,7 @@ ivhd->flags |= ((mmio_x18_value & MMIO_CTRL_HT_TUN_EN) ? IVHD_FLAG_HT_TUN_EN : 0);
- ivhd->pci_segment_group = nb_dev->bus->segment_group; + ivhd->pci_segment_group = nb_dev->upstream->segment_group;
ivhd->iommu_info = pci_read_config16(iommu_dev, ivhd->capability_offset + 0x10) & 0x1F; diff --git a/src/soc/amd/common/block/data_fabric/domain.c b/src/soc/amd/common/block/data_fabric/domain.c index b827dd3..f17346f 100644 --- a/src/soc/amd/common/block/data_fabric/domain.c +++ b/src/soc/amd/common/block/data_fabric/domain.c @@ -34,12 +34,12 @@ limit = MIN(limit, PCI_BUSES_PER_SEGMENT_GROUP - 1);
/* Set bus first number of PCI root */ - domain->link_list->secondary = bus; + domain->downstream->secondary = bus; /* subordinate needs to be the same as secondary before pci_host_bridge_scan_bus call. */ - domain->link_list->subordinate = bus; + domain->downstream->subordinate = bus; /* Tell allocator about maximum PCI bus number in domain */ - domain->link_list->max_subordinate = limit; - domain->link_list->segment_group = segment_group; + domain->downstream->max_subordinate = limit; + domain->downstream->segment_group = segment_group;
pci_host_bridge_scan_bus(domain); } @@ -249,12 +249,12 @@
/* PCI bus number range in domain */ printk(BIOS_DEBUG, "%s _CRS: adding busses [%x-%x] in segment group %x\n", - acpi_device_name(domain), domain->link_list->secondary, - domain->link_list->max_subordinate, domain->link_list->segment_group); - acpigen_resource_producer_bus_number(domain->link_list->secondary, - domain->link_list->max_subordinate); + acpi_device_name(domain), domain->downstream->secondary, + domain->downstream->max_subordinate, domain->downstream->segment_group); + acpigen_resource_producer_bus_number(domain->downstream->secondary, + domain->downstream->max_subordinate);
- if (domain->link_list->secondary == 0 && domain->link_list->segment_group == 0) { + if (domain->downstream->secondary == 0 && domain->downstream->segment_group == 0) { /* ACPI 6.4.2.5 I/O Port Descriptor */ acpigen_write_io16(PCI_IO_CONFIG_INDEX, PCI_IO_CONFIG_LAST_PORT, 1, PCI_IO_CONFIG_PORT_COUNT, 1); @@ -282,7 +282,7 @@ } }
- if (domain->link_list->bridge_ctrl & PCI_BRIDGE_CTL_VGA) { + if (domain->downstream->bridge_ctrl & PCI_BRIDGE_CTL_VGA) { printk(BIOS_DEBUG, "%s _CRS: adding VGA resource\n", acpi_device_name(domain)); acpigen_resource_producer_mmio(VGA_MMIO_BASE, VGA_MMIO_LIMIT, MEM_RSRC_FLAG_MEM_READ_WRITE | MEM_RSRC_FLAG_MEM_ATTR_CACHE); @@ -290,9 +290,8 @@
acpigen_write_resourcetemplate_footer();
- acpigen_write_SEG(domain->link_list->segment_group); - acpigen_write_BBN(domain->link_list->secondary); - + acpigen_write_SEG(domain->downstream->segment_group); + acpigen_write_BBN(domain->downstream->secondary); /* Scope */ acpigen_pop_len(); } diff --git a/src/soc/amd/common/block/lpc/lpc.c b/src/soc/amd/common/block/lpc/lpc.c index c076361..a90fc3e 100644 --- a/src/soc/amd/common/block/lpc/lpc.c +++ b/src/soc/amd/common/block/lpc/lpc.c @@ -280,10 +280,10 @@ { struct device *child;
- if (!dev->link_list) + if (!dev->downstream) return;
- for (child = dev->link_list->children; child; child = child->sibling) { + for (child = dev->downstream->children; child; child = child->sibling) { if (!child->enabled) continue; if (child->path.type != DEVICE_PATH_PNP) diff --git a/src/soc/amd/genoa_poc/domain.c b/src/soc/amd/genoa_poc/domain.c index dc37450..57e020a 100644 --- a/src/soc/amd/genoa_poc/domain.c +++ b/src/soc/amd/genoa_poc/domain.c @@ -18,7 +18,7 @@ amd_pci_domain_read_resources(domain);
// We only want to add the DRAM memory map once - if (domain->link_list->secondary == 0 && domain->link_list->segment_group == 0) { + if (domain->downstream->secondary == 0 && domain->downstream->segment_group == 0) { /* 0x1000 is a large enough first index to be sure to not overlap with the resources added by amd_pci_domain_read_resources */ add_opensil_memmap(domain, 0x1000); @@ -27,7 +27,7 @@
static void genoa_domain_set_resources(struct device *domain) { - if (domain->link_list->bridge_ctrl & PCI_BRIDGE_CTL_VGA) { + if (domain->downstream->bridge_ctrl & PCI_BRIDGE_CTL_VGA) { printk(BIOS_DEBUG, "Setting VGA decoding for domain 0x%x\n", domain->path.domain.domain); const union df_vga_en vga_en = { diff --git a/src/soc/amd/glinda/xhci.c b/src/soc/amd/glinda/xhci.c index dad5593..74e8816 100644 --- a/src/soc/amd/glinda/xhci.c +++ b/src/soc/amd/glinda/xhci.c @@ -34,13 +34,13 @@
enum cb_err pci_xhci_get_wake_gpe(const struct device *dev, int *gpe) { - if (dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
if (dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
- if (dev->bus->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { + if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { if (dev->path.pci.devfn == XHCI0_DEVFN) { *gpe = xhci_sci_sources[0].gpe; return CB_SUCCESS; @@ -48,7 +48,7 @@ *gpe = xhci_sci_sources[1].gpe; return CB_SUCCESS; } - } else if (dev->bus->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { + } else if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { if (dev->path.pci.devfn == XHCI2_DEVFN && dev->device == PCI_DID_AMD_FAM17H_MODELA0H_XHCI2) { *gpe = xhci_sci_sources[2].gpe; diff --git a/src/soc/amd/mendocino/xhci.c b/src/soc/amd/mendocino/xhci.c index e564991..8f46374 100644 --- a/src/soc/amd/mendocino/xhci.c +++ b/src/soc/amd/mendocino/xhci.c @@ -35,13 +35,13 @@
enum cb_err pci_xhci_get_wake_gpe(const struct device *dev, int *gpe) { - if (dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
if (dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
- if (dev->bus->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { + if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { if (dev->path.pci.devfn == XHCI0_DEVFN) { *gpe = xhci_sci_sources[0].gpe; return CB_SUCCESS; @@ -49,7 +49,7 @@ *gpe = xhci_sci_sources[1].gpe; return CB_SUCCESS; } - } else if (dev->bus->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { + } else if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { if (dev->path.pci.devfn == XHCI2_DEVFN && dev->device == PCI_DID_AMD_FAM17H_MODELA0H_XHCI2) { *gpe = xhci_sci_sources[2].gpe; diff --git a/src/soc/amd/phoenix/xhci.c b/src/soc/amd/phoenix/xhci.c index 99033f9..79d4d07 100644 --- a/src/soc/amd/phoenix/xhci.c +++ b/src/soc/amd/phoenix/xhci.c @@ -39,13 +39,13 @@
enum cb_err pci_xhci_get_wake_gpe(const struct device *dev, int *gpe) { - if (dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
if (dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
- if (dev->bus->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { + if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_A_DEVFN) { if (dev->path.pci.devfn == XHCI0_DEVFN) { *gpe = xhci_sci_sources[0].gpe; return CB_SUCCESS; @@ -55,7 +55,7 @@ } }
- if (dev->bus->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { + if (dev->upstream->dev->path.pci.devfn == PCIE_ABC_C_DEVFN) { if (dev->path.pci.devfn == USB4_XHCI0_DEVFN) { *gpe = xhci_sci_sources[2].gpe; return CB_SUCCESS; diff --git a/src/soc/amd/picasso/xhci.c b/src/soc/amd/picasso/xhci.c index 84b3a2b..a238916 100644 --- a/src/soc/amd/picasso/xhci.c +++ b/src/soc/amd/picasso/xhci.c @@ -26,10 +26,10 @@
enum cb_err pci_xhci_get_wake_gpe(const struct device *dev, int *gpe) { - if (dev->bus->dev->path.type != DEVICE_PATH_PCI) + if (dev->upstream->dev->path.type != DEVICE_PATH_PCI) return CB_ERR_ARG;
- if (dev->bus->dev->path.pci.devfn != PCIE_GPP_A_DEVFN) + if (dev->upstream->dev->path.pci.devfn != PCIE_GPP_A_DEVFN) return CB_ERR_ARG;
if (dev->path.type != DEVICE_PATH_PCI) diff --git a/src/soc/amd/stoneyridge/northbridge.c b/src/soc/amd/stoneyridge/northbridge.c index b95c4cd..a92c3b5 100644 --- a/src/soc/amd/stoneyridge/northbridge.c +++ b/src/soc/amd/stoneyridge/northbridge.c @@ -52,9 +52,9 @@
static void create_vga_resource(struct device *dev) { - if (!dev->link_list) + if (!dev->downstream) return; - if (!(dev->link_list->bridge_ctrl & PCI_BRIDGE_CTL_VGA)) + if (!(dev->downstream->bridge_ctrl & PCI_BRIDGE_CTL_VGA)) return;
printk(BIOS_DEBUG, "VGA: %s has VGA device\n", dev_path(dev)); @@ -67,8 +67,8 @@ /* do we need this? */ create_vga_resource(dev);
- if (dev->link_list && dev->link_list->children) - assign_resources(dev->link_list); + if (dev->downstream && dev->downstream->children) + assign_resources(dev->downstream); }
static void northbridge_init(struct device *dev) diff --git a/src/soc/cavium/cn81xx/ecam0.c b/src/soc/cavium/cn81xx/ecam0.c index d02e884..ff3e709 100644 --- a/src/soc/cavium/cn81xx/ecam0.c +++ b/src/soc/cavium/cn81xx/ecam0.c @@ -226,12 +226,12 @@ * Search for missing devices on BUS 1. * Only required for ARI capability programming. */ - ecam0_fix_missing_devices(bridge->link_list); + ecam0_fix_missing_devices(bridge->downstream);
/* Program secure ARI capability on bus 1 */ child_last = NULL; for (i = 0; i <= PCI_DEVFN(0x1f, 7); i++) { - child = pcidev_path_behind(bridge->link_list, i); + child = pcidev_path_behind(bridge->downstream, i); if (!child || !child->enabled) continue;
@@ -250,7 +250,7 @@ /* Program insecure ARI capability on bus 1 */ child_last = NULL; for (i = 0; i <= PCI_DEVFN(0x1f, 7); i++) { - child = pcidev_path_behind(bridge->link_list, i); + child = pcidev_path_behind(bridge->downstream, i); if (!child) continue; config = child->chip_info; @@ -281,7 +281,7 @@
/* Enable / disable devices and functions on bus 1 */ for (i = 0; i <= PCI_DEVFN(0x1f, 7); i++) { - child = pcidev_path_behind(bridge->link_list, i); + child = pcidev_path_behind(bridge->downstream, i); config = child ? child->chip_info : NULL; if (child && child->enabled && ((config && !config->secure) || !config)) @@ -293,7 +293,7 @@ /* Apply IRQ on PCI devices */ /* UUA */ for (i = 0; i < 4; i++) { - child = pcidev_path_behind(bridge->link_list, + child = pcidev_path_behind(bridge->downstream, PCI_DEVFN(8, i)); if (!child) continue; diff --git a/src/soc/intel/apollolake/chip.c b/src/soc/intel/apollolake/chip.c index 469b9be..15780d0 100644 --- a/src/soc/intel/apollolake/chip.c +++ b/src/soc/intel/apollolake/chip.c @@ -478,7 +478,7 @@ return; } /* Only disable bus 0 devices. */ - for (dev = dev->bus->children; dev; dev = dev->sibling) { + for (dev = dev->upstream->children; dev; dev = dev->sibling) { if (!dev->enabled) disable_dev(dev, silconfig); } diff --git a/src/soc/intel/braswell/southcluster.c b/src/soc/intel/braswell/southcluster.c index a0df97c..2e37280 100644 --- a/src/soc/intel/braswell/southcluster.c +++ b/src/soc/intel/braswell/southcluster.c @@ -117,7 +117,7 @@ continue;
current_bdf = irq_dev->path.pci.devfn | - irq_dev->bus->secondary << 8; + irq_dev->upstream->secondary << 8;
/* * Step 1: Get the INT_PIN and device structure to look for @@ -132,7 +132,7 @@ original_int_pin = pci_read_config8(irq_dev, PCI_INTERRUPT_PIN);
parent_bdf = targ_dev->path.pci.devfn - | targ_dev->bus->secondary << 8; + | targ_dev->upstream->secondary << 8; device_num = PCI_SLOT(parent_bdf);
if (ir->pcidev[device_num] == 0) { diff --git a/src/soc/intel/common/block/acpi/pep.c b/src/soc/intel/common/block/acpi/pep.c index 39f9542..a6ae454 100644 --- a/src/soc/intel/common/block/acpi/pep.c +++ b/src/soc/intel/common/block/acpi/pep.c @@ -144,7 +144,7 @@
case DEVICE_PATH_PCI: /* skip external buses*/ - if ((dev->bus->secondary != 0) || (!states_arr)) + if ((dev->upstream->secondary != 0) || (!states_arr)) return ACPI_DEVICE_SLEEP_NONE; for (size_t i = 0; i < size; i++) if (states_arr[i].pci_dev == dev->path.pci.devfn) diff --git a/src/soc/intel/common/block/lpc/lpc.c b/src/soc/intel/common/block/lpc/lpc.c index 994ef9b..dbd982b 100644 --- a/src/soc/intel/common/block/lpc/lpc.c +++ b/src/soc/intel/common/block/lpc/lpc.c @@ -102,10 +102,10 @@ { struct device *child;
- if (!dev->link_list) + if (!dev->downstream) return;
- for (child = dev->link_list->children; child; child = child->sibling) + for (child = dev->downstream->children; child; child = child->sibling) pch_lpc_loop_resources(child); }
diff --git a/src/soc/intel/common/block/pcie/rtd3/rtd3.c b/src/soc/intel/common/block/pcie/rtd3/rtd3.c index 39c82b1..3a7c8b4 100644 --- a/src/soc/intel/common/block/pcie/rtd3/rtd3.c +++ b/src/soc/intel/common/block/pcie/rtd3/rtd3.c @@ -140,7 +140,7 @@ enum pcie_rp_type rp_type, const struct device *dev) { - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
acpigen_write_method_serialized("_ON", 0);
@@ -224,7 +224,7 @@ const struct device *dev)
{ - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev;
acpigen_write_method_serialized("_OFF", 0);
@@ -385,7 +385,7 @@
const struct soc_intel_common_block_pcie_rtd3_config *config = config_of(dev); static const char *const power_res_states[] = {"_PR0"}; - const struct device *parent = dev->bus->dev; + const struct device *parent = dev->upstream->dev; const char *scope = acpi_device_path(parent); const struct opregion opregion = OPREGION("PXCS", PCI_CONFIG, 0, 0xff); const struct fieldlist fieldlist[] = { diff --git a/src/soc/intel/common/block/usb4/pcie.c b/src/soc/intel/common/block/usb4/pcie.c index f2414cc..c066647 100644 --- a/src/soc/intel/common/block/usb4/pcie.c +++ b/src/soc/intel/common/block/usb4/pcie.c @@ -19,7 +19,7 @@ int port_id;
/* Get parent PCI device */ - parent = dev->bus->dev; + parent = dev->upstream->dev; if (!parent) { printk(BIOS_ERR, "%s: Unable to find parent device\n", __func__); return; diff --git a/src/soc/intel/common/block/xhci/xhci.c b/src/soc/intel/common/block/xhci/xhci.c index ff6fbf0..03ed578 100644 --- a/src/soc/intel/common/block/xhci/xhci.c +++ b/src/soc/intel/common/block/xhci/xhci.c @@ -92,8 +92,8 @@ return; }
- while ((hub = dev_bus_each_child(xhci->link_list, hub)) != NULL) { - while ((port = dev_bus_each_child(hub->link_list, port)) != NULL) { + while ((hub = dev_bus_each_child(xhci->downstream, hub)) != NULL) { + while ((port = dev_bus_each_child(hub->downstream, port)) != NULL) { enable = true; config = config_of(port); if (config->type == UPC_TYPE_INTERNAL) { diff --git a/src/soc/intel/denverton_ns/lpc.c b/src/soc/intel/denverton_ns/lpc.c index 7ebca1e..ae923d7 100644 --- a/src/soc/intel/denverton_ns/lpc.c +++ b/src/soc/intel/denverton_ns/lpc.c @@ -275,7 +275,7 @@
/* Swizzle this device if needed */ config = targ_dev->chip_info; - parent_bdf = targ_dev->path.pci.devfn | targ_dev->bus->secondary << 8; + parent_bdf = targ_dev->path.pci.devfn | targ_dev->upstream->secondary << 8; if (is_dnv_swizzled_rp(parent_bdf) && irq_dev != targ_dev) { swiz_int_pin = dnv_get_swizzled_pin(config, parent_bdf, new_int_pin); printk(BIOS_DEBUG, "%s: dnv swizzle %s from %c to %c\n", __func__, @@ -387,7 +387,7 @@
int_line = dnv_get_int_line(irq_dev); printk(BIOS_DEBUG, "%s: %02x:%02x.%d pin %d int line %d\n", __func__, - irq_dev->bus->secondary, devfn >> 3, devfn & 0x7, int_pin, int_line); + irq_dev->upstream->secondary, devfn >> 3, devfn & 0x7, int_pin, int_line);
pci_write_config8(irq_dev, PCI_INTERRUPT_LINE, int_line); } diff --git a/src/soc/intel/meteorlake/fsp_params.c b/src/soc/intel/meteorlake/fsp_params.c index c3c47854..971fa33 100644 --- a/src/soc/intel/meteorlake/fsp_params.c +++ b/src/soc/intel/meteorlake/fsp_params.c @@ -760,7 +760,7 @@
for (dev = all_devices; dev; dev = dev->next) { if (!(is_dev_enabled(dev) && dev->path.type == DEVICE_PATH_PCI && - dev->bus->secondary == 0)) + dev->upstream->secondary == 0)) continue;
if (dev->path.pci.devfn == PCI_DEVFN_ROOT) { diff --git a/src/soc/intel/skylake/chip.c b/src/soc/intel/skylake/chip.c index f471edb..ea091ce 100644 --- a/src/soc/intel/skylake/chip.c +++ b/src/soc/intel/skylake/chip.c @@ -94,7 +94,7 @@ return NULL;
/* Match functions 0 and 1 for possible GPUs on a secondary bus */ - if (dev->bus && dev->bus->secondary > 0) { + if (dev->upstream && dev->upstream->secondary > 0) { switch (PCI_FUNC(dev->path.pci.devfn)) { case 0: return "DEV0"; case 1: return "DEV1"; diff --git a/src/soc/intel/xeon_sp/chip_common.c b/src/soc/intel/xeon_sp/chip_common.c index 845e968..144dba1 100644 --- a/src/soc/intel/xeon_sp/chip_common.c +++ b/src/soc/intel/xeon_sp/chip_common.c @@ -78,7 +78,7 @@ bus->max_subordinate = sr->BusLimit;
printk(BIOS_SPEW, "Scanning IIO stack %d: busses %x-%x\n", dev->path.domain.domain, - dev->link_list->secondary, dev->link_list->max_subordinate); + dev->downstream->secondary, dev->downstream->max_subordinate); pci_host_bridge_scan_bus(dev); }
@@ -116,14 +116,14 @@
if (!is_pcie_iio_stack_res(ri)) { if (CONFIG(HAVE_IOAT_DOMAINS)) - soc_create_ioat_domains(dn, dev->bus, ri); + soc_create_ioat_domains(dn, dev->upstream, ri); continue; }
struct device_path path; path.type = DEVICE_PATH_DOMAIN; path.domain.domain = dn.domain_path; - struct device *iio_domain = alloc_dev(dev->bus, &path); + struct device *iio_domain = alloc_dev(dev->upstream, &path); if (iio_domain == NULL) die("%s: out of memory.\n", __func__); iio_domain->ops = &iio_pcie_domain_ops; diff --git a/src/soc/intel/xeon_sp/cpx/soc_acpi.c b/src/soc/intel/xeon_sp/cpx/soc_acpi.c index 2c19ed1..8b24ba2 100644 --- a/src/soc/intel/xeon_sp/cpx/soc_acpi.c +++ b/src/soc/intel/xeon_sp/cpx/soc_acpi.c @@ -46,7 +46,7 @@ struct iiostack_resource stack_info = {0};
/* Only add RTxx entries once. */ - if (device->bus->secondary != 0 || device->bus->segment_group != 0) + if (device->upstream->secondary != 0 || device->upstream->segment_group != 0) return;
get_iiostack_info(&stack_info); diff --git a/src/soc/intel/xeon_sp/skx/soc_acpi.c b/src/soc/intel/xeon_sp/skx/soc_acpi.c index dfbd878..2e2b14a 100644 --- a/src/soc/intel/xeon_sp/skx/soc_acpi.c +++ b/src/soc/intel/xeon_sp/skx/soc_acpi.c @@ -59,7 +59,7 @@ const IIO_UDS *hob = get_iio_uds();
/* Only add RTxx entries once. */ - if (device->bus->secondary != 0) + if (device->upstream->secondary != 0) return;
for (int socket = 0, iio = 0; iio < hob->PlatformData.numofIIO; ++socket) { diff --git a/src/soc/intel/xeon_sp/spr/soc_acpi.c b/src/soc/intel/xeon_sp/spr/soc_acpi.c index cb7fe1d..a48302c 100644 --- a/src/soc/intel/xeon_sp/spr/soc_acpi.c +++ b/src/soc/intel/xeon_sp/spr/soc_acpi.c @@ -341,7 +341,7 @@ bool stack_enabled;
/* Only add RTxx entries once. */ - if (device->bus->secondary != 0) + if (device->upstream->secondary != 0) return;
/* @@ -502,7 +502,7 @@
for (cpu = all_devices; cpu; cpu = cpu->next) { if ((cpu->path.type != DEVICE_PATH_APIC) - || (cpu->bus->dev->path.type != DEVICE_PATH_CPU_CLUSTER)) { + || (cpu->upstream->dev->path.type != DEVICE_PATH_CPU_CLUSTER)) { continue; } if (!cpu->enabled) diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c index 1b232ea..ddc6e82 100644 --- a/src/soc/intel/xeon_sp/uncore.c +++ b/src/soc/intel/xeon_sp/uncore.c @@ -192,7 +192,7 @@ struct range_entry fsp_mem;
/* Only add dram resources once. */ - if (dev->bus->secondary != 0 || dev->bus->segment_group != 0) + if (dev->upstream->secondary != 0 || dev->upstream->segment_group != 0) return;
/* Read in the MAP registers and report their values. */ diff --git a/src/soc/intel/xeon_sp/uncore_acpi.c b/src/soc/intel/xeon_sp/uncore_acpi.c index e2b47329..75b281b 100644 --- a/src/soc/intel/xeon_sp/uncore_acpi.c +++ b/src/soc/intel/xeon_sp/uncore_acpi.c @@ -225,7 +225,7 @@ uint32_t pcie_seg, bool is_atsr, bool *first) { - const uint32_t bus = bridge_dev->bus->secondary; + const uint32_t bus = bridge_dev->upstream->secondary; const uint32_t dev = PCI_SLOT(bridge_dev->path.pci.devfn); const uint32_t func = PCI_FUNC(bridge_dev->path.pci.devfn);
diff --git a/src/southbridge/amd/pi/hudson/lpc.c b/src/southbridge/amd/pi/hudson/lpc.c index 266d75c..66ec824 100644 --- a/src/southbridge/amd/pi/hudson/lpc.c +++ b/src/southbridge/amd/pi/hudson/lpc.c @@ -171,8 +171,8 @@ reg_var[0] = pci_read_config16(dev, 0x64);
struct device *child; - if (dev->link_list) { - for (child = dev->link_list->children; child; child = child->sibling) { + if (dev->downstream) { + for (child = dev->downstream->children; child; child = child->sibling) { if (child->enabled && (child->path.type == DEVICE_PATH_PNP)) { struct resource *res; for (res = child->resource_list; res; res = res->next) { diff --git a/src/southbridge/intel/bd82x6x/pcie.c b/src/southbridge/intel/bd82x6x/pcie.c index 13f16f8..a1dd16e 100644 --- a/src/southbridge/intel/bd82x6x/pcie.c +++ b/src/southbridge/intel/bd82x6x/pcie.c @@ -145,8 +145,8 @@ * must be a static device from devicetree.cb. * If one is found assume it's an integrated device and not a PCIe slot. */ - if (dev->link_list) - child = pcidev_path_behind(dev->link_list, PCI_DEVFN(0, 0)); + if (dev->downstream) + child = pcidev_path_behind(dev->downstream, PCI_DEVFN(0, 0));
/* Set slot power limit as configured above */ reg32 = pci_read_config32(dev, cap + PCI_EXP_SLTCAP); diff --git a/src/superio/common/generic.c b/src/superio/common/generic.c index 1758acc..92d8357 100644 --- a/src/superio/common/generic.c +++ b/src/superio/common/generic.c @@ -13,8 +13,8 @@ if (!dev) return;
- if (dev->link_list) - assign_resources(dev->link_list); + if (dev->downstream) + assign_resources(dev->downstream);
for (res = dev->resource_list; res; res = res->next) { if (!(res->flags & IORESOURCE_ASSIGNED)) @@ -159,8 +159,8 @@ acpigen_write_acquire(mutex, 0xffff);
/* Pick one of the children as the generic SIO doesn't have config mode */ - if (dev->link_list && dev->link_list->children) - pnp_ssdt_enter_conf_mode(dev->link_list->children, "^INDX", "^DATA"); + if (dev->downstream && dev->downstream->children) + pnp_ssdt_enter_conf_mode(dev->downstream->children, "^INDX", "^DATA");
/* Backup LDN */ acpigen_write_store(); @@ -178,8 +178,8 @@ acpigen_emit_namestring("^LDN");
/* Pick one of the children as the generic SIO doesn't have config mode */ - if (dev->link_list && dev->link_list->children) - pnp_ssdt_exit_conf_mode(dev->link_list->children, "^INDX", "^DATA"); + if (dev->downstream && dev->downstream->children) + pnp_ssdt_exit_conf_mode(dev->downstream->children, "^INDX", "^DATA");
acpigen_write_release(mutex); } diff --git a/src/superio/common/ssdt.c b/src/superio/common/ssdt.c index 47fbf0c..fd55792 100644 --- a/src/superio/common/ssdt.c +++ b/src/superio/common/ssdt.c @@ -161,7 +161,7 @@
void superio_common_fill_ssdt_generator(const struct device *dev) { - if (!dev || !dev->bus || !dev->bus->dev) { + if (!dev || !dev->upstream || !dev->upstream->dev) { printk(BIOS_CRIT, "BUG: Invalid argument in %s!\n", __func__); return; } @@ -174,11 +174,11 @@
/* Validate devicetree settings */ bool bug = false; - if (dev->bus->dev->path.type != DEVICE_PATH_PNP) { + if (dev->upstream->dev->path.type != DEVICE_PATH_PNP) { bug = true; printk(BIOS_CRIT, "BUG: Parent of device %s is not a PNP device\n", dev_path(dev)); - } else if (dev->bus->dev->path.pnp.port != dev->path.pnp.port) { + } else if (dev->upstream->dev->path.pnp.port != dev->path.pnp.port) { bug = true; printk(BIOS_CRIT, "BUG: Parent of device %s has wrong I/O port\n", dev_path(dev)); diff --git a/src/superio/nuvoton/npcd378/superio.c b/src/superio/nuvoton/npcd378/superio.c index a4759fb..ddf63cd 100644 --- a/src/superio/nuvoton/npcd378/superio.c +++ b/src/superio/nuvoton/npcd378/superio.c @@ -356,7 +356,7 @@ /* Method (SIOH, 0, NotSerialized) */ acpigen_write_method("_L08", 0); acpigen_emit_byte(AND_OP); - acpigen_emit_namestring(acpi_device_path_join(dev->bus->dev, "PMFG")); + acpigen_emit_namestring(acpi_device_path_join(dev->upstream->dev, "PMFG")); acpigen_write_integer(0xE8); acpigen_emit_byte(LOCAL0_OP);
@@ -366,13 +366,13 @@ acpigen_emit_byte(ZERO_OP);
acpigen_emit_byte(NOTIFY_OP); - acpigen_emit_namestring(acpi_device_path_join(dev->bus->dev, "L060")); + acpigen_emit_namestring(acpi_device_path_join(dev->upstream->dev, "L060")); acpigen_write_integer(2);
acpigen_pop_len(); /* Pop If */
acpigen_emit_byte(AND_OP); - acpigen_emit_namestring(acpi_device_path_join(dev->bus->dev, "PMFG")); + acpigen_emit_namestring(acpi_device_path_join(dev->upstream->dev, "PMFG")); acpigen_write_integer(0x10); acpigen_emit_byte(LOCAL0_OP);
@@ -382,7 +382,7 @@ acpigen_emit_byte(ZERO_OP);
acpigen_emit_byte(NOTIFY_OP); - acpigen_emit_namestring(acpi_device_path_join(dev->bus->dev, "L050")); + acpigen_emit_namestring(acpi_device_path_join(dev->upstream->dev, "L050")); acpigen_write_integer(2); acpigen_pop_len(); /* Pop If */
diff --git a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c index 9e9e886..50e96c9 100644 --- a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c +++ b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c @@ -129,7 +129,7 @@ struct vendorcode_amd_opensil_genoa_poc_mpio_config *const config) { static uint32_t slot_num; - const uint32_t domain = dev->bus->dev->path.domain.domain; + const uint32_t domain = dev->upstream->dev->path.domain.domain; const uint32_t devfn = dev->path.pci.devfn; printk(BIOS_DEBUG, "Setting MPIO port for domain 0x%x, PCI %d:%d\n", domain, PCI_SLOT(devfn), PCI_FUNC(devfn)); @@ -189,6 +189,6 @@ /* Find all devices with this chip that are directly below the chip */ for (struct device *dev = &dev_root; dev; dev = dev->next) if (dev->chip_ops == &vendorcode_amd_opensil_genoa_poc_mpio_ops && - dev->chip_info != dev->bus->dev->chip_info) - per_device_config(mpio_data, dev->bus->dev, dev->chip_info); + dev->chip_info != dev->upstream->dev->chip_info) + per_device_config(mpio_data, dev->upstream->dev, dev->chip_info); } diff --git a/util/sconfig/main.c b/util/sconfig/main.c index 533c9fb..04f78a4 100644 --- a/util/sconfig/main.c +++ b/util/sconfig/main.c @@ -1229,7 +1229,7 @@ else fprintf(fil, "\t.ops = NULL,\n"); fprintf(fil, "#endif\n"); - fprintf(fil, "\t.bus = &%s_bus,\n", ptr->parent->dev->name); + fprintf(fil, "\t.upstream = &%s_bus,\n", ptr->parent->dev->name); fprintf(fil, "\t.path = {"); fprintf(fil, ptr->path, ptr->path_a, ptr->path_b); fprintf(fil, "},\n"); @@ -1250,10 +1250,10 @@ ptr->name); } if (has_children) - fprintf(fil, "\t.link_list = &%s_bus,\n", + fprintf(fil, "\t.downstream = &%s_bus,\n", ptr->name); else - fprintf(fil, "\t.link_list = NULL,\n"); + fprintf(fil, "\t.downstream = NULL,\n"); if (ptr->sibling) fprintf(fil, "\t.sibling = &%s,\n", ptr->sibling->name); else