Просмотр исходного кода

[CPUFREQ] ARM: ux500: send cpufreq notification for all cpus

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.

change since V1:
* use policy->cpus instead of cpu_online_mask

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Dave Jones <davej@redhat.com>
Vincent Guittot 14 лет назад
Родитель
Сommit
8efd072b32
1 измененных файлов с 4 добавлено и 3 удалено
  1. 4 3
      drivers/cpufreq/db8500-cpufreq.c

+ 4 - 3
drivers/cpufreq/db8500-cpufreq.c

@@ -72,13 +72,13 @@ static int db8500_cpufreq_target(struct cpufreq_policy *policy,
 
 
 	freqs.old = policy->cur;
 	freqs.old = policy->cur;
 	freqs.new = freq_table[idx].frequency;
 	freqs.new = freq_table[idx].frequency;
-	freqs.cpu = policy->cpu;
 
 
 	if (freqs.old == freqs.new)
 	if (freqs.old == freqs.new)
 		return 0;
 		return 0;
 
 
 	/* pre-change notification */
 	/* pre-change notification */
-	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
+	for_each_cpu(freqs.cpu, policy->cpus)
+		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
 
 
 	/* request the PRCM unit for opp change */
 	/* request the PRCM unit for opp change */
 	if (prcmu_set_arm_opp(idx2opp[idx])) {
 	if (prcmu_set_arm_opp(idx2opp[idx])) {
@@ -87,7 +87,8 @@ static int db8500_cpufreq_target(struct cpufreq_policy *policy,
 	}
 	}
 
 
 	/* post change notification */
 	/* post change notification */
-	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
+	for_each_cpu(freqs.cpu, policy->cpus)
+		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
 
 
 	return 0;
 	return 0;
 }
 }