MIPS: Loongson: Reduce possible loop times and add log in do_thermal_timer()
authorTiezhu Yang <yangtiezhu@loongson.cn>
Thu, 9 Jul 2020 03:55:20 +0000 (11:55 +0800)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Thu, 16 Jul 2020 08:49:36 +0000 (10:49 +0200)
Once the temperature of any CPUs is too high, it can power off immediately,
no need to check the rest of CPUs, and it is better to print a log before
power off, this is useful when analysis the abnormal issues.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Zhi Li <lizhi01@loongson.cn>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
drivers/platform/mips/cpu_hwmon.c

index fa42b13..c9f35e5 100644 (file)
@@ -153,18 +153,17 @@ static struct delayed_work thermal_work;
 
 static void do_thermal_timer(struct work_struct *work)
 {
-       int i, value, temp_max = 0;
+       int i, value;
 
        for (i = 0; i < nr_packages; i++) {
                value = loongson3_cpu_temp(i);
-               if (value > temp_max)
-                       temp_max = value;
+               if (value > CPU_THERMAL_THRESHOLD) {
+                       pr_emerg("Power off due to high temp: %d\n", value);
+                       orderly_poweroff(true);
+               }
        }
 
-       if (temp_max <= CPU_THERMAL_THRESHOLD)
-               schedule_delayed_work(&thermal_work, msecs_to_jiffies(5000));
-       else
-               orderly_poweroff(true);
+       schedule_delayed_work(&thermal_work, msecs_to_jiffies(5000));
 }
 
 static int __init loongson_hwmon_init(void)