From: Ranjani Vaidyanathan Date: Wed, 19 Oct 2011 22:38:37 +0000 (-0500) Subject: ENGR00160397: Fix build break caused by DVFS-CORE driver X-Git-Tag: v3.0.35-fsl~2042 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=3d6099ab7d2305f0c91de34fc3c342bf0a40a621;p=karo-tx-linux.git ENGR00160397: Fix build break caused by DVFS-CORE driver 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 --- diff --git a/arch/arm/plat-mxc/dvfs_core.c b/arch/arm/plat-mxc/dvfs_core.c index 518d064112fa..f1a74ba503aa 100755 --- a/arch/arm/plat-mxc/dvfs_core.c +++ b/arch/arm/plat-mxc/dvfs_core.c @@ -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);