Message ID | 4251116.1IzOArtZ34@rjwysocki.net (mailing list archive) |
---|---|
State | Mainlined, archived |
Headers | show |
Series | thermal: Rework binding cooling devices to trip points | expand |
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. > > :: > > > >
在 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> > > > > > .
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>
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. ::