diff --git a/drivers/power/reset/Kconfig b/drivers/power/reset/Kconfig index 83e6cc9dbd0d..5955c9307e9e 100644 --- a/drivers/power/reset/Kconfig +++ b/drivers/power/reset/Kconfig @@ -132,6 +132,16 @@ config POWER_RESET_QCOM_DOWNLOAD_MODE_DEFAULT Say Y here to enable "download mode" by default. +config POWER_RESET_QCOM_DOWNLOAD_MODE_NODUMP + bool "MSM download mode as nodump" + depends on POWER_RESET_QCOM_DOWNLOAD_MODE + help + Support MSM boards to be able to set nodump as download mode, + when unexpected warm-restart is called, so that device will + not go into ramdump path. + + Say N if not sure. + config POWER_RESET_QCOM_PON tristate "Qualcomm power-on driver" depends on ARCH_QCOM diff --git a/drivers/power/reset/qcom-dload-mode.c b/drivers/power/reset/qcom-dload-mode.c index ec181d36f373..e0e966a1d7f0 100644 --- a/drivers/power/reset/qcom-dload-mode.c +++ b/drivers/power/reset/qcom-dload-mode.c @@ -203,6 +203,11 @@ static ssize_t dload_mode_show(struct kobject *kobj, case QCOM_DOWNLOAD_BOTHDUMP: mode = "both"; break; +#ifdef CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_NODUMP + case QCOM_DOWNLOAD_NODUMP: + mode = "nodump"; + break; +#endif default: mode = "unknown"; break; @@ -221,6 +226,12 @@ static ssize_t dload_mode_store(struct kobject *kobj, mode = QCOM_DOWNLOAD_MINIDUMP; else if (sysfs_streq(buf, "both")) mode = QCOM_DOWNLOAD_BOTHDUMP; +#ifdef CONFIG_POWER_RESET_QCOM_DOWNLOAD_MODE_NODUMP + else if (sysfs_streq(buf, "nodump")) { + mode = QCOM_DOWNLOAD_NODUMP; + qcom_scm_disable_sdi(); + } +#endif else { pr_err("Invalid dump mode request...\n"); pr_err("Supported dumps: 'full', 'mini', or 'both'\n");