Loading drivers/power/reset/msm-poweroff.c +26 −2 Original line number Diff line number Diff line Loading @@ -214,6 +214,8 @@ static void halt_spmi_pmic_arbiter(void) static void msm_restart_prepare(const char *cmd) { bool need_warm_reset = false; #ifdef CONFIG_MSM_DLOAD_MODE /* Write download mode flags if we're panic'ing Loading @@ -225,18 +227,40 @@ static void msm_restart_prepare(const char *cmd) (in_panic || restart_mode == RESTART_DLOAD)); #endif need_warm_reset = (get_dload_mode() || (cmd != NULL && cmd[0] != '\0')); if (qpnp_pon_check_hard_reset_stored()) { /* Set warm reset as true when device is in dload mode * or device doesn't boot up into recovery, bootloader or rtc. */ if (get_dload_mode() || ((cmd != NULL && cmd[0] != '\0') && strcmp(cmd, "recovery") && strcmp(cmd, "bootloader") && strcmp(cmd, "rtc"))) need_warm_reset = true; } /* Hard reset the PMIC unless memory contents must be maintained. */ if (get_dload_mode() || (cmd != NULL && cmd[0] != '\0')) if (need_warm_reset) { qpnp_pon_system_pwr_off(PON_POWER_OFF_WARM_RESET); else } else { qpnp_pon_system_pwr_off(PON_POWER_OFF_HARD_RESET); } if (cmd != NULL) { if (!strncmp(cmd, "bootloader", 10)) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_BOOTLOADER); __raw_writel(0x77665500, restart_reason); } else if (!strncmp(cmd, "recovery", 8)) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_RECOVERY); __raw_writel(0x77665502, restart_reason); } else if (!strcmp(cmd, "rtc")) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_RTC); __raw_writel(0x77665503, restart_reason); } else if (!strncmp(cmd, "oem-", 4)) { unsigned long code; Loading Loading
drivers/power/reset/msm-poweroff.c +26 −2 Original line number Diff line number Diff line Loading @@ -214,6 +214,8 @@ static void halt_spmi_pmic_arbiter(void) static void msm_restart_prepare(const char *cmd) { bool need_warm_reset = false; #ifdef CONFIG_MSM_DLOAD_MODE /* Write download mode flags if we're panic'ing Loading @@ -225,18 +227,40 @@ static void msm_restart_prepare(const char *cmd) (in_panic || restart_mode == RESTART_DLOAD)); #endif need_warm_reset = (get_dload_mode() || (cmd != NULL && cmd[0] != '\0')); if (qpnp_pon_check_hard_reset_stored()) { /* Set warm reset as true when device is in dload mode * or device doesn't boot up into recovery, bootloader or rtc. */ if (get_dload_mode() || ((cmd != NULL && cmd[0] != '\0') && strcmp(cmd, "recovery") && strcmp(cmd, "bootloader") && strcmp(cmd, "rtc"))) need_warm_reset = true; } /* Hard reset the PMIC unless memory contents must be maintained. */ if (get_dload_mode() || (cmd != NULL && cmd[0] != '\0')) if (need_warm_reset) { qpnp_pon_system_pwr_off(PON_POWER_OFF_WARM_RESET); else } else { qpnp_pon_system_pwr_off(PON_POWER_OFF_HARD_RESET); } if (cmd != NULL) { if (!strncmp(cmd, "bootloader", 10)) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_BOOTLOADER); __raw_writel(0x77665500, restart_reason); } else if (!strncmp(cmd, "recovery", 8)) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_RECOVERY); __raw_writel(0x77665502, restart_reason); } else if (!strcmp(cmd, "rtc")) { qpnp_pon_set_restart_reason( PON_RESTART_REASON_RTC); __raw_writel(0x77665503, restart_reason); } else if (!strncmp(cmd, "oem-", 4)) { unsigned long code; Loading