summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJinyoung Park <jinyoungp@nvidia.com>2013-09-02 14:50:30 +0900
committerGabby Lee <galee@nvidia.com>2013-09-02 06:37:55 -0700
commit57de2dbf25c025834fa7fbcd1d440b9e05179ce1 (patch)
tree875275c49857957e5fd10c53f9a04604cdb59cb6 /drivers
parent7f53b0accdf31b0e58b883e6bab1a4e71fa429be (diff)
cpufreq: Set same governor as a first CPU when CPU online
Set governor for a newly online CPU with same governor as a first CPU. Bug 1354391 Change-Id: I104ff8f61e89667f482f262d4cc3cb5ea1a1875a Signed-off-by: Jinyoung Park <jinyoungp@nvidia.com> Reviewed-on: http://git-master/r/268954 Reviewed-by: Gabby Lee <galee@nvidia.com> Tested-by: Gabby Lee <galee@nvidia.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/cpufreq/cpufreq.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index aa4bbb93fe18..4ac58b57830e 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -772,7 +772,14 @@ static int cpufreq_add_dev_policy(unsigned int cpu,
gov = __find_governor(per_cpu(cpufreq_cpu_governor, cpu));
if (gov) {
- policy->governor = gov;
+ struct cpufreq_policy *first_cp = per_cpu(cpufreq_cpu_data,
+ cpumask_first(cpu_online_mask));
+ /* Set same governor as a first CPU. */
+ if (first_cp && first_cp->governor &&
+ strcmp(first_cp->governor->name, gov->name))
+ policy->governor = first_cp->governor;
+ else
+ policy->governor = gov;
pr_debug("Restoring governor %s for cpu %d\n",
policy->governor->name, cpu);
}