]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00160397: Fix build break caused by DVFS-CORE driver
authorRanjani Vaidyanathan <ra5478@freescale.com>
Wed, 19 Oct 2011 22:38:37 +0000 (17:38 -0500)
committerLothar Waßmann <LW@KARO-electronics.de>
Fri, 24 May 2013 06:33:16 +0000 (08:33 +0200)
loops_per_jiffy is a global variable for non-smp platforms.
For SMP platforms, loops_per_jiffy is a per_cpu variable.
Fix dvfs_core to adjust loops_per_jiffy for both configurations.

Signed-off-by: Ranjani Vaidyanathan <ra5478@freescale.com>
arch/arm/plat-mxc/dvfs_core.c

index 518d064112fae6a0159956419bdf45189b429f4a..f1a74ba503aa7109a605542bba61cd9a9e0754d4 100755 (executable)
@@ -655,11 +655,19 @@ static void dvfs_core_work_handler(struct work_struct *work)
 END:
        if (cpufreq_trig_needed == 1) {
                /*Fix loops-per-jiffy */
-               cpufreq_trig_needed = 0;
+#ifdef CONFIG_SMP
                for_each_online_cpu(cpu)
                        per_cpu(cpu_data, cpu).loops_per_jiffy =
                        dvfs_cpu_jiffies(per_cpu(cpu_data, cpu).loops_per_jiffy,
                                curr_cpu / 1000, clk_get_rate(cpu_clk) / 1000);
+#else
+               u32 old_loops_per_jiffy = loops_per_jiffy;
+
+               loops_per_jiffy =
+                       dvfs_cpu_jiffies(old_loops_per_jiffy,
+                               curr_cpu/1000, clk_get_rate(cpu_clk) / 1000);
+#endif
+               cpufreq_trig_needed = 0;
        }
 
        /* Set MAXF, MINF */
@@ -713,10 +721,18 @@ void stop_dvfs(void)
                        set_cpu_freq(curr_op);
 
                        /*Fix loops-per-jiffy */
+#ifdef CONFIG_SMP
                        for_each_online_cpu(cpu)
                                per_cpu(cpu_data, cpu).loops_per_jiffy =
                                dvfs_cpu_jiffies(per_cpu(cpu_data, cpu).loops_per_jiffy,
                                        curr_cpu/1000, clk_get_rate(cpu_clk) / 1000);
+#else
+               u32 old_loops_per_jiffy = loops_per_jiffy;
+
+               loops_per_jiffy =
+                       dvfs_cpu_jiffies(old_loops_per_jiffy,
+                               curr_cpu/1000, clk_get_rate(cpu_clk) / 1000);
+#endif
 
                }
                spin_lock_irqsave(&mxc_dvfs_core_lock, flags);