summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch')
-rw-r--r--recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch58
1 files changed, 0 insertions, 58 deletions
diff --git a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch b/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch
deleted file mode 100644
index 2451a21d..00000000
--- a/recipes-kernel/linux/linux-3.0/pm-wip/cpufreq/0016-OMAP2-CPUfreq-Remove-superfluous-check-in-target-for.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1From f0e647da78b80946ab301787aba4330bd7d1429d Mon Sep 17 00:00:00 2001
2From: Santosh Shilimkar <santosh.shilimkar@ti.com>
3Date: Fri, 3 Jun 2011 17:46:57 +0530
4Subject: [PATCH 16/19] OMAP2+: CPUfreq: Remove superfluous check in target() for online CPU's.
5
6Current OMAP2PLUS CPUfreq tagret() functions returns when all
7the CPU's are not online. This breaks CPUfreq when secondary CPUs
8are offlined on SMP system.
9
10The intention of that check was just avoid CPU frequency change
11during the window when CPU becomes online but it's cpufreq_init is
12not done yet. Otherwise it can lead to notifiers being sent on
13a CPU which is not yet registered to the governor.
14
15But this race conditions is already managed by the CPUfreq
16core driver by updating the available cpumask accordingly.
17
18OMAP CPUFReq driver make use same cpumask for the notifiers
19so the above problem doesn't exist. In my initial implementation
20of the OMAP4 CPUFreq driver, I was using 'for_each_online_cpu()'
21for notifiers which lead me to add that check. Later I fixed
22the notifies but didn't realise that the check has become
23redundant then.
24
25Fix it by removing the superfluous check in target().
26
27Thanks for Nishant Menon <nm@ti.com> for reporting issue
28with hot-plug and Kevin Hilman <khilman@ti.com> for his
29comment on excessive check in target().
30
31Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
32Reported-by: Nishanth Menon <nm@ti.com>
33Tested-by: Vishwanath BS <vishwanath.bs@ti.com>
34Cc: Kevin Hilman <khilman@ti.com>
35Tested-by: Nishanth Menon <nm@ti.com>
36Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
37---
38 arch/arm/mach-omap2/omap2plus-cpufreq.c | 4 ----
39 1 files changed, 0 insertions(+), 4 deletions(-)
40
41diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-omap2/omap2plus-cpufreq.c
42index a962a31..eaefa49 100644
43--- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
44+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
45@@ -70,10 +70,6 @@ static int omap_target(struct cpufreq_policy *policy,
46 int ret = 0;
47 struct cpufreq_freqs freqs;
48
49- /* Changes not allowed until all CPUs are online */
50- if (is_smp() && (num_online_cpus() < NR_CPUS))
51- return ret;
52-
53 if (!freq_table) {
54 dev_err(mpu_dev, "%s: cpu%d: no freq table!\n", __func__,
55 policy->cpu);
56--
571.7.2.5
58