diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/power/reset/Kconfig | 9 | ||||
| -rw-r--r-- | drivers/power/reset/msm-poweroff.c | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index db933765d38d..7008160eb079 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -94,6 +94,15 @@ config MSM_DLOAD_MODE make the kernel reboot on a kernel panic - that must be enabled via another mechanism. +config MSM_PRESERVE_MEM + bool "Always preserve memory on restart" + depends on POWER_RESET_MSM + help + If crash to download mode is disabled and restart reason is null + the system will always perform a hard reset, which wipes out + persistent memory contents. Select this option to always perform + a soft reset that preserves memory contents. + config POWER_RESET_QNAP bool "QNAP power-off driver" depends on OF_GPIO && PLAT_ORION diff --git a/drivers/power/reset/msm-poweroff.c b/drivers/power/reset/msm-poweroff.c index b10dc24730ac..7e04e78a35f5 100644 --- a/drivers/power/reset/msm-poweroff.c +++ b/drivers/power/reset/msm-poweroff.c @@ -291,6 +291,10 @@ static void msm_restart_prepare(const char *cmd) strcmp(cmd, "userrequested"))); } +#ifdef CONFIG_MSM_PRESERVE_MEM + need_warm_reset = true; +#endif + /* Hard reset the PMIC unless memory contents must be maintained. */ if (need_warm_reset) { qpnp_pon_system_pwr_off(PON_POWER_OFF_WARM_RESET); |
