@@ -194,15 +194,19 @@ int __init omap3_secure_copy_data_set(struct omap3_secure_copy_data *data)
static void omap3_save_secure_ram_context(u32 target_mpu_state)
{
if (!secure_ram_saved && omap_type() != OMAP2_DEVICE_TYPE_GP) {
+ struct clockdomain *clkd = mpu_pwrdm->pwrdm_clkdms[0];
+
/*
* MPU next state must be set to POWER_ON temporarily,
* otherwise the WFI executed inside the ROM code
* will hang the system.
*/
pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON);
+ omap2_clkdm_deny_idle(clkd);
secure_ram_save_status = _omap_save_secure_sram((u32 *)
(omap3_secure_ram_storage));
pwrdm_set_next_pwrst(mpu_pwrdm, target_mpu_state);
+ omap2_clkdm_allow_idle(clkd);
if (!secure_copy_data.save_every_cycle)
secure_ram_saved = 1;
}