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

thermal: core: Move some trip processing to thermal_trip_crossed()



Notice that some processing related to trip point crossing carried out
in handle_thermal_trip() and thermal_zone_set_trip_temp() may as well
be done in thermal_trip_crossed(), which allows code duplication to be
reduced, so change the code accordingly.

No intentional 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/1982859.PYKUYFuaPT@rjwysocki.net
parent db0a46b6
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -460,11 +460,6 @@ static void handle_thermal_trip(struct thermal_zone_device *tz,
		if (tz->temperature < trip->temperature - trip->hysteresis) {
			td->notify_temp = trip->temperature - trip->hysteresis;
			move_trip_to_sorted_list(td, way_down_list);

			if (trip->type == THERMAL_TRIP_PASSIVE) {
				tz->passive--;
				WARN_ON(tz->passive < 0);
			}
		} else {
			td->threshold -= trip->hysteresis;
		}
@@ -478,12 +473,6 @@ static void handle_thermal_trip(struct thermal_zone_device *tz,
		move_trip_to_sorted_list(td, way_up_list);

		td->threshold -= trip->hysteresis;

		if (trip->type == THERMAL_TRIP_PASSIVE)
			tz->passive++;
		else if (trip->type == THERMAL_TRIP_CRITICAL ||
			 trip->type == THERMAL_TRIP_HOT)
			handle_critical_trips(tz, trip);
	}
}

@@ -533,9 +522,19 @@ static void thermal_trip_crossed(struct thermal_zone_device *tz,
	const struct thermal_trip *trip = &td->trip;

	if (crossed_up) {
		if (trip->type == THERMAL_TRIP_PASSIVE)
			tz->passive++;
		else if (trip->type == THERMAL_TRIP_CRITICAL ||
			 trip->type == THERMAL_TRIP_HOT)
			handle_critical_trips(tz, trip);

		thermal_notify_tz_trip_up(tz, trip);
		thermal_debug_tz_trip_up(tz, trip);
	} else {
		if (trip->type == THERMAL_TRIP_PASSIVE) {
			tz->passive--;
			WARN_ON(tz->passive < 0);
		}
		thermal_notify_tz_trip_down(tz, trip);
		thermal_debug_tz_trip_down(tz, trip);
	}
+6 −11
Original line number Diff line number Diff line
@@ -108,18 +108,13 @@ void thermal_zone_set_trip_temp(struct thermal_zone_device *tz,
	if (temp == THERMAL_TEMP_INVALID) {
		struct thermal_trip_desc *td = trip_to_trip_desc(trip);

		if (tz->temperature >= td->threshold) {
		/*
			 * The trip has been crossed on the way up, so some
			 * adjustments are needed to compensate for the lack
			 * of it going forward.
		 * If the trip has been crossed on the way up, some adjustments
		 * are needed to compensate for the lack of it going forward.
		 */
			if (trip->type == THERMAL_TRIP_PASSIVE) {
				tz->passive--;
				WARN_ON_ONCE(tz->passive < 0);
			}
		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.