diff options
Diffstat (limited to 'arch/arm/mm/proc-sa1100.S')
| -rw-r--r-- | arch/arm/mm/proc-sa1100.S | 35 |
1 files changed, 15 insertions, 20 deletions
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 07219c2ae114..7d91545d089b 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
| @@ -168,34 +168,29 @@ ENTRY(cpu_sa1100_set_pte_ext) | |||
| 168 | mov pc, lr | 168 | mov pc, lr |
| 169 | 169 | ||
| 170 | .globl cpu_sa1100_suspend_size | 170 | .globl cpu_sa1100_suspend_size |
| 171 | .equ cpu_sa1100_suspend_size, 4*4 | 171 | .equ cpu_sa1100_suspend_size, 4 * 3 |
| 172 | #ifdef CONFIG_PM_SLEEP | 172 | #ifdef CONFIG_PM_SLEEP |
| 173 | ENTRY(cpu_sa1100_do_suspend) | 173 | ENTRY(cpu_sa1100_do_suspend) |
| 174 | stmfd sp!, {r4 - r7, lr} | 174 | stmfd sp!, {r4 - r6, lr} |
| 175 | mrc p15, 0, r4, c3, c0, 0 @ domain ID | 175 | mrc p15, 0, r4, c3, c0, 0 @ domain ID |
| 176 | mrc p15, 0, r5, c2, c0, 0 @ translation table base addr | 176 | mrc p15, 0, r5, c13, c0, 0 @ PID |
| 177 | mrc p15, 0, r6, c13, c0, 0 @ PID | 177 | mrc p15, 0, r6, c1, c0, 0 @ control reg |
| 178 | mrc p15, 0, r7, c1, c0, 0 @ control reg | 178 | stmia r0, {r4 - r6} @ store cp regs |
| 179 | stmia r0, {r4 - r7} @ store cp regs | 179 | ldmfd sp!, {r4 - r6, pc} |
| 180 | ldmfd sp!, {r4 - r7, pc} | ||
| 181 | ENDPROC(cpu_sa1100_do_suspend) | 180 | ENDPROC(cpu_sa1100_do_suspend) |
| 182 | 181 | ||
| 183 | ENTRY(cpu_sa1100_do_resume) | 182 | ENTRY(cpu_sa1100_do_resume) |
| 184 | ldmia r0, {r4 - r7} @ load cp regs | 183 | ldmia r0, {r4 - r6} @ load cp regs |
| 185 | mov r1, #0 | 184 | mov ip, #0 |
| 186 | mcr p15, 0, r1, c8, c7, 0 @ flush I+D TLBs | 185 | mcr p15, 0, ip, c8, c7, 0 @ flush I+D TLBs |
| 187 | mcr p15, 0, r1, c7, c7, 0 @ flush I&D cache | 186 | mcr p15, 0, ip, c7, c7, 0 @ flush I&D cache |
| 188 | mcr p15, 0, r1, c9, c0, 0 @ invalidate RB | 187 | mcr p15, 0, ip, c9, c0, 0 @ invalidate RB |
| 189 | mcr p15, 0, r1, c9, c0, 5 @ allow user space to use RB | 188 | mcr p15, 0, ip, c9, c0, 5 @ allow user space to use RB |
| 190 | 189 | ||
| 191 | mcr p15, 0, r4, c3, c0, 0 @ domain ID | 190 | mcr p15, 0, r4, c3, c0, 0 @ domain ID |
| 192 | mcr p15, 0, r5, c2, c0, 0 @ translation table base addr | 191 | mcr p15, 0, r1, c2, c0, 0 @ translation table base addr |
| 193 | mcr p15, 0, r6, c13, c0, 0 @ PID | 192 | mcr p15, 0, r5, c13, c0, 0 @ PID |
| 194 | mov r0, r7 @ control register | 193 | mov r0, r6 @ control register |
| 195 | mov r2, r5, lsr #14 @ get TTB0 base | ||
| 196 | mov r2, r2, lsl #14 | ||
| 197 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
| 198 | PMD_SECT_CACHEABLE | PMD_SECT_AP_WRITE | ||
| 199 | b cpu_resume_mmu | 194 | b cpu_resume_mmu |
| 200 | ENDPROC(cpu_sa1100_do_resume) | 195 | ENDPROC(cpu_sa1100_do_resume) |
| 201 | #endif | 196 | #endif |
