soc/intel/xeon_sp: Revise IIO domain ACPI name encoding

GNR/SRF supports up to 18 logical IIO stacks. Revise IIO domain
ACPI name encoding in below form to support GNR/SRF,

prefix (16 bit) | socket (3-bit) | stack (5-bit)

Change-Id: I6f4c3c22980f2797dd47c8e0d684e0a3175030b7
Signed-off-by: Shuo Liu <shuo.liu@intel.com>
Signed-off-by: Jincheng Li <jincheng.li@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84310
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Shuo Liu 2024-06-08 02:49:41 +08:00 committed by Lean Sheng Tan
commit 177bb5e9b9

View file

@ -100,16 +100,16 @@ void iio_domain_set_acpi_name(struct device *dev, const char *prefix)
.domain_path = dev_get_domain_id(dev)
};
assert(dn.socket < CONFIG_MAX_SOCKET);
assert(dn.stack < 16);
assert(dn.socket < 8);
assert(dn.stack < 32);
assert(prefix != NULL && strlen(prefix) == 2);
if (dn.socket >= CONFIG_MAX_SOCKET || dn.stack >= 16 ||
if (dn.socket >= 8 || dn.stack >= 32 ||
!prefix || strlen(prefix) != 2)
return;
char *name = xmalloc(ACPI_NAME_BUFFER_SIZE);
snprintf(name, ACPI_NAME_BUFFER_SIZE, "%s%1X%1X", prefix, dn.socket, dn.stack);
snprintf(name, ACPI_NAME_BUFFER_SIZE, "%s%02X", prefix, ((dn.socket << 5) + dn.stack));
dev->name = name;
}