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

Rafael J. Wysocki
2024-08-19T16:33:41Z

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

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.