diff options
Diffstat (limited to 'arch/arm/mm/proc-xscale.S')
-rw-r--r-- | arch/arm/mm/proc-xscale.S | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index fbc06e55b87a..3277904bebaf 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -520,24 +520,23 @@ ENTRY(cpu_xscale_set_pte_ext) | |||
520 | .align | 520 | .align |
521 | 521 | ||
522 | .globl cpu_xscale_suspend_size | 522 | .globl cpu_xscale_suspend_size |
523 | .equ cpu_xscale_suspend_size, 4 * 7 | 523 | .equ cpu_xscale_suspend_size, 4 * 6 |
524 | #ifdef CONFIG_PM_SLEEP | 524 | #ifdef CONFIG_PM_SLEEP |
525 | ENTRY(cpu_xscale_do_suspend) | 525 | ENTRY(cpu_xscale_do_suspend) |
526 | stmfd sp!, {r4 - r10, lr} | 526 | stmfd sp!, {r4 - r9, lr} |
527 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 527 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
528 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg | 528 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg |
529 | mrc p15, 0, r6, c13, c0, 0 @ PID | 529 | mrc p15, 0, r6, c13, c0, 0 @ PID |
530 | mrc p15, 0, r7, c3, c0, 0 @ domain ID | 530 | mrc p15, 0, r7, c3, c0, 0 @ domain ID |
531 | mrc p15, 0, r8, c2, c0, 0 @ translation table base addr | 531 | mrc p15, 0, r8, c1, c1, 0 @ auxiliary control reg |
532 | mrc p15, 0, r9, c1, c1, 0 @ auxiliary control reg | 532 | mrc p15, 0, r9, c1, c0, 0 @ control reg |
533 | mrc p15, 0, r10, c1, c0, 0 @ control reg | ||
534 | bic r4, r4, #2 @ clear frequency change bit | 533 | bic r4, r4, #2 @ clear frequency change bit |
535 | stmia r0, {r4 - r10} @ store cp regs | 534 | stmia r0, {r4 - r9} @ store cp regs |
536 | ldmfd sp!, {r4 - r10, pc} | 535 | ldmfd sp!, {r4 - r9, pc} |
537 | ENDPROC(cpu_xscale_do_suspend) | 536 | ENDPROC(cpu_xscale_do_suspend) |
538 | 537 | ||
539 | ENTRY(cpu_xscale_do_resume) | 538 | ENTRY(cpu_xscale_do_resume) |
540 | ldmia r0, {r4 - r10} @ load cp regs | 539 | ldmia r0, {r4 - r9} @ load cp regs |
541 | mov ip, #0 | 540 | mov ip, #0 |
542 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs | 541 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs |
543 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB | 542 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB |
@@ -545,13 +544,9 @@ ENTRY(cpu_xscale_do_resume) | |||
545 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg | 544 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg |
546 | mcr p15, 0, r6, c13, c0, 0 @ PID | 545 | mcr p15, 0, r6, c13, c0, 0 @ PID |
547 | mcr p15, 0, r7, c3, c0, 0 @ domain ID | 546 | mcr p15, 0, r7, c3, c0, 0 @ domain ID |
548 | mcr p15, 0, r8, c2, c0, 0 @ translation table base addr | 547 | mcr p15, 0, r1, c2, c0, 0 @ translation table base addr |
549 | mcr p15, 0, r9, c1, c1, 0 @ auxiliary control reg | 548 | mcr p15, 0, r8, c1, c1, 0 @ auxiliary control reg |
550 | mov r0, r10 @ control register | 549 | mov r0, r9 @ control register |
551 | mov r2, r8, lsr #14 @ get TTB0 base | ||
552 | mov r2, r2, lsl #14 | ||
553 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
554 | PMD_SECT_CACHEABLE | PMD_SECT_AP_WRITE | ||
555 | b cpu_resume_mmu | 550 | b cpu_resume_mmu |
556 | ENDPROC(cpu_xscale_do_resume) | 551 | ENDPROC(cpu_xscale_do_resume) |
557 | #endif | 552 | #endif |