Commit 3d827317 authored by Lukasz Luba's avatar Lukasz Luba Committed by Rafael J. Wysocki

thermal: gov_power_allocator: Refactor checks in divvy_up_power()

Simplify the code and remove one extra 'if' block.

No intentional functional impact.
Signed-off-by: default avatarLukasz Luba <lukasz.luba@arm.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 2c06456f
...@@ -332,7 +332,8 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors, ...@@ -332,7 +332,8 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors,
u32 total_req_power, u32 power_range, u32 total_req_power, u32 power_range,
u32 *granted_power, u32 *extra_actor_power) u32 *granted_power, u32 *extra_actor_power)
{ {
u32 extra_power, capped_extra_power; u32 capped_extra_power = 0;
u32 extra_power = 0;
int i; int i;
/* /*
...@@ -341,8 +342,6 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors, ...@@ -341,8 +342,6 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors,
if (!total_req_power) if (!total_req_power)
total_req_power = 1; total_req_power = 1;
capped_extra_power = 0;
extra_power = 0;
for (i = 0; i < num_actors; i++) { for (i = 0; i < num_actors; i++) {
u64 req_range = (u64)req_power[i] * power_range; u64 req_range = (u64)req_power[i] * power_range;
...@@ -358,7 +357,7 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors, ...@@ -358,7 +357,7 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors,
capped_extra_power += extra_actor_power[i]; capped_extra_power += extra_actor_power[i];
} }
if (!extra_power) if (!extra_power || !capped_extra_power)
return; return;
/* /*
...@@ -366,12 +365,13 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors, ...@@ -366,12 +365,13 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors,
* how far they are from the max * how far they are from the max
*/ */
extra_power = min(extra_power, capped_extra_power); extra_power = min(extra_power, capped_extra_power);
if (capped_extra_power > 0)
for (i = 0; i < num_actors; i++) { for (i = 0; i < num_actors; i++) {
u64 extra_range = (u64)extra_actor_power[i] * extra_power; u64 extra_range = (u64)extra_actor_power[i] * extra_power;
granted_power[i] += DIV_ROUND_CLOSEST_ULL(extra_range,
capped_extra_power); granted_power[i] += DIV_ROUND_CLOSEST_ULL(extra_range,
} capped_extra_power);
}
} }
static int allocate_power(struct thermal_zone_device *tz, int control_temp) static int allocate_power(struct thermal_zone_device *tz, int control_temp)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment