On Wednesday 24 August 2011 12:14 PM, Vincent Guittot wrote:
The same clock is used for all cpus so we must notify the frequency change
for each one in order to update the configuration of all twd clockevents.
Signed-off-by: Vincent Guittot<vincent.guit...@linaro.org>
---
drivers/cpufreq/db8500-cpufreq.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/cpufreq/db8500-cpufreq.c b/drivers/cpufreq/db8500-cpufreq.c
index 0d8dd1c..4cb5785 100644
--- a/drivers/cpufreq/db8500-cpufreq.c
+++ b/drivers/cpufreq/db8500-cpufreq.c
@@ -76,13 +76,13 @@ static int db8500_cpufreq_target(struct cpufreq_policy
*policy,
freqs.old = policy->cur;
freqs.new = freq_table[idx].frequency;
- freqs.cpu = policy->cpu;
if (freqs.old == freqs.new)
return 0;
/* pre-change notification */
- cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
+ for_each_online_cpu(freqs.cpu)
+ cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
Blind notfier on all online CPU's will race. Take a example whete CPU
is marked online but not yet registered to CPUFREQ. I have seen such a
race in OMAP and fixed that using the policy->cpus field.
Regards
Santosh
_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev