thermal: gov_power_allocator: Refactor checks in divvy_up_power()
authorLukasz Luba <lukasz.luba@arm.com>
Wed, 20 Dec 2023 23:17:47 +0000 (23:17 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 29 Dec 2023 17:01:00 +0000 (18:01 +0100)
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>
drivers/thermal/gov_power_allocator.c

index d9175d9f5e3fd610bccb655f5c2c17fd89a290df..9e35ebd7cb03c97da837c3c3aecc649cff9a31bd 100644 (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 *granted_power, u32 *extra_actor_power)
 {
-       u32 extra_power, capped_extra_power;
+       u32 capped_extra_power = 0;
+       u32 extra_power = 0;
        int i;
 
        /*
@@ -341,8 +342,6 @@ static void divvy_up_power(u32 *req_power, u32 *max_power, int num_actors,
        if (!total_req_power)
                total_req_power = 1;
 
-       capped_extra_power = 0;
-       extra_power = 0;
        for (i = 0; i < num_actors; i++) {
                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];
        }
 
-       if (!extra_power)
+       if (!extra_power || !capped_extra_power)
                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
         */
        extra_power = min(extra_power, capped_extra_power);
-       if (capped_extra_power > 0)
-               for (i = 0; i < num_actors; i++) {
-                       u64 extra_range = (u64)extra_actor_power[i] * extra_power;
-                       granted_power[i] += DIV_ROUND_CLOSEST_ULL(extra_range,
-                                                        capped_extra_power);
-               }
+
+       for (i = 0; i < num_actors; i++) {
+               u64 extra_range = (u64)extra_actor_power[i] * 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)