diff options
author | Stephen Boyd <sboyd@codeaurora.org> | 2014-08-04 18:31:46 -0700 |
---|---|---|
committer | Andrey Konovalov <andrey.konovalov@linaro.org> | 2015-01-13 17:56:50 +0300 |
commit | 772612ab8d214e90bf8ae9f35f5350bf1d19344b (patch) | |
tree | 11894dbbee386b4697f1f2d1c60b90ad7fc44793 /include | |
parent | a8126d7b9cf66f9bb14f577c21d209121c1a9e1f (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.h | 5 |
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); |