From dda739e17dbaa8cae830c936b4b9f01db013d1b6 Mon Sep 17 00:00:00 2001 From: Finley Xiao Date: Tue, 29 Nov 2016 20:23:13 +0800 Subject: [PATCH] cpufreq: dt: change frequency to a specific value when cpufreq exits Sometimes all cpus of big cluster are closed and its frequency keep a high value, in order to reduce power and reset normally, set frequency to a specific value after close all the cpus. Change-Id: I88bce25812d1b0ff3f78a898cb161642a65cc523 Signed-off-by: Finley Xiao --- drivers/cpufreq/cpufreq-dt.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c index d4df226e475d..73d8102ff19d 100644 --- a/drivers/cpufreq/cpufreq-dt.c +++ b/drivers/cpufreq/cpufreq-dt.c @@ -300,6 +300,12 @@ static int cpufreq_exit(struct cpufreq_policy *policy) struct cpumask cpus; struct private_data *priv = policy->driver_data; +#ifdef CONFIG_ARCH_ROCKCHIP + cpumask_set_cpu(policy->cpu, policy->cpus); + if (cpufreq_generic_suspend(policy)) + pr_err("%s: Failed to suspend driver: %p\n", __func__, policy); + cpumask_clear_cpu(policy->cpu, policy->cpus); +#endif priv->cpu_dev = get_cpu_device(policy->cpu); cpufreq_cooling_unregister(priv->cdev); dev_pm_opp_free_cpufreq_table(priv->cpu_dev, &policy->freq_table); -- 2.34.1