diff options
-rw-r--r-- | src/soc/intel/xeon_sp/acpi/iiostack.asl | 2 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/cpx/soc_acpi.c | 4 | ||||
-rw-r--r-- | src/soc/intel/xeon_sp/skx/soc_acpi.c | 4 |
3 files changed, 9 insertions, 1 deletions
diff --git a/src/soc/intel/xeon_sp/acpi/iiostack.asl b/src/soc/intel/xeon_sp/acpi/iiostack.asl index dca5569559..4b2b65bbc5 100644 --- a/src/soc/intel/xeon_sp/acpi/iiostack.asl +++ b/src/soc/intel/xeon_sp/acpi/iiostack.asl @@ -69,7 +69,7 @@ MAKE_IIO_DEV(01, 10) MAKE_IIO_DEV(02, 20) MAKE_IIO_DEV(03, 28) -#if MAX_SOCKET > 1 +#if (CONFIG_MAX_SOCKET > 1) MAKE_IIO_DEV(06, 40) MAKE_IIO_DEV(07, 50) MAKE_IIO_DEV(08, 60) diff --git a/src/soc/intel/xeon_sp/cpx/soc_acpi.c b/src/soc/intel/xeon_sp/cpx/soc_acpi.c index d60684bccb..c35c2482f4 100644 --- a/src/soc/intel/xeon_sp/cpx/soc_acpi.c +++ b/src/soc/intel/xeon_sp/cpx/soc_acpi.c @@ -60,6 +60,10 @@ void uncore_inject_dsdt(const struct device *device) { struct iiostack_resource stack_info = {0}; + /* Only add RTxx entries once. */ + if (device->bus->secondary != 0) + return; + get_iiostack_info(&stack_info); acpigen_write_scope("\\_SB"); diff --git a/src/soc/intel/xeon_sp/skx/soc_acpi.c b/src/soc/intel/xeon_sp/skx/soc_acpi.c index df2550c54a..b3926193da 100644 --- a/src/soc/intel/xeon_sp/skx/soc_acpi.c +++ b/src/soc/intel/xeon_sp/skx/soc_acpi.c @@ -104,6 +104,10 @@ void uncore_inject_dsdt(const struct device *device) const IIO_UDS *hob = fsp_find_extension_hob_by_guid(uds_guid, &hob_size); assert(hob != NULL && hob_size != 0); + /* Only add RTxx entries once. */ + if (device->bus->secondary != 0) + return; + acpigen_write_scope("\\_SB"); for (int socket = 0; socket < hob->PlatformData.numofIIO; ++socket) { IIO_RESOURCE_INSTANCE iio_resource = |