thermal: gov_user_space: Use .trip_crossed() instead of .throttle()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 10 Apr 2024 17:03:10 +0000 (19:03 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 24 Apr 2024 18:42:10 +0000 (20:42 +0200)
Notifying user space about trip points that have not been crossed is
not particularly useful, so modify the User Space governor to use the
.trip_crossed() callback, which is only invoked for trips that have been
crossed, instead of .throttle() that is invoked for all trips in a
thermal zone every time the zone is updated.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/gov_user_space.c

index 7a1790b7e8f5570a8655d193edde14c06bf02d32..75137b419eb239b20033e9f913340aa8c05b0236 100644 (file)
@@ -26,11 +26,13 @@ static int user_space_bind(struct thermal_zone_device *tz)
  * notify_user_space - Notifies user space about thermal events
  * @tz: thermal_zone_device
  * @trip: trip point
+ * @crossed_up: whether or not the trip has been crossed on the way up
  *
  * This function notifies the user space through UEvents.
  */
-static int notify_user_space(struct thermal_zone_device *tz,
-                            const struct thermal_trip *trip)
+static void notify_user_space(struct thermal_zone_device *tz,
+                             const struct thermal_trip *trip,
+                             bool crossed_up)
 {
        char *thermal_prop[5];
        int i;
@@ -46,13 +48,11 @@ static int notify_user_space(struct thermal_zone_device *tz,
        kobject_uevent_env(&tz->device.kobj, KOBJ_CHANGE, thermal_prop);
        for (i = 0; i < 4; ++i)
                kfree(thermal_prop[i]);
-
-       return 0;
 }
 
 static struct thermal_governor thermal_gov_user_space = {
        .name           = "user_space",
-       .throttle       = notify_user_space,
+       .trip_crossed   = notify_user_space,
        .bind_to_tz     = user_space_bind,
 };
 THERMAL_GOVERNOR_DECLARE(thermal_gov_user_space);