Message ID | 20230104102149.16263-1-marcan@marcan.st (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | cpufreq: apple-soc: Switch to the lowest frequency on suspend | expand |
On 04-01-23, 19:21, Hector Martin wrote: > Without this, the CPUs are left in a random pstate. Since we don't > support deep idle yet (which powers down the CPUs), this results in > significantly increased idle power consumption in suspend. > > Fixes: 6286bbb40576 ("cpufreq: apple-soc: Add new driver to control Apple SoC CPU P-states") > Signed-off-by: Hector Martin <marcan@marcan.st> > --- > drivers/cpufreq/apple-soc-cpufreq.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/cpufreq/apple-soc-cpufreq.c b/drivers/cpufreq/apple-soc-cpufreq.c > index d1801281cdd9..1b4e6c701860 100644 > --- a/drivers/cpufreq/apple-soc-cpufreq.c > +++ b/drivers/cpufreq/apple-soc-cpufreq.c > @@ -280,6 +280,7 @@ static int apple_soc_cpufreq_init(struct cpufreq_policy *policy) > policy->cpuinfo.transition_latency = transition_latency; > policy->dvfs_possible_from_any_cpu = true; > policy->fast_switch_possible = true; > + policy->suspend_freq = freq_table[0].frequency; > > if (policy_has_boost_freq(policy)) { > ret = cpufreq_enable_boost_support(); > @@ -329,6 +330,7 @@ static struct cpufreq_driver apple_soc_cpufreq_driver = { > .fast_switch = apple_soc_cpufreq_fast_switch, > .register_em = cpufreq_register_em_with_opp, > .attr = apple_soc_cpufreq_hw_attr, > + .suspend = cpufreq_generic_suspend, > }; > > static int __init apple_soc_cpufreq_module_init(void) Applied. Thanks.
diff --git a/drivers/cpufreq/apple-soc-cpufreq.c b/drivers/cpufreq/apple-soc-cpufreq.c index d1801281cdd9..1b4e6c701860 100644 --- a/drivers/cpufreq/apple-soc-cpufreq.c +++ b/drivers/cpufreq/apple-soc-cpufreq.c @@ -280,6 +280,7 @@ static int apple_soc_cpufreq_init(struct cpufreq_policy *policy) policy->cpuinfo.transition_latency = transition_latency; policy->dvfs_possible_from_any_cpu = true; policy->fast_switch_possible = true; + policy->suspend_freq = freq_table[0].frequency; if (policy_has_boost_freq(policy)) { ret = cpufreq_enable_boost_support(); @@ -329,6 +330,7 @@ static struct cpufreq_driver apple_soc_cpufreq_driver = { .fast_switch = apple_soc_cpufreq_fast_switch, .register_em = cpufreq_register_em_with_opp, .attr = apple_soc_cpufreq_hw_attr, + .suspend = cpufreq_generic_suspend, }; static int __init apple_soc_cpufreq_module_init(void)
Without this, the CPUs are left in a random pstate. Since we don't support deep idle yet (which powers down the CPUs), this results in significantly increased idle power consumption in suspend. Fixes: 6286bbb40576 ("cpufreq: apple-soc: Add new driver to control Apple SoC CPU P-states") Signed-off-by: Hector Martin <marcan@marcan.st> --- drivers/cpufreq/apple-soc-cpufreq.c | 2 ++ 1 file changed, 2 insertions(+)