diff options
author | Punit Agrawal <punit.agrawal@arm.com> | 2014-09-01 14:25:12 +0100 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2014-11-07 10:02:04 +0000 |
commit | 5bf10761bde7f09d23e1995c3a670b848e4d4e97 (patch) | |
tree | aa61f42ccfd1e6848ea967cbc62fc01a237458dc | |
parent | d45f0989dfcd5f2b97d1f86ef8c98d3258f9ef94 (diff) | |
download | juno-5bf10761bde7f09d23e1995c3a670b848e4d4e97.tar.gz |
fixup! thermal: add a basic cpu power actor
Signed-off-by: Jon Medhurst <tixy@linaro.org>
-rw-r--r-- | drivers/thermal/cpu_actor.c | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/drivers/thermal/cpu_actor.c b/drivers/thermal/cpu_actor.c index b704c3cf2d3..6ed2ee1d7f4 100644 --- a/drivers/thermal/cpu_actor.c +++ b/drivers/thermal/cpu_actor.c @@ -186,24 +186,10 @@ static u32 get_static_power(struct cpu_actor *cpu_actor, */ static u32 get_dynamic_power(struct cpu_actor *cpu_actor, unsigned long freq) { - int cpu; - u32 power = 0, raw_cpu_power, total_load = 0; + u32 power, raw_cpu_power; raw_cpu_power = cpu_freq_to_power(cpu_actor, freq); - - for_each_cpu(cpu, &cpu_actor->cpumask) { - u32 load; - - if (cpu_online(cpu)) - load = get_load(cpu_actor, cpu); - else - load = 0; - - power += (raw_cpu_power * load) / 100; - total_load += load; - } - - cpu_actor->last_load = total_load; + power = (raw_cpu_power * cpu_actor->last_load) / 100; return power; } @@ -219,12 +205,26 @@ static u32 get_dynamic_power(struct cpu_actor *cpu_actor, unsigned long freq) static u32 cpu_get_req_power(struct power_actor *actor, struct thermal_zone_device *tz) { - u32 static_power, dynamic_power; + int cpu; + u32 static_power, dynamic_power, total_load = 0; unsigned long freq; struct cpu_actor *cpu_actor = actor->data; freq = cpufreq_quick_get(cpumask_any(&cpu_actor->cpumask)); + for_each_cpu(cpu, &cpu_actor->cpumask) { + u32 load; + + if (cpu_online(cpu)) + load = get_load(cpu_actor, cpu); + else + load = 0; + + total_load += load; + } + + cpu_actor->last_load = total_load; + static_power = get_static_power(cpu_actor, tz, freq); dynamic_power = get_dynamic_power(cpu_actor, freq); |