summaryrefslogtreecommitdiff
path: root/drivers/firmware/qcom_scm-64.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@gmail.com>2017-03-14 18:18:03 +0300
committerAndy Gross <andy.gross@linaro.org>2017-03-29 00:03:21 +0300
commita2c680c6ce386e9ca6cdf362e8b01789126c9bf7 (patch)
tree6506d9c5d25e4a9d25f8075b59c925a755c3ee64 /drivers/firmware/qcom_scm-64.c
parentc1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201 (diff)
downloadlinux-a2c680c6ce386e9ca6cdf362e8b01789126c9bf7.tar.xz
firmware/qcom: add qcom_scm_restore_sec_cfg()
Signed-off-by: Rob Clark <robdclark@gmail.com> Signed-off-by: Andy Gross <andy.gross@linaro.org>
Diffstat (limited to 'drivers/firmware/qcom_scm-64.c')
-rw-r--r--drivers/firmware/qcom_scm-64.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/firmware/qcom_scm-64.c b/drivers/firmware/qcom_scm-64.c
index c9332590e8c6..550e3a34e260 100644
--- a/drivers/firmware/qcom_scm-64.c
+++ b/drivers/firmware/qcom_scm-64.c
@@ -381,3 +381,19 @@ int __qcom_scm_set_remote_state(struct device *dev, u32 state, u32 id)
return ret ? : res.a1;
}
+
+int __qcom_scm_restore_sec_cfg(struct device *dev, u32 device_id, u32 spare)
+{
+ struct qcom_scm_desc desc = {0};
+ struct arm_smccc_res res;
+ int ret;
+
+ desc.args[0] = device_id;
+ desc.args[1] = spare;
+ desc.arginfo = QCOM_SCM_ARGS(2);
+
+ ret = qcom_scm_call(dev, QCOM_SCM_SVC_MP, QCOM_SCM_RESTORE_SEC_CFG,
+ &desc, &res);
+
+ return ret ? : res.a1;
+}