aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/skylake
diff options
context:
space:
mode:
authorMichael Niewöhner <foss@mniewoehner.de>2020-08-03 15:01:18 +0200
committerMichael Niewöhner <foss@mniewoehner.de>2020-09-21 14:51:00 +0000
commit30c5d21891c67e73c6522e125568e74c40465a7d (patch)
tree02663065e6f1372973e4fc093a80dc081694b92b /src/soc/intel/skylake
parentfa0080d187c8086d28bcad7c33bac66f624aa753 (diff)
soc/intel/skylake: acpi: drop HWP's dependency on EIST
Enhanced Intel SpeedStep Technology (EIST) and Intel Speed Shift Technology (ISST) - also know as HWP - are two independent mechanisms for controlling voltage and frequency based on performance hints. When HWP is enabled, it overrides the software-based EIST. It does not depend on EIST, though, but can be enabled on its own. Break up that currently existing dependency in ACPI generation code. It was tested that HWP can be enabled and gets used by the Linux pstate cpufreq driver. With HWP disabled, the frequency does not decrease, even not in powersave mode. After enabling HWP the frequency changed in relation to the current workload. (Test device: Acer ES1-572) Change-Id: I93d888ddce7b54e91b54e5b4fdd4d9cf16630eda Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/44137 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Subrata Banik <subrata.banik@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/skylake')
-rw-r--r--src/soc/intel/skylake/acpi.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/soc/intel/skylake/acpi.c b/src/soc/intel/skylake/acpi.c
index 0ec6e472ca..eb5b5b0efb 100644
--- a/src/soc/intel/skylake/acpi.c
+++ b/src/soc/intel/skylake/acpi.c
@@ -379,7 +379,7 @@ void generate_cpu_entries(const struct device *device)
printk(BIOS_DEBUG, "Found %d CPU(s) with %d core(s) each.\n",
numcpus, cores_per_package);
- if (config->eist_enable && config->speed_shift_enable) {
+ if (config->speed_shift_enable) {
struct cppc_config cppc_config;
cpu_init_cppc_config(&cppc_config, 2 /* version 2 */);
acpigen_write_CPPC_package(&cppc_config);
@@ -403,9 +403,11 @@ void generate_cpu_entries(const struct device *device)
/* Generate P-state tables */
generate_p_state_entries(core_id,
cores_per_package);
- if (config->speed_shift_enable)
- acpigen_write_CPPC_method();
}
+
+ if (config->speed_shift_enable)
+ acpigen_write_CPPC_method();
+
acpigen_pop_len();
}
}