]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
thermal: core: Connect the threshold with the core
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 23 Sep 2024 09:59:58 +0000 (11:59 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 10 Oct 2024 21:33:37 +0000 (23:33 +0200)
Initialize, de-initialize and handle the threshold in the same place
than the trip points.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://patch.msgid.link/20240923100005.2532430-3-daniel.lezcano@linaro.org
[ rjw: Subject edit ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/thermal_core.c

index 8f03985f971c3058dc1ed6018d8d3dea86b733bc..1e87256e86bef4ecbdffd0a12cc14301c82088af 100644 (file)
@@ -585,6 +585,8 @@ void __thermal_zone_device_update(struct thermal_zone_device *tz,
                        high = td->threshold;
        }
 
+       thermal_thresholds_handle(tz, &low, &high);
+
        thermal_zone_set_trips(tz, low, high);
 
        list_sort(NULL, &way_up_list, thermal_trip_notify_cmp);
@@ -1491,6 +1493,10 @@ thermal_zone_device_register_with_trips(const char *type,
                        goto unregister;
        }
 
+       result = thermal_thresholds_init(tz);
+       if (result)
+               goto remove_hwmon;
+
        mutex_lock(&thermal_list_lock);
 
        mutex_lock(&tz->lock);
@@ -1514,6 +1520,8 @@ thermal_zone_device_register_with_trips(const char *type,
 
        return tz;
 
+remove_hwmon:
+       thermal_remove_hwmon_sysfs(tz);
 unregister:
        device_del(&tz->device);
 release_device:
@@ -1601,6 +1609,7 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz)
 
        thermal_set_governor(tz, NULL);
 
+       thermal_thresholds_exit(tz);
        thermal_remove_hwmon_sysfs(tz);
        ida_free(&thermal_tz_ida, tz->id);
        ida_destroy(&tz->ida);