From: Wenyou Yang Date: Mon, 9 Mar 2015 03:54:26 +0000 (+0800) Subject: ARM: at91/pm: flush data cache and clean, invalidate and disable the L2 cache X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=385acc0dac88d79447a03a1363072fc258429dec;p=deliverable%2Flinux.git ARM: at91/pm: flush data cache and clean, invalidate and disable the L2 cache Flush data cache, and clean, invalidate and disable the L2 cache before going to suspend. Restore the L2 cache configuration and re-enable the L2 cache after waking up. Signed-off-by: Wenyou Yang Acked-by: Alexandre Belloni Tested-by: Sylvain Rochet Signed-off-by: Nicolas Ferre --- diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c index 9fb868d2b9da..ac947cdd506c 100644 --- a/arch/arm/mach-at91/pm.c +++ b/arch/arm/mach-at91/pm.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -133,8 +134,13 @@ static void at91_pm_suspend(suspend_state_t state) pm_data |= (state == PM_SUSPEND_MEM) ? AT91_PM_MODE(AT91_PM_SLOW_CLOCK) : 0; + flush_cache_all(); + outer_disable(); + at91_suspend_sram_fn(at91_pmc_base, at91_ramc_base[0], at91_ramc_base[1], pm_data); + + outer_resume(); } static int at91_pm_enter(suspend_state_t state)