printk(KERN_ERR "Invalid mpu state in sram_idle\n");
                return;
        }
+       /* Disable smartreflex before entering WFI */
+       disable_smartreflex(SR1);
+       disable_smartreflex(SR2);
 
        omap2_gpio_prepare_for_retention();
 
        _omap_sram_idle(NULL, save_state);
 
        omap2_gpio_resume_after_retention();
+
+       /* Enable smartreflex after WFI */
+       enable_smartreflex(SR1);
+       enable_smartreflex(SR2);
 }
 
 /*
        struct power_state *pwrst;
        int state, ret = 0;
 
-       /* XXX Disable smartreflex before entering suspend */
-       disable_smartreflex(SR1);
-       disable_smartreflex(SR2);
-
        /* Read current next_pwrsts */
        list_for_each_entry(pwrst, &pwrst_list, node)
                pwrst->saved_state = pwrdm_read_next_pwrst(pwrst->pwrdm);
                printk(KERN_INFO "Successfully put all powerdomains "
                       "to target state\n");
 
-       /* XXX Enable smartreflex after suspend */
-       enable_smartreflex(SR1);
-       enable_smartreflex(SR2);
-
        return ret;
 }