ARM: EXYNOS: Move the AFTR state function into pm.c
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 8 May 2014 21:53:00 +0000 (06:53 +0900)
committerKukjin Kim <kgene.kim@samsung.com>
Sun, 25 May 2014 20:21:08 +0000 (05:21 +0900)
In order to remove depedency on pm code, let's move the 'exynos_enter_aftr'
function into the pm.c file as well as the other helper functions.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
arch/arm/mach-exynos/common.h
arch/arm/mach-exynos/cpuidle.c
arch/arm/mach-exynos/pm.c

index 7876ed04b7a5e35e323deca22f478d9701f6aae9..27c9abdeb79e0651feae76addd0ed22a71fc078c 100644 (file)
@@ -69,5 +69,6 @@ extern int  exynos_cpu_power_state(int cpu);
 extern void exynos_cluster_power_down(int cluster);
 extern void exynos_cluster_power_up(int cluster);
 extern int  exynos_cluster_power_state(int cluster);
+extern void exynos_enter_aftr(void);
 
 #endif /* __ARCH_ARM_MACH_EXYNOS_COMMON_H */
index d8b80c053e42e84bd5b841ce6961ca66f4c5e692..eea3eb9cecefb4be933b3b4ba8d3e223ba9c4108 100644 (file)
 #include "common.h"
 #include "regs-pmu.h"
 
-#define REG_DIRECTGO_ADDR      (samsung_rev() == EXYNOS4210_REV_1_1 ? \
-                       S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
-                       (S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
-#define REG_DIRECTGO_FLAG      (samsung_rev() == EXYNOS4210_REV_1_1 ? \
-                       S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
-                       (S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
-
-#define S5P_CHECK_AFTR         0xFCBA0D10
-
-/* Ext-GIC nIRQ/nFIQ is the only wakeup source in AFTR */
-static void exynos_set_wakeupmask(long mask)
-{
-       __raw_writel(mask, S5P_WAKEUP_MASK);
-}
-
-static void exynos_cpu_set_boot_vector(long flags)
-{
-       __raw_writel(virt_to_phys(exynos_cpu_resume), REG_DIRECTGO_ADDR);
-       __raw_writel(flags, REG_DIRECTGO_FLAG);
-}
-
-static void exynos_enter_aftr(void)
-{
-       exynos_set_wakeupmask(0x0000ff3e);
-       exynos_cpu_set_boot_vector(S5P_CHECK_AFTR);
-       /* Set value of power down register for aftr mode */
-       exynos_sys_powerdown_conf(SYS_AFTR);
-}
-
 static int idle_finisher(unsigned long flags)
 {
        exynos_enter_aftr();
index 24c638d2afd480e5be98836ab33db752087ea5ac..179f7e09e20d0ceb40774130e891427931b6970c 100644 (file)
@@ -167,6 +167,35 @@ int exynos_cluster_power_state(int cluster)
                        S5P_CORE_LOCAL_PWR_EN);
 }
 
+#define EXYNOS_BOOT_VECTOR_ADDR        (samsung_rev() == EXYNOS4210_REV_1_1 ? \
+                       S5P_INFORM7 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
+                       (S5P_VA_SYSRAM + 0x24) : S5P_INFORM0))
+#define EXYNOS_BOOT_VECTOR_FLAG        (samsung_rev() == EXYNOS4210_REV_1_1 ? \
+                       S5P_INFORM6 : (samsung_rev() == EXYNOS4210_REV_1_0 ? \
+                       (S5P_VA_SYSRAM + 0x20) : S5P_INFORM1))
+
+#define S5P_CHECK_AFTR 0xFCBA0D10
+
+/* Ext-GIC nIRQ/nFIQ is the only wakeup source in AFTR */
+static void exynos_set_wakeupmask(long mask)
+{
+       __raw_writel(mask, S5P_WAKEUP_MASK);
+}
+
+static void exynos_cpu_set_boot_vector(long flags)
+{
+       __raw_writel(virt_to_phys(exynos_cpu_resume), EXYNOS_BOOT_VECTOR_ADDR);
+       __raw_writel(flags, EXYNOS_BOOT_VECTOR_FLAG);
+}
+
+void exynos_enter_aftr(void)
+{
+       exynos_set_wakeupmask(0x0000ff3e);
+       exynos_cpu_set_boot_vector(S5P_CHECK_AFTR);
+       /* Set value of power down register for aftr mode */
+       exynos_sys_powerdown_conf(SYS_AFTR);
+}
+
 /* For Cortex-A9 Diagnostic and Power control register */
 static unsigned int save_arm_register[2];