Commit 85ee9449 authored by Daniel Lezcano's avatar Daniel Lezcano Committed by Rafael J. Wysocki
Browse files

thermal: core: Connect the threshold with the core



Initialize, de-initialize and handle the threshold in the same place
than the trip points.

Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
Link: https://patch.msgid.link/20240923100005.2532430-3-daniel.lezcano@linaro.org


[ rjw: Subject edit ]
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 445936f9
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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);