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: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Lukasz Luba 2023-12-20 23:17:47 +00:00 committed by Rafael J. Wysocki
parent 2c06456f65
commit 3d827317b1

View File

@ -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,
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,
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,
* 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)