diff options
Diffstat (limited to 'arch/arm/mach-mx5/pm-imx5.c')
-rw-r--r-- | arch/arm/mach-mx5/pm-imx5.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-mx5/pm-imx5.c b/arch/arm/mach-mx5/pm-imx5.c index 98052fc852c..120dd9624dd 100644 --- a/arch/arm/mach-mx5/pm-imx5.c +++ b/arch/arm/mach-mx5/pm-imx5.c @@ -38,6 +38,8 @@ static int mx5_suspend_enter(suspend_state_t state) return -EINVAL; } + if (tzic_enable_wake(0) != 0) + return -EAGAIN; if (state == PM_SUSPEND_MEM) { local_flush_tlb_all(); flush_cache_all(); @@ -47,6 +49,10 @@ static int mx5_suspend_enter(suspend_state_t state) __raw_writel(0, MXC_SRPG_EMPGC1_SRPGCR); } cpu_do_idle(); + + __raw_writel(0, MXC_CORTEXA8_PLAT_LPC); + clk_disable(gpc_dvfs_clk); + return 0; } @@ -73,8 +79,9 @@ static int __init mx5_pm_init(void) gpc_dvfs_clk = clk_get(NULL, "gpc_dvfs"); if (!IS_ERR(gpc_dvfs_clk)) { - if (cpu_is_mx51()) + if (cpu_is_mx51() || cpu_is_mx53()) { suspend_set_ops(&mx5_suspend_ops); + } } else return -EPERM; |