|
@@ -112,6 +112,12 @@ static void omap3_core_restore_context(void)
|
|
|
omap_dma_global_context_restore();
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * FIXME: This function should be called before entering off-mode after
|
|
|
+ * OMAP3 secure services have been accessed. Currently it is only called
|
|
|
+ * once during boot sequence, but this works as we are not using secure
|
|
|
+ * services.
|
|
|
+ */
|
|
|
static void omap3_save_secure_ram_context(u32 target_mpu_state)
|
|
|
{
|
|
|
u32 ret;
|
|
@@ -337,7 +343,6 @@ static void omap_sram_idle(void)
|
|
|
if (core_next_state == PWRDM_POWER_OFF) {
|
|
|
omap3_core_save_context();
|
|
|
omap3_prcm_save_context();
|
|
|
- omap3_save_secure_ram_context(mpu_next_state);
|
|
|
}
|
|
|
/* Enable IO-PAD wakeup */
|
|
|
prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN);
|
|
@@ -999,9 +1004,19 @@ static int __init omap3_pm_init(void)
|
|
|
if (!omap3_secure_ram_storage)
|
|
|
printk(KERN_ERR "Memory allocation failed when"
|
|
|
"allocating for secure sram context\n");
|
|
|
+
|
|
|
+ local_irq_disable();
|
|
|
+ local_fiq_disable();
|
|
|
+
|
|
|
+ omap_dma_global_context_save();
|
|
|
+ omap3_save_secure_ram_context(PWRDM_POWER_ON);
|
|
|
+ omap_dma_global_context_restore();
|
|
|
+
|
|
|
+ local_irq_enable();
|
|
|
+ local_fiq_enable();
|
|
|
}
|
|
|
- omap3_save_scratchpad_contents();
|
|
|
|
|
|
+ omap3_save_scratchpad_contents();
|
|
|
err1:
|
|
|
return ret;
|
|
|
err2:
|