Re: [PATCH v3 13/14] thermal: core: Drop unused bind/unbind functions and callbacks

Zhang, Rui
2024-08-20T07:10:42Z

On Mon, 2024-08-19 at 18:31 +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> There are no more callers of thermal_zone_bind_cooling_device() and
> thermal_zone_unbind_cooling_device(), so drop them along with all of
> the corresponding headers, code and documentation.
>
> Moreover, because the .bind() and .unbind() thermal zone callbacks
> would
> only be used when the above functions, respectively, were called,
> drop
> them as well along with all of the code related to them.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

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

thanks,
rui

> ---
>
> v2 -> v3: No changes
>
> v1 -> v2:
>    * Update the list of thermal zone ops in the documentation.
>
> ---
>  Documentation/driver-api/thermal/sysfs-api.rst |   59 +-------------
> -----
>  drivers/thermal/thermal_core.c                 |   75 +-------------
> -----------
>  include/linux/thermal.h                        |   10 ---
>  3 files changed, 6 insertions(+), 138 deletions(-)
>
> Index: linux-pm/drivers/thermal/thermal_core.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/thermal_core.c
> +++ linux-pm/drivers/thermal/thermal_core.c
> @@ -878,28 +878,6 @@ free_mem:
>         return result;
>  }
>
> -int thermal_zone_bind_cooling_device(struct thermal_zone_device *tz,
> -                                    int trip_index,
> -                                    struct thermal_cooling_device
> *cdev,
> -                                    unsigned long upper, unsigned
> long lower,
> -                                    unsigned int weight)
> -{
> -       int ret;
> -
> -       if (trip_index < 0 || trip_index >= tz->num_trips)
> -               return -EINVAL;
> -
> -       mutex_lock(&tz->lock);
> -
> -       ret = thermal_bind_cdev_to_trip(tz, &tz-
> >trips[trip_index].trip, cdev,
> -                                       upper, lower, weight);
> -
> -       mutex_unlock(&tz->lock);
> -
> -       return ret;
> -}
> -EXPORT_SYMBOL_GPL(thermal_zone_bind_cooling_device);
> -
>  /**
>   * thermal_unbind_cdev_from_trip - unbind a cooling device from a
> thermal zone.
>   * @tz:                pointer to a struct thermal_zone_device.
> @@ -945,25 +923,6 @@ unbind:
>         return 0;
>  }
>
> -int thermal_zone_unbind_cooling_device(struct thermal_zone_device
> *tz,
> -                                      int trip_index,
> -                                      struct thermal_cooling_device
> *cdev)
> -{
> -       int ret;
> -
> -       if (trip_index < 0 || trip_index >= tz->num_trips)
> -               return -EINVAL;
> -
> -       mutex_lock(&tz->lock);
> -
> -       ret = thermal_unbind_cdev_from_trip(tz, &tz-
> >trips[trip_index].trip, cdev);
> -
> -       mutex_unlock(&tz->lock);
> -
> -       return ret;
> -}
> -EXPORT_SYMBOL_GPL(thermal_zone_unbind_cooling_device);
> -
>  static void thermal_release(struct device *dev)
>  {
>         struct thermal_zone_device *tz;
> @@ -992,14 +951,8 @@ void print_bind_err_msg(struct thermal_z
>                         const struct thermal_trip *trip,
>                         struct thermal_cooling_device *cdev, int ret)
>  {
> -       if (trip) {
> -               dev_err(&tz->device, "binding cdev %s to trip %d
> failed: %d\n",
> -                       cdev->type, thermal_zone_trip_id(tz, trip),
> ret);
> -               return;
> -       }
> -
> -       dev_err(&tz->device, "binding zone %s with cdev %s
> failed:%d\n",
> -               tz->type, cdev->type, ret);
> +       dev_err(&tz->device, "binding cdev %s to trip %d failed:
> %d\n",
> +               cdev->type, thermal_zone_trip_id(tz, trip), ret);
>  }
>
>  static void thermal_zone_cdev_binding(struct thermal_zone_device
> *tz,
> @@ -1008,18 +961,6 @@ static void thermal_zone_cdev_binding(st
>         struct thermal_trip_desc *td;
>         int ret;
>
> -       /*
> -        * Old-style binding. The .bind() callback is expected to
> call
> -        * thermal_bind_cdev_to_trip() under the thermal zone lock.
> -        */
> -       if (tz->ops.bind) {
> -               ret = tz->ops.bind(tz, cdev);
> -               if (ret)
> -                       print_bind_err_msg(tz, NULL, cdev, ret);
> -
> -               return;
> -       }
> -
>         if (!tz->ops.should_bind)
>                 return;
>
> @@ -1346,15 +1287,6 @@ static void thermal_zone_cdev_unbinding(
>  {
>         struct thermal_trip_desc *td;
>
> -       /*
> -        * Old-style unbinding.  The .unbind callback is expected to
> call
> -        * thermal_unbind_cdev_from_trip() under the thermal zone
> lock.
> -        */
> -       if (tz->ops.unbind) {
> -               tz->ops.unbind(tz, cdev);
> -               return;
> -       }
> -
>         mutex_lock(&tz->lock);
>
>         for_each_trip_desc(tz, td)
> @@ -1488,8 +1420,7 @@ thermal_zone_device_register_with_trips(
>                 return ERR_PTR(-EINVAL);
>         }
>
> -       if (!ops || !ops->get_temp || (ops->should_bind && ops->bind)
> ||
> -           (ops->should_bind && ops->unbind)) {
> +       if (!ops || !ops->get_temp) {
>                 pr_err("Thermal zone device ops not defined or
> invalid\n");
>                 return ERR_PTR(-EINVAL);
>         }
> Index: linux-pm/include/linux/thermal.h
> ===================================================================
> --- linux-pm.orig/include/linux/thermal.h
> +++ linux-pm/include/linux/thermal.h
> @@ -92,10 +92,6 @@ struct cooling_spec {
>  };
>
>  struct thermal_zone_device_ops {
> -       int (*bind) (struct thermal_zone_device *,
> -                    struct thermal_cooling_device *);
> -       int (*unbind) (struct thermal_zone_device *,
> -                      struct thermal_cooling_device *);
>         bool (*should_bind) (struct thermal_zone_device *,
>                              const struct thermal_trip *,
>                              struct thermal_cooling_device *,
> @@ -247,12 +243,6 @@ const char *thermal_zone_device_type(str
>  int thermal_zone_device_id(struct thermal_zone_device *tzd);
>  struct device *thermal_zone_device(struct thermal_zone_device *tzd);
>
> -int thermal_zone_bind_cooling_device(struct thermal_zone_device *,
> int,
> -                                    struct thermal_cooling_device *,
> -                                    unsigned long, unsigned long,
> -                                    unsigned int);
> -int thermal_zone_unbind_cooling_device(struct thermal_zone_device *,
> int,
> -                                      struct thermal_cooling_device
> *);
>  void thermal_zone_device_update(struct thermal_zone_device *,
>                                 enum thermal_notify_event);
>
> Index: linux-pm/Documentation/driver-api/thermal/sysfs-api.rst
> ===================================================================
> --- linux-pm.orig/Documentation/driver-api/thermal/sysfs-api.rst
> +++ linux-pm/Documentation/driver-api/thermal/sysfs-api.rst
> @@ -58,10 +58,9 @@ temperature) and throttle appropriate de
>      ops:
>         thermal zone device call-backs.
>
> -       .bind:
> -               bind the thermal zone device with a thermal cooling
> device.
> -       .unbind:
> -               unbind the thermal zone device with a thermal cooling
> device.
> +       .should_bind:
> +               check whether or not a given cooling device should be
> bound to
> +               a given trip point in this thermal zone.
>         .get_temp:
>                 get the current temperature of the thermal zone.
>         .set_trips:
> @@ -246,56 +245,6 @@ temperature) and throttle appropriate de
>      It deletes the corresponding entry from /sys/class/thermal
> folder and
>      unbinds itself from all the thermal zone devices using it.
>
> -1.3 interface for binding a thermal zone device with a thermal
> cooling device
> ---------------------------------------------------------------------
> ---------
> -
> -    ::
> -
> -       int thermal_zone_bind_cooling_device(struct
> thermal_zone_device *tz,
> -               int trip, struct thermal_cooling_device *cdev,
> -               unsigned long upper, unsigned long lower, unsigned
> int weight);
> -
> -    This interface function binds a thermal cooling device to a
> particular trip
> -    point of a thermal zone device.
> -
> -    This function is usually called in the thermal zone device .bind
> callback.
> -
> -    tz:
> -         the thermal zone device
> -    cdev:
> -         thermal cooling device
> -    trip:
> -         indicates which trip point in this thermal zone the cooling
> device
> -         is associated with.
> -    upper:
> -         the Maximum cooling state for this trip point.
> -         THERMAL_NO_LIMIT means no upper limit,
> -         and the cooling device can be in max_state.
> -    lower:
> -         the Minimum cooling state can be used for this trip point.
> -         THERMAL_NO_LIMIT means no lower limit,
> -         and the cooling device can be in cooling state 0.
> -    weight:
> -         the influence of this cooling device in this thermal
> -         zone.  See 1.4.1 below for more information.
> -
> -    ::
> -
> -       int thermal_zone_unbind_cooling_device(struct
> thermal_zone_device *tz,
> -                               int trip, struct
> thermal_cooling_device *cdev);
> -
> -    This interface function unbinds a thermal cooling device from a
> particular
> -    trip point of a thermal zone device. This function is usually
> called in
> -    the thermal zone device .unbind callback.
> -
> -    tz:
> -       the thermal zone device
> -    cdev:
> -       thermal cooling device
> -    trip:
> -       indicates which trip point in this thermal zone the cooling
> device
> -       is associated with.
> -
>  1.4 Thermal Zone Parameters
>  ---------------------------
>
> @@ -366,8 +315,6 @@ Thermal cooling device sys I/F, created
>
>  Then next two dynamic attributes are created/removed in pairs. They
> represent
>  the relationship between a thermal zone and its associated cooling
> device.
> -They are created/removed for each successful execution of
> -thermal_zone_bind_cooling_device/thermal_zone_unbind_cooling_device.
>
>  ::
>
>
>
>