]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
LoongArch: Adjust SETUP_SLEEP and SETUP_WAKEUP
authorHuacai Chen <chenhuacai@loongson.cn>
Sat, 25 Jan 2025 10:51:43 +0000 (18:51 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sat, 25 Jan 2025 10:51:43 +0000 (18:51 +0800)
SETUP_SLEEP should only save the GPR context, which is symmetric to
SETUP_WAKEUP, so move the acpi_saved_sp handling out of SETUP_SLEEP.

Move "addi.d  sp, sp, PT_SIZE" into SETUP_WAKEUP for the same reason.

No functional changes.

Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/power/suspend_asm.S

index 9fe28d5a027037cb708220763e5c39584ae4982f..df0865df26fae545e61c6281aa0bf73ac9284c1a 100644 (file)
@@ -30,9 +30,6 @@
        st.d            $r29, sp, PT_R29
        st.d            $r30, sp, PT_R30
        st.d            $r31, sp, PT_R31
-
-       la.pcrel        t0, acpi_saved_sp
-       st.d            sp, t0, 0
 .endm
 
 .macro SETUP_WAKEUP
@@ -51,6 +48,7 @@
        ld.d            $r29, sp, PT_R29
        ld.d            $r30, sp, PT_R30
        ld.d            $r31, sp, PT_R31
+       addi.d          sp, sp, PT_SIZE
 .endm
 
        .text
 /* Sleep/wakeup code for Loongson-3 */
 SYM_FUNC_START(loongarch_suspend_enter)
        SETUP_SLEEP
+
+       la.pcrel        t0, acpi_saved_sp
+       st.d            sp, t0, 0
+
        bl              __flush_cache_all
 
        /* Pass RA and SP to BIOS */
@@ -82,7 +84,7 @@ SYM_INNER_LABEL(loongarch_wakeup_start, SYM_L_GLOBAL)
 
        la.pcrel        t0, acpi_saved_sp
        ld.d            sp, t0, 0
+
        SETUP_WAKEUP
-       addi.d          sp, sp, PT_SIZE
        jr              ra
 SYM_FUNC_END(loongarch_suspend_enter)