arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / loongarch / power / hibernate_asm.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Hibernation support specific for LoongArch
4  *
5  * Author: Huacai Chen <chenhuacai@loongson.cn>
6  * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
7  */
8 #include <linux/linkage.h>
9 #include <asm/asm.h>
10 #include <asm/asm-offsets.h>
11 #include <asm/regdef.h>
12
13 .text
14 SYM_FUNC_START(swsusp_asm_suspend)
15         la.pcrel        t0, saved_regs
16         PTR_S           ra, t0, PT_R1
17         PTR_S           tp, t0, PT_R2
18         PTR_S           sp, t0, PT_R3
19         PTR_S           u0, t0, PT_R21
20         PTR_S           fp, t0, PT_R22
21         PTR_S           s0, t0, PT_R23
22         PTR_S           s1, t0, PT_R24
23         PTR_S           s2, t0, PT_R25
24         PTR_S           s3, t0, PT_R26
25         PTR_S           s4, t0, PT_R27
26         PTR_S           s5, t0, PT_R28
27         PTR_S           s6, t0, PT_R29
28         PTR_S           s7, t0, PT_R30
29         PTR_S           s8, t0, PT_R31
30         b               swsusp_save
31 SYM_FUNC_END(swsusp_asm_suspend)
32
33 SYM_FUNC_START(swsusp_asm_resume)
34         la.pcrel        t0, restore_pblist
35         PTR_L           t0, t0, 0
36 0:
37         PTR_L           t1, t0, PBE_ADDRESS  /* source */
38         PTR_L           t2, t0, PBE_ORIG_ADDRESS /* destination */
39         PTR_LI          t3, _PAGE_SIZE
40         PTR_ADD         t3, t3, t1
41 1:
42         REG_L           t8, t1, 0
43         REG_S           t8, t2, 0
44         PTR_ADDI        t1, t1, SZREG
45         PTR_ADDI        t2, t2, SZREG
46         bne             t1, t3, 1b
47         PTR_L           t0, t0, PBE_NEXT
48         bnez            t0, 0b
49         la.pcrel        t0, saved_regs
50         PTR_L           ra, t0, PT_R1
51         PTR_L           tp, t0, PT_R2
52         PTR_L           sp, t0, PT_R3
53         PTR_L           u0, t0, PT_R21
54         PTR_L           fp, t0, PT_R22
55         PTR_L           s0, t0, PT_R23
56         PTR_L           s1, t0, PT_R24
57         PTR_L           s2, t0, PT_R25
58         PTR_L           s3, t0, PT_R26
59         PTR_L           s4, t0, PT_R27
60         PTR_L           s5, t0, PT_R28
61         PTR_L           s6, t0, PT_R29
62         PTR_L           s7, t0, PT_R30
63         PTR_L           s8, t0, PT_R31
64         PTR_LI          a0, 0x0
65         jirl            zero, ra, 0
66 SYM_FUNC_END(swsusp_asm_resume)