Commit caa822d3 authored by K Prateek Nayak's avatar K Prateek Nayak Committed by Mario Limonciello (AMD)
Browse files

cpufreq/amd-pstate: Use "epp_default_dc" as default when dynamic_epp is disabled



If "dynamic_epp" is disabled, the driver initialization and the default
EPP selection from sysfs currently sets the EPP based on the power
supply state of the system at that time but there is no power supply
callbacks registered to toggle it when the power supply state changes.

This can lead to faster battery drain on platforms that start off while
being plugged to the wall but later move to battery power since the EPP
stays at AMD_CPPC_EPP_PERFORMANCE.

Use "epp_default_dc" as the default EPP selection when dynamic_epp is
disabled, restoring older behavior. On servers, this defaults to
AMD_CPPC_EPP_PERFORMANCE and on other platforms, it defaults to
AMD_CPPC_EPP_BALANCE_PERFORMANCE.

Fixes: e30ca6dd ("cpufreq/amd-pstate: Add dynamic energy performance preference")
Reviewed-by: default avatarMario Limonciello <mario.limonciello@amd.com>
Signed-off-by: default avatarK Prateek Nayak <kprateek.nayak@amd.com>
Link: https://lore.kernel.org/r/20260508051748.10484-6-kprateek.nayak@amd.com


Signed-off-by: default avatarMario Limonciello (AMD) <superm1@kernel.org>
parent f3acf7ff
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1429,7 +1429,7 @@ ssize_t store_energy_performance_preference(struct cpufreq_policy *policy,
		if (ret)
			epp = epp_values[ret];
		else
			epp = amd_pstate_get_balanced_epp(policy);
			epp = cpudata->epp_default_dc;
	}

	if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) {
@@ -1954,7 +1954,7 @@ static int amd_pstate_epp_cpu_init(struct cpufreq_policy *policy)
	if (dynamic_epp)
		ret = amd_pstate_set_dynamic_epp(policy);
	else
		ret = amd_pstate_set_epp(policy, amd_pstate_get_balanced_epp(policy));
		ret = amd_pstate_set_epp(policy, cpudata->epp_default_dc);
	if (ret)
		goto free_cpudata1;