[1/4] ARM: exynos: Move Exynos542x CPU state reset to pm_prepare()

Message ID 20190218143412.6865-2-m.szyprowski@samsung.com
State New
Headers show
Series
  • Odroid XU3/4: add system suspend/resume support
Related show

Commit Message

Marek Szyprowski Feb. 18, 2019, 2:34 p.m.
Reset the CPU state entry in sysram in pm_prepare() callback. That entry
doesn't need to be reset for every suspended CPU, so make it symmetic
with the code, which restores it in pm_resume() callback.

Tested on Samsung Chromebook2 Pit (Exynos5420) and Pi (Exynos5800)
boards.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

---
 arch/arm/mach-exynos/suspend.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

-- 
2.17.1

Comments

Krzysztof Kozlowski March 19, 2019, 8:09 p.m. | #1
On Mon, Feb 18, 2019 at 03:34:09PM +0100, Marek Szyprowski wrote:
> Reset the CPU state entry in sysram in pm_prepare() callback. That entry

> doesn't need to be reset for every suspended CPU, so make it symmetic

> with the code, which restores it in pm_resume() callback.

> 

> Tested on Samsung Chromebook2 Pit (Exynos5420) and Pi (Exynos5800)

> boards.

> 

> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---

>  arch/arm/mach-exynos/suspend.c | 3 +--


Thanks, applied.

Best regards,
Krzysztof

Patch

diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
index 0850505ac78b..c1e082ab2a1e 100644
--- a/arch/arm/mach-exynos/suspend.c
+++ b/arch/arm/mach-exynos/suspend.c
@@ -265,8 +265,6 @@  static int exynos5420_cpu_suspend(unsigned long arg)
 	unsigned int cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
 	unsigned int cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
 
-	writel_relaxed(0x0, pm_state.sysram_base + EXYNOS5420_CPU_STATE);
-
 	if (IS_ENABLED(CONFIG_EXYNOS5420_MCPM)) {
 		mcpm_set_entry_vector(cpu, cluster, exynos_cpu_resume);
 		mcpm_cpu_suspend();
@@ -341,6 +339,7 @@  static void exynos5420_pm_prepare(void)
 	 */
 	pm_state.cpu_state = readl_relaxed(pm_state.sysram_base +
 					   EXYNOS5420_CPU_STATE);
+	writel_relaxed(0x0, pm_state.sysram_base + EXYNOS5420_CPU_STATE);
 
 	exynos_pm_enter_sleep_mode();