Re: [PATCH 2/7] cpufreq: Retrieve current frequency from scalingdrivers with internal governors

From: Dirk Brandewie
Date: Tue Feb 05 2013 - 21:32:07 EST


On 02/05/2013 06:25 PM, Viresh Kumar wrote:
On Wed, Feb 6, 2013 at 7:45 AM, Dirk Brandewie <dirk.brandewie@xxxxxxxxx> wrote:
How about this?

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 2817c3c..9c0eac4 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1182,7 +1182,12 @@ unsigned int cpufreq_quick_get(unsigned int cpu)

unsigned int ret_freq = 0;

if (policy) {
- ret_freq = policy->cur;

+ if (cpufreq_driver && cpufreq_driver->setpolicy &&
+ cpufreq_driver->get) {
+ ret_freq = cpufreq_driver->get(cpu);
+ } else {
+ ret_freq = policy->cur;
+ }
cpufreq_cpu_put(policy);

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 2817c3c..7516b7d 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1178,9 +1178,14 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq,
*/
unsigned int cpufreq_quick_get(unsigned int cpu)
{
- struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
+ struct cpufreq_policy *policy;
unsigned int ret_freq = 0;

+ if (cpufreq_driver && cpufreq_driver->setpolicy &&
+ cpufreq_driver->get)
+ return cpufreq_driver->get(cpu);
+
+ policy = cpufreq_cpu_get(cpu);
if (policy) {
ret_freq = policy->cur;
cpufreq_cpu_put(policy);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/