aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJunjie Wu <junjiew@codeaurora.org>2014-08-15 16:34:37 -0700
committerRuchi Kandoi <kandoiruchi@google.com>2015-05-01 19:57:59 +0000
commit9fba20ccc6995d406bfbb03458511dd4ee689ea0 (patch)
treee585029a4b15ef2a7a6978798625046e8044fe00 /drivers
parent82973084c43d635d68dd1c848bfa3a645acd41d1 (diff)
downloadlinux-linaro-stable-9fba20ccc6995d406bfbb03458511dd4ee689ea0.tar.gz
cpufreq: interactive: Round up timer_rate to match jiffy
Timers are scheduled in unit of jiffies. Round up timer_rate so that it matches the actual sampling period. Change-Id: I88386a5a448e40333f9a9b9f0cf72af58cb54656 Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 12f7db3f4368..b84f709c760e 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -855,12 +855,18 @@ static ssize_t store_timer_rate(struct cpufreq_interactive_tunables *tunables,
const char *buf, size_t count)
{
int ret;
- unsigned long val;
+ unsigned long val, val_round;
ret = strict_strtoul(buf, 0, &val);
if (ret < 0)
return ret;
- tunables->timer_rate = val;
+
+ val_round = jiffies_to_usecs(usecs_to_jiffies(val));
+ if (val != val_round)
+ pr_warn("timer_rate not aligned to jiffy. Rounded up to %lu\n",
+ val_round);
+
+ tunables->timer_rate = val_round;
return count;
}