aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPunit Agrawal <punit.agrawal@arm.com>2014-09-01 14:25:12 +0100
committerJon Medhurst <tixy@linaro.org>2014-11-07 10:02:04 +0000
commit5bf10761bde7f09d23e1995c3a670b848e4d4e97 (patch)
treeaa61f42ccfd1e6848ea967cbc62fc01a237458dc
parentd45f0989dfcd5f2b97d1f86ef8c98d3258f9ef94 (diff)
downloadjuno-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.c34
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);