diff options
author | Marek Szyprowski <m.szyprowski@samsung.com> | 2019-02-18 17:34:09 +0300 |
---|---|---|
committer | Krzysztof Kozlowski <krzk@kernel.org> | 2019-03-19 23:02:12 +0300 |
commit | e74673120b6b9497f1e044b3cf75d2fb5ed61fc3 (patch) | |
tree | 9328aee0923837df12f667afe72c19881b9404ea /arch/arm/mach-exynos | |
parent | 9e98c678c2d6ae3a17cb2de55d17f69dddaa231b (diff) | |
download | linux-e74673120b6b9497f1e044b3cf75d2fb5ed61fc3.tar.xz |
ARM: exynos: Move Exynos542x CPU state reset to pm_prepare()
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>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'arch/arm/mach-exynos')
-rw-r--r-- | arch/arm/mach-exynos/suspend.c | 3 |
1 files changed, 1 insertions, 2 deletions
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(); |