From 40713aaa4347ba0b3fac591b8f1f5b437c6b2ca4 Mon Sep 17 00:00:00 2001 From: Tim Wawrzynczak Date: Wed, 24 Nov 2021 09:18:44 -0700 Subject: [PATCH] dptf: Add support for one more temperature sensor Some boards may use more than 4 temperature sensors for DPTF thermal control, so this patch adds support for one more temperature sensor. BUG=b:207585491 Signed-off-by: Tim Wawrzynczak Change-Id: Ibf9666bade23b9bb4f740c6c4df6ecf5227cfb45 Reviewed-on: https://review.coreboot.org/c/coreboot/+/59632 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans Reviewed-by: Scott Chao Reviewed-by: Sumeet R Pawnikar --- src/acpi/acpigen_dptf.c | 2 ++ src/drivers/intel/dptf/dptf.c | 4 ++-- src/include/acpi/acpigen_dptf.h | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/acpi/acpigen_dptf.c b/src/acpi/acpigen_dptf.c index ea1efcfb43..f2ae769a60 100644 --- a/src/acpi/acpigen_dptf.c +++ b/src/acpi/acpigen_dptf.c @@ -70,6 +70,8 @@ static const char *namestring_of(enum dptf_participant participant) return "TSR2"; case DPTF_TEMP_SENSOR_3: return "TSR3"; + case DPTF_TEMP_SENSOR_4: + return "TSR4"; case DPTF_TPCH: return "TPCH"; default: diff --git a/src/drivers/intel/dptf/dptf.c b/src/drivers/intel/dptf/dptf.c index c6ead0f6ed..71a25b606e 100644 --- a/src/drivers/intel/dptf/dptf.c +++ b/src/drivers/intel/dptf/dptf.c @@ -192,7 +192,7 @@ static void write_generic_devices(const struct drivers_intel_dptf_config *config get_STA_value(config, DPTF_CHARGER), platform_info); - for (i = 0, participant = DPTF_TEMP_SENSOR_0; i < 4; ++i, ++participant) { + for (i = 0, participant = DPTF_TEMP_SENSOR_0; i < DPTF_MAX_TSR; ++i, ++participant) { snprintf(name, sizeof(name), "TSR%1d", i); dptf_write_generic_participant(name, DPTF_GENERIC_PARTICIPANT_TYPE_TSR, NULL, get_STA_value(config, participant), @@ -449,7 +449,7 @@ static void write_options(const struct drivers_intel_dptf_config *config) acpigen_pop_len(); /* Scope */ /* TSR options */ - for (p = DPTF_TEMP_SENSOR_0, i = 0; p <= DPTF_TEMP_SENSOR_3; ++p, ++i) { + for (p = DPTF_TEMP_SENSOR_0, i = 0; p <= DPTF_TEMP_SENSOR_4; ++p, ++i) { if (is_participant_used(config, p) && (config->options.tsr[i].hysteresis || config->options.tsr[i].desc)) { dptf_write_scope(p); diff --git a/src/include/acpi/acpigen_dptf.h b/src/include/acpi/acpigen_dptf.h index de57adc5f5..758398d8e4 100644 --- a/src/include/acpi/acpigen_dptf.h +++ b/src/include/acpi/acpigen_dptf.h @@ -24,6 +24,7 @@ enum dptf_participant { DPTF_TEMP_SENSOR_1, DPTF_TEMP_SENSOR_2, DPTF_TEMP_SENSOR_3, + DPTF_TEMP_SENSOR_4, DPTF_TPCH, DPTF_PARTICIPANT_COUNT, }; @@ -44,7 +45,7 @@ enum { DPTF_FIELD_UNUSED = 0xFFFFFFFFull, /* Max supported by DPTF */ - DPTF_MAX_TSR = 4, + DPTF_MAX_TSR = 5, }; /* Active Policy */