Merge "qcom: scm: Support register r6 to pass the session id"
This commit is contained in:
commit
3a216b65d0
1 changed files with 4 additions and 1 deletions
|
@ -134,6 +134,7 @@ struct scm_response {
|
||||||
#define R3_STR "r3"
|
#define R3_STR "r3"
|
||||||
#define R4_STR "r4"
|
#define R4_STR "r4"
|
||||||
#define R5_STR "r5"
|
#define R5_STR "r5"
|
||||||
|
#define R6_STR "r6"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -481,6 +482,7 @@ static int __scm_call_armv8_32(u32 w0, u32 w1, u32 w2, u32 w3, u32 w4, u32 w5,
|
||||||
register u32 r3 asm("r3") = w3;
|
register u32 r3 asm("r3") = w3;
|
||||||
register u32 r4 asm("r4") = w4;
|
register u32 r4 asm("r4") = w4;
|
||||||
register u32 r5 asm("r5") = w5;
|
register u32 r5 asm("r5") = w5;
|
||||||
|
register u32 r6 asm("r6") = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
asm volatile(
|
asm volatile(
|
||||||
|
@ -494,13 +496,14 @@ static int __scm_call_armv8_32(u32 w0, u32 w1, u32 w2, u32 w3, u32 w4, u32 w5,
|
||||||
__asmeq("%7", R3_STR)
|
__asmeq("%7", R3_STR)
|
||||||
__asmeq("%8", R4_STR)
|
__asmeq("%8", R4_STR)
|
||||||
__asmeq("%9", R5_STR)
|
__asmeq("%9", R5_STR)
|
||||||
|
__asmeq("%10", R6_STR)
|
||||||
#ifdef REQUIRES_SEC
|
#ifdef REQUIRES_SEC
|
||||||
".arch_extension sec\n"
|
".arch_extension sec\n"
|
||||||
#endif
|
#endif
|
||||||
"smc #0\n"
|
"smc #0\n"
|
||||||
: "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3)
|
: "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3)
|
||||||
: "r" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4),
|
: "r" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4),
|
||||||
"r" (r5));
|
"r" (r5), "r" (r6));
|
||||||
|
|
||||||
} while (r0 == SCM_INTERRUPTED);
|
} while (r0 == SCM_INTERRUPTED);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue