aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2014-08-04 18:31:46 -0700
committerAndrey Konovalov <andrey.konovalov@linaro.org>2015-01-13 17:56:50 +0300
commit772612ab8d214e90bf8ae9f35f5350bf1d19344b (patch)
tree11894dbbee386b4697f1f2d1c60b90ad7fc44793 /include
parenta8126d7b9cf66f9bb14f577c21d209121c1a9e1f (diff)
ARM: qcom: scm: Add atomic SCM APIs
The atomic SCM APIs are useful for commands that are guaranteed by the secure side to be uninterruptable, atomic and SMP safe. The calling convention use registers for passing parameters and return values between the secure and non-secure side. Support this interface with scm_call_atomic[1-2]() functions corresponding to the number of arguments passed. Signed-off-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Kumar Gala <galak@codeaurora.org>
Diffstat (limited to 'include')
-rw-r--r--include/soc/qcom/scm.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/soc/qcom/scm.h b/include/soc/qcom/scm.h
index 00b31ea58f29..1f0f0180e767 100644
--- a/include/soc/qcom/scm.h
+++ b/include/soc/qcom/scm.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010, Code Aurora Forum. All rights reserved.
+/* Copyright (c) 2010-2014, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -18,6 +18,9 @@
extern int scm_call(u32 svc_id, u32 cmd_id, const void *cmd_buf, size_t cmd_len,
void *resp_buf, size_t resp_len);
+extern s32 scm_call_atomic1(u32 svc, u32 cmd, u32 arg1);
+extern s32 scm_call_atomic2(u32 svc, u32 cmd, u32 arg1, u32 arg2);
+
#define SCM_VERSION(major, minor) (((major) << 16) | ((minor) & 0xFF))
extern u32 scm_get_version(void);