summaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2005-06-01 04:03:48 +0200
committerDave Jones <davej@redhat.com>2005-06-01 04:03:48 +0200
commitc11420a616039e2181e4ecbffb4d125d39e6877d (patch)
tree413a30af85846567ea326d42e38ba40153b73bce /drivers/cpufreq
parent[CPUFREQ] Add support to cpufreq_ondemand to ignore 'nice' cpu time (diff)
downloadlinux-c11420a616039e2181e4ecbffb4d125d39e6877d.tar.xz
linux-c11420a616039e2181e4ecbffb4d125d39e6877d.zip
[CPUFREQ] Prevents un-necessary cpufreq changes if we are already at min/max
Signed-off-by: Alexander Clouter <alex-kernel@digriz.org.uk> Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/cpufreq_ondemand.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index 7d7244314ac9..6dc83808e590 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -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.... */