From 32c38ca221ff5956a81026fd0e5df330d569fcca Mon Sep 17 00:00:00 2001 From: Felix Held Date: Thu, 25 Jul 2024 00:05:53 +0200 Subject: device: introduce and use dev_get_domain_id To avoid having constructs like 'dev->path.domain.domain' in the SoC code, create the 'dev_get_domain_id' helper function that returns the domain ID of either that device if it's a domain device or the corresponding domain device's domain ID, and use it in the code. If this function is called with a device other than PCI or domain type, it won't have a domain number. In order to not need to call 'die', 'dev_get_domain_id' will print an error and return 0 which is a valid domain number. In that case, the calling code should be fixed. Signed-off-by: Felix Held Change-Id: I3d79f19846cea49609f848a4c42747ac1052c288 Reviewed-on: https://review.coreboot.org/c/coreboot/+/83644 Reviewed-by: Shuo Liu Tested-by: build bot (Jenkins) --- src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/vendorcode/amd/opensil') diff --git a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c index 609ac5516d..b3710341b7 100644 --- a/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c +++ b/src/vendorcode/amd/opensil/genoa_poc/mpio/chip.c @@ -128,7 +128,7 @@ static void setup_bmc_lanes(uint8_t lane, uint8_t socket) static void per_device_config(MPIOCLASS_INPUT_BLK *mpio_data, struct device *dev) { static uint32_t slot_num; - const uint32_t domain = dev->upstream->dev->path.domain.domain; + const uint32_t domain = dev_get_domain_id(dev); const uint32_t devfn = dev->path.pci.devfn; const struct vendorcode_amd_opensil_chip_mpio_config *const config = dev->chip_info; printk(BIOS_DEBUG, "Setting MPIO port for domain 0x%x, PCI %d:%d\n", -- cgit v1.2.3