aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorEthan Chen <intervigil@gmail.com>2015-02-27 18:31:48 -0800
committerMichael Bestas <mkbestas@lineageos.org>2018-06-24 15:59:33 +0300
commit7a4e63dd9ae137c578df264f52e9e6a61dcf99a5 (patch)
treef3ce5bd1c1b4f0e98f287011631339f9bd74ff41 /drivers
parent9a53e9cf76f3040adb9265629d2565102f05d7a3 (diff)
power: reset: Allow device to preserve memory on restartHEADo8.1
* Always perform a soft reset as this preserves memory contents, including pstore and other persistent memory. Change-Id: Ic9744a0bb4e3ddb2905331ca23c55bbfbb453133
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/reset/Kconfig9
-rw-r--r--drivers/power/reset/msm-poweroff.c4
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);