]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
thermal: core: skip update disabled thermal zones after suspend
authorWei Wang <wvw@google.com>
Tue, 16 Apr 2019 17:07:01 +0000 (10:07 -0700)
committerZhang Rui <rui.zhang@intel.com>
Mon, 6 May 2019 12:35:11 +0000 (20:35 +0800)
It is unnecessary to update disabled thermal zones post suspend and
sometimes leads error/warning in bad behaved thermal drivers.

Signed-off-by: Wei Wang <wvw@google.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
drivers/thermal/thermal_core.c

index b708b66fef943affdb6033c405e312dfcb08b170..a2c0ce65bfa42ea3a680dadff6fcf6317a4e3337 100644 (file)
@@ -1494,6 +1494,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
                             unsigned long mode, void *_unused)
 {
        struct thermal_zone_device *tz;
+       enum thermal_device_mode tz_mode;
 
        switch (mode) {
        case PM_HIBERNATION_PREPARE:
@@ -1506,6 +1507,13 @@ static int thermal_pm_notify(struct notifier_block *nb,
        case PM_POST_SUSPEND:
                atomic_set(&in_suspend, 0);
                list_for_each_entry(tz, &thermal_tz_list, node) {
+                       tz_mode = THERMAL_DEVICE_ENABLED;
+                       if (tz->ops->get_mode)
+                               tz->ops->get_mode(tz, &tz_mode);
+
+                       if (tz_mode == THERMAL_DEVICE_DISABLED)
+                               continue;
+
                        thermal_zone_device_init(tz);
                        thermal_zone_device_update(tz,
                                                   THERMAL_EVENT_UNSPECIFIED);