[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6e99b0d7348a2a31cde0b98e1075c4e907d43fe5.camel@intel.com>
Date: Tue, 20 Aug 2024 07:10:37 +0000
From: "Zhang, Rui" <rui.zhang@...el.com>
To: "linux-pm@...r.kernel.org" <linux-pm@...r.kernel.org>, "rjw@...ysocki.net"
<rjw@...ysocki.net>
CC: "lukasz.luba@....com" <lukasz.luba@....com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"daniel.lezcano@...aro.org" <daniel.lezcano@...aro.org>
Subject: Re: [PATCH v3 13/14] thermal: core: Drop unused bind/unbind functions
and callbacks
On Mon, 2024-08-19 at 18:31 +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.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@...el.com>
Reviewed-by: Zhang Rui <rui.zhang@...el.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.
>
> ::
>
>
>
>
Powered by blists - more mailing lists