aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/cpufreq_conservative.c
diff options
context:
space:
mode:
authorRickard Andersson <rickard.andersson@stericsson.com>2012-12-27 09:55:38 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-02-01 18:01:13 -0500
commit2abfa876f1117b0ab45f191fb1f82c41b1cbc8fe (patch)
tree929f7c181cead27bc5c1d320c53ba0e99a9f0544 /drivers/cpufreq/cpufreq_conservative.c
parent88b62b915b0b7e25870eb0604ed9a92ba4bfc9f7 (diff)
cpufreq: handle SW coordinated CPUs
This patch fixes a bug that occurred when we had load on a secondary CPU and the primary CPU was sleeping. Only one sampling timer was spawned and it was spawned as a deferred timer on the primary CPU, so when a secondary CPU had a change in load this was not detected by the cpufreq governor (both ondemand and conservative). This patch make sure that deferred timers are run on all CPUs in the case of software controlled CPUs that run on the same frequency. Signed-off-by: Rickard Andersson <rickard.andersson@stericsson.com> Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq/cpufreq_conservative.c')
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 64ef737e7e72..b9d7f14d7d3d 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -122,7 +122,8 @@ static void cs_dbs_timer(struct work_struct *work)
122 122
123 dbs_check_cpu(&cs_dbs_data, cpu); 123 dbs_check_cpu(&cs_dbs_data, cpu);
124 124
125 schedule_delayed_work_on(cpu, &dbs_info->cdbs.work, delay); 125 schedule_delayed_work_on(smp_processor_id(), &dbs_info->cdbs.work,
126 delay);
126 mutex_unlock(&dbs_info->cdbs.timer_mutex); 127 mutex_unlock(&dbs_info->cdbs.timer_mutex);
127} 128}
128 129