From c7cfe23876cad22565a24a7d613dc20f8189969e Mon Sep 17 00:00:00 2001 From: Khaja Hussain Shaik Khaji Date: Wed, 12 Jun 2024 15:29:45 +0530 Subject: [PATCH] power: reset: qcom-dload-mode: support for nodump mode In case of unexpected warm-restart, device will go into special download modes. Add support to not go into download modes i.e., nodump mode. Change-Id: Ica5f1b22a648458b151a8ae696e97aad83b7fc6c Signed-off-by: Khaja Hussain Shaik Khaji --- drivers/power/reset/Kconfig | 10 ++++++++++ drivers/power/reset/qcom-dload-mode.c | 11 +++++++++++ 2 files changed, 21 insertions(+) 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");