diff options
author | Alex Elder <elder@linaro.org> | 2014-04-21 23:53:09 +0200 |
---|---|---|
committer | Matt Porter <mporter@linaro.org> | 2014-04-25 14:51:36 +0200 |
commit | 8b9c550e37ff4e4d0de2890a835f44a7813e3423 (patch) | |
tree | 07e846ee9fb1c09b820e67825558d6e107440044 /arch/arm/mach-bcm/bcm_kona_smc.h | |
parent | ARM: bcm: tidy up a few includes (diff) | |
download | linux-8b9c550e37ff4e4d0de2890a835f44a7813e3423.tar.xz linux-8b9c550e37ff4e4d0de2890a835f44a7813e3423.zip |
ARM: bcm: use inline assembly for "smc" request
Move the code that implements the "smc" call into a C function that
uses inline assembly. This allows us to make that function private,
and enables us to get rid of "arch/arm/mach-bcm/bcm_kona_smc_asm.S".
Rename what had been the "buffer_addr" argument to be "buffer_phys"
so it's consistent with other usage in this file.
Since it's now easy to do, verify that r12 contains SEC_EXIT_NORMAL
upon completion of the SMC. There really isn't a good way to handle
the abnormal completion of a secure monitor request.
Since "bcm_kona_smc.h" is now only included from C files, eliminate
the #ifndef __ASSEMBLY__.
Signed-off-by: Alex Elder <elder@linaro.org>
Reviewed-by: Tim Kryger <tim.kryger@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Matt Porter <mporter@linaro.org>
Signed-off-by: Matt Porter <mporter@linaro.org>
Diffstat (limited to 'arch/arm/mach-bcm/bcm_kona_smc.h')
-rw-r--r-- | arch/arm/mach-bcm/bcm_kona_smc.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/arm/mach-bcm/bcm_kona_smc.h b/arch/arm/mach-bcm/bcm_kona_smc.h index 629e64a89982..2e29ec67e414 100644 --- a/arch/arm/mach-bcm/bcm_kona_smc.h +++ b/arch/arm/mach-bcm/bcm_kona_smc.h @@ -21,7 +21,6 @@ #define SEC_ROM_RET_OK 0x00000001 #define SEC_EXIT_NORMAL 0x1 -#ifndef __ASSEMBLY__ extern int __init bcm_kona_smc_init(void); extern unsigned bcm_kona_smc(unsigned service_id, @@ -30,9 +29,4 @@ extern unsigned bcm_kona_smc(unsigned service_id, unsigned arg2, unsigned arg3); -extern int bcm_kona_smc_asm(u32 service_id, - u32 buffer_addr); - -#endif /* __ASSEMBLY__ */ - #endif /* BCM_KONA_SMC_H */ |