diff options
author | Benn Pörscke <benn.porscke@stericsson.com> | 2011-12-16 15:04:55 +0100 |
---|---|---|
committer | Benn Pörscke <benn.porscke@stericsson.com> | 2011-12-16 15:04:55 +0100 |
commit | 93f379e6cfadfded0d262192ca69d1abc096d90e (patch) | |
tree | 43f180e31ee26ee94f7d2dd559132c30c6476b4d /drivers/cpufreq | |
parent | 77955e37bd395f789900b8e180991ad67cabd899 (diff) |
Squashandroid-20111223
Change-Id: I2fcf46d1fc4b0cd4c61e5be3654c43b80db86015
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r-- | drivers/cpufreq/cpufreq_interactive.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c index d8f62f402bf..38a874ed074 100644 --- a/drivers/cpufreq/cpufreq_interactive.c +++ b/drivers/cpufreq/cpufreq_interactive.c @@ -137,9 +137,14 @@ static void cpufreq_interactive_timer(unsigned long data) if (delta_idle > delta_time) cpu_load = 0; - else - cpu_load = 100 * (delta_time - delta_idle) / delta_time; + else { + unsigned long long load; + + load = 100llu * (delta_time - delta_idle); + do_div(load, delta_time); + cpu_load = load; + } delta_idle = (unsigned int) cputime64_sub(now_idle, pcpu->freq_change_time_in_idle); delta_time = (unsigned int) cputime64_sub(pcpu->timer_run_time, @@ -147,9 +152,14 @@ static void cpufreq_interactive_timer(unsigned long data) if (delta_idle > delta_time) load_since_change = 0; - else - load_since_change = - 100 * (delta_time - delta_idle) / delta_time; + else { + unsigned long long load; + + load = 100llu * (delta_time - delta_idle); + do_div(load, delta_time); + + load_since_change = load; + } /* * Choose greater of short-term load (since last idle timer |