Re: [PATCH v1 2/4] thermal: gov_bang_bang: Split bang_bang_control()

From: Zhang, Rui
Date: Thu Aug 15 2024 - 23:01:10 EST


On Tue, 2024-08-13 at 16:26 +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Move the setting of the thermal instance target state from
> bang_bang_control() into a separate function that will be also called
> in a different place going forward.
>
> No intentional functional impact.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Reviewed-by: Zhang Rui <rui.zhang@xxxxxxxxx>

thanks,
rui

> ---
>  drivers/thermal/gov_bang_bang.c |   42 +++++++++++++++++++++--------
> -----------
>  1 file changed, 23 insertions(+), 19 deletions(-)
>
> Index: linux-pm/drivers/thermal/gov_bang_bang.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/gov_bang_bang.c
> +++ linux-pm/drivers/thermal/gov_bang_bang.c
> @@ -13,6 +13,27 @@
>  
>  #include "thermal_core.h"
>  
> +static void bang_bang_set_instance_target(struct thermal_instance
> *instance,
> +                                         unsigned int target)
> +{
> +       if (instance->target != 0 && instance->target != 1 &&
> +           instance->target != THERMAL_NO_TARGET)
> +               pr_debug("Unexpected state %ld of thermal instance %s
> in bang-bang\n",
> +                        instance->target, instance->name);
> +
> +       /*
> +        * Enable the fan when the trip is crossed on the way up and
> disable it
> +        * when the trip is crossed on the way down.
> +        */
> +       instance->target = target;
> +
> +       dev_dbg(&instance->cdev->device, "target=%ld\n", instance-
> >target);
> +
> +       mutex_lock(&instance->cdev->lock);
> +       __thermal_cdev_update(instance->cdev);
> +       mutex_unlock(&instance->cdev->lock);
> +}
> +
>  /**
>   * bang_bang_control - controls devices associated with the given
> zone
>   * @tz: thermal_zone_device
> @@ -54,25 +75,8 @@ static void bang_bang_control(struct the
>                 tz->temperature, trip->hysteresis);
>  
>         list_for_each_entry(instance, &tz->thermal_instances,
> tz_node) {
> -               if (instance->trip != trip)
> -                       continue;
> -
> -               if (instance->target != 0 && instance->target != 1 &&
> -                   instance->target != THERMAL_NO_TARGET)
> -                       pr_debug("Unexpected state %ld of thermal
> instance %s in bang-bang\n",
> -                                instance->target, instance->name);
> -
> -               /*
> -                * Enable the fan when the trip is crossed on the way
> up and
> -                * disable it when the trip is crossed on the way
> down.
> -                */
> -               instance->target = crossed_up;
> -
> -               dev_dbg(&instance->cdev->device, "target=%ld\n",
> instance->target);
> -
> -               mutex_lock(&instance->cdev->lock);
> -               __thermal_cdev_update(instance->cdev);
> -               mutex_unlock(&instance->cdev->lock);
> +               if (instance->trip == trip)
> +                       bang_bang_set_instance_target(instance,
> crossed_up);
>         }
>  }
>  
>
>
>