OSDN Git Service

Allow to disable offlining of non-boot CPUs nougat-x86 oreo-x86 pie-x86 q-x86 r-x86 s-x86 android-x86-7.1-r3 android-x86-7.1-r4 android-x86-7.1-r5 android-x86-8.1-r2 android-x86-8.1-r3 android-x86-8.1-r4 android-x86-8.1-r5 android-x86-8.1-r6 android-x86-9.0-r1 android-x86-9.0-r2
authorValentin Manea <valentin.manea@gmail.com>
Fri, 12 Apr 2019 08:31:45 +0000 (16:31 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Fri, 12 Apr 2019 08:31:45 +0000 (16:31 +0800)
On my Cherrytrail tablet I've been trying to achieve the S0Ix deep sleep
states. After a bit of twiddling I found out that I can achieve the deep
sleep states but I need to disable the power off of the secondary cores
otherwise the resume from sleep causes the device to crash.

The patch uses a property to determine whether to power off the non-boot
CPUs on sleeping.

power.c

diff --git a/power.c b/power.c
index cd284d5..7d2a4ac 100644 (file)
--- a/power.c
+++ b/power.c
@@ -74,7 +74,9 @@ static void power_set_interactive(struct power_module *module UNUSED, int on)
         }
     }
 
-    set_nonboot_cpu_state(on ? CPU_ONLINE : CPU_OFFLINE);
+    if (property_get_bool("power.nonboot-cpu-off", 1)) {
+        set_nonboot_cpu_state(on ? CPU_ONLINE : CPU_OFFLINE);
+    }
 }
 
 static void power_hint(struct power_module *module UNUSED, power_hint_t hint, void *data UNUSED)