thermal: gov_power_allocator: Allow binding without cooling devices
authorNikita Travkin <nikita@trvn.ru>
Wed, 3 Apr 2024 11:31:40 +0000 (16:31 +0500)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 3 Apr 2024 14:32:14 +0000 (16:32 +0200)
IPA was recently refactored to split out memory allocation into a
separate funciton. That funciton was made to return -EINVAL if there is
zero power_actors and thus no memory to allocate. This causes IPA to
fail probing when the thermal zone has no attached cooling devices.

Since cooling devices can attach after the thermal zone is created and
the governer is attached to it, failing probe due to the lack of cooling
devices is incorrect.

Change the allocate_actors_buffer() to return success when there is no
cooling devices present.

Fixes: 912e97c67cc3 ("thermal: gov_power_allocator: Move memory allocation out of throttle()")
Signed-off-by: Nikita Travkin <nikita@trvn.ru>
Reviewed-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 1b17dc4c219cc94aae8bf030526298aca3e29eaa..ec637071ef1fad23e295cf9386d2638a365a7be6 100644 (file)
@@ -606,7 +606,7 @@ static int allocate_actors_buffer(struct power_allocator_params *params,
 
        /* There might be no cooling devices yet. */
        if (!num_actors) {
-               ret = -EINVAL;
+               ret = 0;
                goto clean_state;
        }