forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 23fa18eaa71266feff7ba8d83022d9e1cc83c65a
kernel/arch/arm64/kernel/sleep.S
....@@ -3,6 +3,7 @@
33 #include <linux/linkage.h>
44 #include <asm/asm-offsets.h>
55 #include <asm/assembler.h>
6
+#include <asm/smp.h>
67
78 .text
89 /*
....@@ -27,7 +28,7 @@
2728 * aff0 = mpidr_masked & 0xff;
2829 * aff1 = mpidr_masked & 0xff00;
2930 * aff2 = mpidr_masked & 0xff0000;
30
- * aff2 = mpidr_masked & 0xff00000000;
31
+ * aff3 = mpidr_masked & 0xff00000000;
3132 * dst = (aff0 >> rs0 | aff1 >> rs1 | aff2 >> rs2 | aff3 >> rs3);
3233 *}
3334 * Input registers: rs0, rs1, rs2, rs3, mpidr, mask
....@@ -61,7 +62,7 @@
6162 *
6263 * x0 = struct sleep_stack_data area
6364 */
64
-ENTRY(__cpu_suspend_enter)
65
+SYM_FUNC_START(__cpu_suspend_enter)
6566 stp x29, lr, [x0, #SLEEP_STACK_DATA_CALLEE_REGS]
6667 stp x19, x20, [x0,#SLEEP_STACK_DATA_CALLEE_REGS+16]
6768 stp x21, x22, [x0,#SLEEP_STACK_DATA_CALLEE_REGS+32]
....@@ -94,21 +95,23 @@
9495 ldp x29, lr, [sp], #16
9596 mov x0, #1
9697 ret
97
-ENDPROC(__cpu_suspend_enter)
98
+SYM_FUNC_END(__cpu_suspend_enter)
9899
99100 .pushsection ".idmap.text", "awx"
100
-ENTRY(cpu_resume)
101
- bl el2_setup // if in EL2 drop to EL1 cleanly
101
+SYM_CODE_START(cpu_resume)
102
+ bl init_kernel_el
103
+ bl switch_to_vhe
102104 bl __cpu_setup
103105 /* enable the MMU early - so we can access sleep_save_stash by va */
106
+ adrp x1, swapper_pg_dir
104107 bl __enable_mmu
105108 ldr x8, =_cpu_resume
106109 br x8
107
-ENDPROC(cpu_resume)
110
+SYM_CODE_END(cpu_resume)
108111 .ltorg
109112 .popsection
110113
111
-ENTRY(_cpu_resume)
114
+SYM_FUNC_START(_cpu_resume)
112115 mrs x1, mpidr_el1
113116 adr_l x8, mpidr_hash // x8 = struct mpidr_hash virt address
114117
....@@ -131,7 +134,7 @@
131134 */
132135 bl cpu_do_resume
133136
134
-#ifdef CONFIG_KASAN
137
+#if defined(CONFIG_KASAN) && defined(CONFIG_KASAN_STACK)
135138 mov x0, sp
136139 bl kasan_unpoison_task_stack_below
137140 #endif
....@@ -144,4 +147,4 @@
144147 ldp x29, lr, [x29]
145148 mov x0, #0
146149 ret
147
-ENDPROC(_cpu_resume)
150
+SYM_FUNC_END(_cpu_resume)