diff mbox series

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

Message ID 4251116.1IzOArtZ34@rjwysocki.net
State New
Headers show
Series thermal: Rework binding cooling devices to trip points | expand

Commit Message

Rafael J. Wysocki Aug. 19, 2024, 4:31 p.m. UTC
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>
---

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(-)

Comments

Zhang, Rui Aug. 20, 2024, 7:10 a.m. UTC | #1
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.
>  
>  ::
>  
> 
> 
>
lihuisong (C) Aug. 21, 2024, 9:33 a.m. UTC | #2
在 2024/8/20 0:31, Rafael J. Wysocki 写道:
> 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>
> ---
lgtm,
Acked-by: Huisong Li <lihuisong@huawei.com>
>
>
>
>
> .
Daniel Lezcano Aug. 21, 2024, 2:24 p.m. UTC | #3
On 19/08/2024 18:31, 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: Daniel Lezcano <daniel.lezcano@linaro.org>
diff mbox series

Patch

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.
 
 ::