drivers/thermal/thermal_core.c | 2 +- drivers/thermal/thermal_trip.c | 22 +++------------------- include/linux/thermal.h | 4 ---- 3 files changed, 4 insertions(+), 24 deletions(-)
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
After recent changes in the ACPI thermal driver and in the Intel DTS
IOSF thermal driver, all thermal zone drivers are expected to use trip
tables for initialization and none of them should implement
.get_trip_type(), .get_trip_temp() or .get_trip_hyst() callbacks, so
drop these callbacks entirely from the core.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/thermal/thermal_core.c | 2 +-
drivers/thermal/thermal_trip.c | 22 +++-------------------
include/linux/thermal.h | 4 ----
3 files changed, 4 insertions(+), 24 deletions(-)
Index: linux-pm/include/linux/thermal.h
===================================================================
--- linux-pm.orig/include/linux/thermal.h
+++ linux-pm/include/linux/thermal.h
@@ -76,11 +76,7 @@ struct thermal_zone_device_ops {
int (*set_trips) (struct thermal_zone_device *, int, int);
int (*change_mode) (struct thermal_zone_device *,
enum thermal_device_mode);
- int (*get_trip_type) (struct thermal_zone_device *, int,
- enum thermal_trip_type *);
- int (*get_trip_temp) (struct thermal_zone_device *, int, int *);
int (*set_trip_temp) (struct thermal_zone_device *, int, int);
- int (*get_trip_hyst) (struct thermal_zone_device *, int, int *);
int (*set_trip_hyst) (struct thermal_zone_device *, int, int);
int (*get_crit_temp) (struct thermal_zone_device *, int *);
int (*set_emul_temp) (struct thermal_zone_device *, int);
Index: linux-pm/drivers/thermal/thermal_trip.c
===================================================================
--- linux-pm.orig/drivers/thermal/thermal_trip.c
+++ linux-pm/drivers/thermal/thermal_trip.c
@@ -118,27 +118,11 @@ int __thermal_zone_get_trip(struct therm
{
int ret;
- if (!tz || trip_id < 0 || trip_id >= tz->num_trips || !trip)
+ if (!tz || !tz->trips || trip_id < 0 || trip_id >= tz->num_trips || !trip)
return -EINVAL;
- if (tz->trips) {
- *trip = tz->trips[trip_id];
- return 0;
- }
-
- if (tz->ops->get_trip_hyst) {
- ret = tz->ops->get_trip_hyst(tz, trip_id, &trip->hysteresis);
- if (ret)
- return ret;
- } else {
- trip->hysteresis = 0;
- }
-
- ret = tz->ops->get_trip_temp(tz, trip_id, &trip->temperature);
- if (ret)
- return ret;
-
- return tz->ops->get_trip_type(tz, trip_id, &trip->type);
+ *trip = tz->trips[trip_id];
+ return 0;
}
EXPORT_SYMBOL_GPL(__thermal_zone_get_trip);
Index: linux-pm/drivers/thermal/thermal_core.c
===================================================================
--- linux-pm.orig/drivers/thermal/thermal_core.c
+++ linux-pm/drivers/thermal/thermal_core.c
@@ -1266,7 +1266,7 @@ thermal_zone_device_register_with_trips(
return ERR_PTR(-EINVAL);
}
- if (num_trips > 0 && (!ops->get_trip_type || !ops->get_trip_temp) && !trips)
+ if (num_trips > 0 && !trips)
return ERR_PTR(-EINVAL);
if (!thermal_class)
On Fri, Aug 25, 2023 at 6:17 PM Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
>
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> After recent changes in the ACPI thermal driver and in the Intel DTS
> IOSF thermal driver, all thermal zone drivers are expected to use trip
> tables for initialization and none of them should implement
> .get_trip_type(), .get_trip_temp() or .get_trip_hyst() callbacks, so
> drop these callbacks entirely from the core.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
> drivers/thermal/thermal_core.c | 2 +-
> drivers/thermal/thermal_trip.c | 22 +++-------------------
> include/linux/thermal.h | 4 ----
> 3 files changed, 4 insertions(+), 24 deletions(-)
>
> Index: linux-pm/include/linux/thermal.h
> ===================================================================
> --- linux-pm.orig/include/linux/thermal.h
> +++ linux-pm/include/linux/thermal.h
> @@ -76,11 +76,7 @@ struct thermal_zone_device_ops {
> int (*set_trips) (struct thermal_zone_device *, int, int);
> int (*change_mode) (struct thermal_zone_device *,
> enum thermal_device_mode);
> - int (*get_trip_type) (struct thermal_zone_device *, int,
> - enum thermal_trip_type *);
> - int (*get_trip_temp) (struct thermal_zone_device *, int, int *);
> int (*set_trip_temp) (struct thermal_zone_device *, int, int);
> - int (*get_trip_hyst) (struct thermal_zone_device *, int, int *);
> int (*set_trip_hyst) (struct thermal_zone_device *, int, int);
> int (*get_crit_temp) (struct thermal_zone_device *, int *);
> int (*set_emul_temp) (struct thermal_zone_device *, int);
> Index: linux-pm/drivers/thermal/thermal_trip.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/thermal_trip.c
> +++ linux-pm/drivers/thermal/thermal_trip.c
> @@ -118,27 +118,11 @@ int __thermal_zone_get_trip(struct therm
> {
> int ret;
The above needs to be dropped from this function too, but I'll fix it
up when applying the patch.
Hopefully, that will be fine with everyone.
>
> - if (!tz || trip_id < 0 || trip_id >= tz->num_trips || !trip)
> + if (!tz || !tz->trips || trip_id < 0 || trip_id >= tz->num_trips || !trip)
> return -EINVAL;
>
> - if (tz->trips) {
> - *trip = tz->trips[trip_id];
> - return 0;
> - }
> -
> - if (tz->ops->get_trip_hyst) {
> - ret = tz->ops->get_trip_hyst(tz, trip_id, &trip->hysteresis);
> - if (ret)
> - return ret;
> - } else {
> - trip->hysteresis = 0;
> - }
> -
> - ret = tz->ops->get_trip_temp(tz, trip_id, &trip->temperature);
> - if (ret)
> - return ret;
> -
> - return tz->ops->get_trip_type(tz, trip_id, &trip->type);
> + *trip = tz->trips[trip_id];
> + return 0;
> }
> EXPORT_SYMBOL_GPL(__thermal_zone_get_trip);
>
> Index: linux-pm/drivers/thermal/thermal_core.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/thermal_core.c
> +++ linux-pm/drivers/thermal/thermal_core.c
> @@ -1266,7 +1266,7 @@ thermal_zone_device_register_with_trips(
> return ERR_PTR(-EINVAL);
> }
>
> - if (num_trips > 0 && (!ops->get_trip_type || !ops->get_trip_temp) && !trips)
> + if (num_trips > 0 && !trips)
> return ERR_PTR(-EINVAL);
>
> if (!thermal_class)
>
>
>
© 2016 - 2025 Red Hat, Inc.