From: Eduardo Valentin <eduval@xxxxxxxxxx> This callback is used to notify the governors that reboot is coming up. Upon this event, this callback gives governors the opportunity to leave the thermal zones in a sane state prior to reboot. Cc: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> (supporter:THERMAL) Cc: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> (supporter:THERMAL) Cc: Amit Kucheria <amitk@xxxxxxxxxx> (reviewer:THERMAL) Cc: Zhang Rui <rui.zhang@xxxxxxxxx> (reviewer:THERMAL) Cc: Jonathan Corbet <corbet@xxxxxxx> (maintainer:DOCUMENTATION) Cc: linux-pm@xxxxxxxxxxxxxxx (open list:THERMAL) Cc: linux-doc@xxxxxxxxxxxxxxx (open list:DOCUMENTATION) Cc: linux-kernel@xxxxxxxxxxxxxxx (open list) Signed-off-by: Eduardo Valentin <eduval@xxxxxxxxxx> --- include/linux/thermal.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 82c8e09a63e0..d3c8af928522 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -201,6 +201,9 @@ struct thermal_zone_device { * below the trip point temperature * @check_error: callback called whenever temperature updates fail. * Opportunity for the governor to react on errors. + * @reboot_prepare: callback called upon system restart. + * Opportunity for the governor to tear down zones or at least + * leave them in a safe state. * @governor_list: node in thermal_governor_list (in thermal_core.c) */ struct thermal_governor { @@ -209,6 +212,7 @@ struct thermal_governor { void (*unbind_from_tz)(struct thermal_zone_device *tz); int (*throttle)(struct thermal_zone_device *tz, int trip); void (*check_error)(struct thermal_zone_device *tz, int error); + void (*reboot_prepare)(struct thermal_zone_device *tz); struct list_head governor_list; }; -- 2.34.1