aboutsummaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/init_msm8996.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/init/init_msm8996.cpp b/init/init_msm8996.cpp
index 11bf5e4..5b3fa46 100644
--- a/init/init_msm8996.cpp
+++ b/init/init_msm8996.cpp
@@ -47,10 +47,13 @@ char const *heapmaxfree;
static void init_alarm_boot_properties()
{
char const *boot_reason_file = "/proc/sys/kernel/boot_reason";
+ char const *power_off_alarm_file = "/persist/alarm/powerOffAlarmSet";
std::string boot_reason;
+ std::string power_off_alarm;
std::string reboot_reason = property_get("ro.boot.alarmboot");
- if (read_file(boot_reason_file, &boot_reason)) {
+ if (read_file(boot_reason_file, &boot_reason)
+ && read_file(power_off_alarm_file, &power_off_alarm)) {
/*
* Setup ro.alarm_boot value to true when it is RTC triggered boot up
* For existing PMIC chips, the following mapping applies
@@ -66,7 +69,8 @@ static void init_alarm_boot_properties()
* 7 -> CBLPWR_N pin toggled (for external power supply)
* 8 -> KPDPWR_N pin toggled (power key pressed)
*/
- if (Trim(boot_reason) == "3" || reboot_reason == "true") {
+ if ((Trim(boot_reason) == "3" || reboot_reason == "true")
+ && Trim(power_off_alarm) == "1") {
property_set("ro.alarm_boot", "true");
} else {
property_set("ro.alarm_boot", "false");