Commit e654a0c5 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

thermal: core: Relocate functions that update trip points



In preparation for subsequent changes, move two functions used
for updating trip points, thermal_zone_set_trip_temp() and
thermal_zone_set_trip_hyst(), to thermal_core.c.

No functional impact.

Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: default avatarLukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/3248558.5fSG56mABF@rjwysocki.net
parent 72fb849f
Loading
Loading
Loading
Loading
+35 −0
Original line number Diff line number Diff line
@@ -541,6 +541,41 @@ static void thermal_trip_crossed(struct thermal_zone_device *tz,
	thermal_governor_trip_crossed(governor, tz, trip, crossed_up);
}

void thermal_zone_set_trip_hyst(struct thermal_zone_device *tz,
				struct thermal_trip *trip, int hyst)
{
	WRITE_ONCE(trip->hysteresis, hyst);
	thermal_notify_tz_trip_change(tz, trip);
}

void thermal_zone_set_trip_temp(struct thermal_zone_device *tz,
				struct thermal_trip *trip, int temp)
{
	if (trip->temperature == temp)
		return;

	WRITE_ONCE(trip->temperature, temp);
	thermal_notify_tz_trip_change(tz, trip);

	if (temp == THERMAL_TEMP_INVALID) {
		struct thermal_trip_desc *td = trip_to_trip_desc(trip);

		/*
		 * If the trip has been crossed on the way up, some adjustments
		 * are needed to compensate for the lack of it going forward.
		 */
		if (tz->temperature >= td->threshold)
			thermal_zone_trip_down(tz, td);

		/*
		 * Invalidate the threshold to avoid triggering a spurious
		 * trip crossing notification when the trip becomes valid.
		 */
		td->threshold = INT_MAX;
	}
}
EXPORT_SYMBOL_GPL(thermal_zone_set_trip_temp);

void __thermal_zone_device_update(struct thermal_zone_device *tz,
				  enum thermal_notify_event event)
{
+0 −35
Original line number Diff line number Diff line
@@ -88,38 +88,3 @@ int thermal_zone_trip_id(const struct thermal_zone_device *tz,
	 */
	return trip_to_trip_desc(trip) - tz->trips;
}

void thermal_zone_set_trip_hyst(struct thermal_zone_device *tz,
				struct thermal_trip *trip, int hyst)
{
	WRITE_ONCE(trip->hysteresis, hyst);
	thermal_notify_tz_trip_change(tz, trip);
}

void thermal_zone_set_trip_temp(struct thermal_zone_device *tz,
				struct thermal_trip *trip, int temp)
{
	if (trip->temperature == temp)
		return;

	WRITE_ONCE(trip->temperature, temp);
	thermal_notify_tz_trip_change(tz, trip);

	if (temp == THERMAL_TEMP_INVALID) {
		struct thermal_trip_desc *td = trip_to_trip_desc(trip);

		/*
		 * If the trip has been crossed on the way up, some adjustments
		 * are needed to compensate for the lack of it going forward.
		 */
		if (tz->temperature >= td->threshold)
			thermal_zone_trip_down(tz, td);

		/*
		 * Invalidate the threshold to avoid triggering a spurious
		 * trip crossing notification when the trip becomes valid.
		 */
		td->threshold = INT_MAX;
	}
}
EXPORT_SYMBOL_GPL(thermal_zone_set_trip_temp);