summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/qcom
diff options
context:
space:
mode:
authorMukesh Ojha <quic_mojha@quicinc.com>2024-07-15 17:56:55 +0200
committerBjorn Andersson <andersson@kernel.org>2024-08-15 05:14:42 +0200
commitd4d4049e411b246cdfc2df60d8d5a4474019c689 (patch)
tree5587f877c996d1b04231ab8cfb09baf426852a0d /drivers/firmware/qcom
parentfirmware: qcom: scm: Refactor code to support multiple dload mode (diff)
downloadlinux-d4d4049e411b246cdfc2df60d8d5a4474019c689.tar.xz
linux-d4d4049e411b246cdfc2df60d8d5a4474019c689.zip
firmware: qcom: scm: Add multiple download mode support
Currently, scm driver only supports full dump when download mode is selected. Add support to enable minidump as well as enable it along with fulldump. Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> Link: https://lore.kernel.org/r/20240715155655.1811178-2-quic_mojha@quicinc.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'drivers/firmware/qcom')
-rw-r--r--drivers/firmware/qcom/qcom_scm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index ca75d1c7006f..bdb5e98b82ef 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -126,6 +126,8 @@ static const u8 qcom_scm_cpu_warm_bits[QCOM_SCM_BOOT_MAX_CPUS] = {
#define QCOM_DLOAD_MASK GENMASK(5, 4)
#define QCOM_DLOAD_NODUMP 0
#define QCOM_DLOAD_FULLDUMP 1
+#define QCOM_DLOAD_MINIDUMP 2
+#define QCOM_DLOAD_BOTHDUMP 3
static const char * const qcom_scm_convention_names[] = {
[SMC_CONVENTION_UNKNOWN] = "unknown",
@@ -137,6 +139,8 @@ static const char * const qcom_scm_convention_names[] = {
static const char * const download_mode_name[] = {
[QCOM_DLOAD_NODUMP] = "off",
[QCOM_DLOAD_FULLDUMP] = "full",
+ [QCOM_DLOAD_MINIDUMP] = "mini",
+ [QCOM_DLOAD_BOTHDUMP] = "full,mini",
};
static struct qcom_scm *__scm;
@@ -1928,8 +1932,7 @@ static const struct kernel_param_ops download_mode_param_ops = {
};
module_param_cb(download_mode, &download_mode_param_ops, NULL, 0644);
-MODULE_PARM_DESC(download_mode,
- "download mode: off/0/N for no dump mode, full/on/1/Y for full dump mode");
+MODULE_PARM_DESC(download_mode, "download mode: off/0/N for no dump mode, full/on/1/Y for full dump mode, mini for minidump mode and full,mini for both full and minidump mode together are acceptable values");
static int qcom_scm_probe(struct platform_device *pdev)
{