diff options
author | Dirk Brandewie <dirk.brandewie@gmail.com> | 2013-02-06 12:02:08 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2013-02-09 06:55:03 -0500 |
commit | 9e21ba8bd849251c8ba22ddf39308a5227134fdc (patch) | |
tree | 5e7066d016fcd32589146bee014bca8d91366658 | |
parent | 2eaa3e2df185997e92596ab14a2a67dde3876d2e (diff) |
cpufreq: Retrieve current frequency from scaling drivers with internal governors
Scaling drivers that implement the cpufreq_driver.setpolicy() versus
the cpufreq_driver.target() interface do not set policy->cur.
Normally policy->cur is set during the call to cpufreq_driver.target()
when the frequnecy request is made by the governor.
If the scaling driver implements cpufreq_driver.setpolicy() and
cpufreq_driver.get() interfaces use cpufreq_driver.get() to retrieve
the current frequency.
Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index e000f3691661..e98035dc2265 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1156,9 +1156,13 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq, | |||
1156 | */ | 1156 | */ |
1157 | unsigned int cpufreq_quick_get(unsigned int cpu) | 1157 | unsigned int cpufreq_quick_get(unsigned int cpu) |
1158 | { | 1158 | { |
1159 | struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); | 1159 | struct cpufreq_policy *policy; |
1160 | unsigned int ret_freq = 0; | 1160 | unsigned int ret_freq = 0; |
1161 | 1161 | ||
1162 | if (cpufreq_driver && cpufreq_driver->setpolicy && cpufreq_driver->get) | ||
1163 | return cpufreq_driver->get(cpu); | ||
1164 | |||
1165 | policy = cpufreq_cpu_get(cpu); | ||
1162 | if (policy) { | 1166 | if (policy) { |
1163 | ret_freq = policy->cur; | 1167 | ret_freq = policy->cur; |
1164 | cpufreq_cpu_put(policy); | 1168 | cpufreq_cpu_put(policy); |