rk30: cpufreq: notify frequency change once
author黄涛 <huangtao@rock-chips.com>
Fri, 20 Apr 2012 04:15:10 +0000 (12:15 +0800)
committer黄涛 <huangtao@rock-chips.com>
Fri, 20 Apr 2012 04:16:34 +0000 (12:16 +0800)
arch/arm/mach-rk30/cpufreq.c

index 71d56ad833381aa23f597f35b66effc7c13bd0fe..cad6459dd238589971995abad10a4d584ad9d13c 100755 (executable)
@@ -304,13 +304,13 @@ int cpufreq_scale_rate_for_dvfs(struct clk * clk,unsigned long rate,dvfs_set_rat
        unsigned int i;
        int ret=-EINVAL;
        struct cpufreq_freqs freqs;
-       
-       freqs.new=rate/1000;
-       freqs.old=rk30_getspeed(0);
-       
-       get_online_cpus();
-       for_each_online_cpu(freqs.cpu)
-               cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
+
+       freqs.cpu = 0;
+       freqs.old = rk30_getspeed(0);
+       freqs.new = rate/1000;
+
+       cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
+
        FREQ_PRINTK_DBG("cpufreq_scale_rate_for_dvfs(%lu)\n",rate);
        ret = set_rate(clk,rate);
 
@@ -325,12 +325,10 @@ int cpufreq_scale_rate_for_dvfs(struct clk * clk,unsigned long rate,dvfs_set_rat
        }
 #endif
 
-       freqs.old=freqs.new;
-       freqs.new=rk30_getspeed(0);
-       /* notifiers */
-       for_each_online_cpu(freqs.cpu)
-               cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-       put_online_cpus();
+       freqs.new = rk30_getspeed(0);
+
+       cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
+
        return ret;
 
 }