[CPUFREQ] Prevents un-necessary cpufreq changes if we are already at min/max
authorDave Jones <davej@redhat.com>
Wed, 1 Jun 2005 02:03:48 +0000 (19:03 -0700)
committerDave Jones <davej@redhat.com>
Wed, 1 Jun 2005 02:03:48 +0000 (19:03 -0700)
Signed-off-by: Alexander Clouter <alex-kernel@digriz.org.uk>
Signed-off-by: Dave Jones <davej@redhat.com>
drivers/cpufreq/cpufreq_ondemand.c

index 7d7244314ac9a4d55e78d9427102dbe7ab59366a..6dc83808e5901102dae1d7aed2bb7111504a8120 100644 (file)
@@ -333,6 +333,10 @@ static void dbs_check_cpu(int cpu)
                        usecs_to_jiffies(dbs_tuners_ins.sampling_rate);
 
        if (idle_ticks < up_idle_ticks) {
+               /* if we are already at full speed then break out early */
+               if (policy->cur == policy->max)
+                       return;
+               
                __cpufreq_driver_target(policy, policy->max, 
                        CPUFREQ_RELATION_H);
                down_skip[cpu] = 0;
@@ -386,6 +390,10 @@ static void dbs_check_cpu(int cpu)
                        usecs_to_jiffies(freq_down_sampling_rate);
 
        if (idle_ticks > down_idle_ticks ) {
+               /* if we are already at the lowest speed then break out early */
+               if (policy->cur == policy->min)
+                       return;
+               
                freq_down_step = (5 * policy->max) / 100;
 
                /* max freq cannot be less than 100. But who knows.... */