Skip to content

Commit

Permalink
ARM: highbank: save and restore L2 cache and GIC on suspend
Browse files Browse the repository at this point in the history
This fixes suspend to RAM adding necessary save and restore of L2 and GIC.

Signed-off-by: Rob Herring <[email protected]>
Signed-off-by: Olof Johansson <[email protected]>
  • Loading branch information
Rob Herring authored and olofj committed Jan 8, 2013
1 parent 9852910 commit 1ddda1c
Showing 1 changed file with 18 additions and 1 deletion.
19 changes: 18 additions & 1 deletion arch/arm/mach-highbank/pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
* this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include <linux/cpu_pm.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/suspend.h>

#include <asm/cacheflush.h>
#include <asm/proc-fns.h>
#include <asm/suspend.h>

Expand All @@ -26,16 +28,31 @@

static int highbank_suspend_finish(unsigned long val)
{
outer_flush_all();
outer_disable();

highbank_set_pwr_suspend();

cpu_do_idle();

highbank_clear_pwr_request();
return 0;
}

static int highbank_pm_enter(suspend_state_t state)
{
highbank_set_pwr_suspend();
cpu_pm_enter();
cpu_cluster_pm_enter();

highbank_set_cpu_jump(0, cpu_resume);
cpu_suspend(0, highbank_suspend_finish);

cpu_cluster_pm_exit();
cpu_pm_exit();

highbank_smc1(0x102, 0x1);
if (scu_base_addr)
scu_enable(scu_base_addr);
return 0;
}

Expand Down

0 comments on commit 1ddda1c

Please sign in to comment.