]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
thermal: core: Move some trip processing to thermal_trip_crossed()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 16 Oct 2024 11:29:14 +0000 (13:29 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 24 Oct 2024 15:15:07 +0000 (17:15 +0200)
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: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/1982859.PYKUYFuaPT@rjwysocki.net
drivers/thermal/thermal_core.c
drivers/thermal/thermal_trip.c

index c8144a6bb001176f1f4c79557a0722a7e045e036..277076658ccdcda5495e03b250ac85f391c45a80 100644 (file)
@@ -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);
        }
index 37db75fb959fee25c3177a62e89845ec85017e03..5cafea8dc8040ea218a577ac0a3a3a5786bb8d8a 100644 (file)
@@ -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 (trip->type == THERMAL_TRIP_PASSIVE) {
-                               tz->passive--;
-                               WARN_ON_ONCE(tz->passive < 0);
-                       }
+               /*
+                * 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.