aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-samsung/s5p-sleep.S
diff options
context:
space:
mode:
authorTomasz Figa <t.figa@samsung.com>2014-03-17 18:28:27 -0400
committerKukjin Kim <kgene.kim@samsung.com>2014-03-20 15:09:28 -0400
commitd710aa31874e2ff6e656dbd4807f4bd8d659eb93 (patch)
treeb897e022fd8d9579acaabc318a2bffd0c55c1f2e /arch/arm/plat-samsung/s5p-sleep.S
parent559ba237999d723ccba5b4a75cf6b280bac1ab21 (diff)
ARM: EXYNOS: Stop using legacy Samsung PM code
Since Exynos SoCs does not follow most of the semantics of older SoCs when configuring the system to enter sleep, there is no reason to rely on the legacy Samsung PM core anymore. This patch adds local Exynos suspend ops and removes all the code left unnecessary. As a side effect, suspend support on Exynos becomes multiplatform-friendly. Signed-off-by: Tomasz Figa <t.figa@samsung.com> Acked-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch/arm/plat-samsung/s5p-sleep.S')
-rw-r--r--arch/arm/plat-samsung/s5p-sleep.S45
1 files changed, 0 insertions, 45 deletions
diff --git a/arch/arm/plat-samsung/s5p-sleep.S b/arch/arm/plat-samsung/s5p-sleep.S
index 20764bd5518e..c5001659bdf8 100644
--- a/arch/arm/plat-samsung/s5p-sleep.S
+++ b/arch/arm/plat-samsung/s5p-sleep.S
@@ -23,18 +23,7 @@
23 23
24#include <linux/linkage.h> 24#include <linux/linkage.h>
25#include <asm/asm-offsets.h> 25#include <asm/asm-offsets.h>
26#include <asm/hardware/cache-l2x0.h>
27 26
28#define CPU_MASK 0xff0ffff0
29#define CPU_CORTEX_A9 0x410fc090
30
31/*
32 * The following code is located into the .data section. This is to
33 * allow l2x0_regs_phys to be accessed with a relative load while we
34 * can't rely on any MMU translation. We could have put l2x0_regs_phys
35 * in the .text section as well, but some setups might insist on it to
36 * be truly read-only. (Reference from: arch/arm/kernel/sleep.S)
37 */
38 .data 27 .data
39 .align 28 .align
40 29
@@ -53,39 +42,5 @@
53 */ 42 */
54 43
55ENTRY(s3c_cpu_resume) 44ENTRY(s3c_cpu_resume)
56#ifdef CONFIG_CACHE_L2X0
57 mrc p15, 0, r0, c0, c0, 0
58 ldr r1, =CPU_MASK
59 and r0, r0, r1
60 ldr r1, =CPU_CORTEX_A9
61 cmp r0, r1
62 bne skip_l2_resume
63 adr r0, l2x0_regs_phys
64 ldr r0, [r0]
65 cmp r0, #0
66 beq skip_l2_resume
67 ldr r1, [r0, #L2X0_R_PHY_BASE]
68 ldr r2, [r1, #L2X0_CTRL]
69 tst r2, #0x1
70 bne skip_l2_resume
71 ldr r2, [r0, #L2X0_R_AUX_CTRL]
72 str r2, [r1, #L2X0_AUX_CTRL]
73 ldr r2, [r0, #L2X0_R_TAG_LATENCY]
74 str r2, [r1, #L2X0_TAG_LATENCY_CTRL]
75 ldr r2, [r0, #L2X0_R_DATA_LATENCY]
76 str r2, [r1, #L2X0_DATA_LATENCY_CTRL]
77 ldr r2, [r0, #L2X0_R_PREFETCH_CTRL]
78 str r2, [r1, #L2X0_PREFETCH_CTRL]
79 ldr r2, [r0, #L2X0_R_PWR_CTRL]
80 str r2, [r1, #L2X0_POWER_CTRL]
81 mov r2, #1
82 str r2, [r1, #L2X0_CTRL]
83skip_l2_resume:
84#endif
85 b cpu_resume 45 b cpu_resume
86ENDPROC(s3c_cpu_resume) 46ENDPROC(s3c_cpu_resume)
87#ifdef CONFIG_CACHE_L2X0
88 .globl l2x0_regs_phys
89l2x0_regs_phys:
90 .long 0
91#endif