static int sti_console_enabled;
 
-static int omap2_allow_mpu_retention(void)
-{
-       if (!omap2xxx_cm_mpu_retention_allowed())
-               return 0;
-       if (sti_console_enabled)
-               return 0;
-
-       return 1;
-}
-
-static void omap2_enter_mpu_retention(void)
+static void omap2_do_wfi(void)
 {
        const int zero = 0;
 
-       /* The peripherals seem not to be able to wake up the MPU when
-        * it is in retention mode. */
-       if (omap2_allow_mpu_retention()) {
-               /* REVISIT: These write to reserved bits? */
-               omap_prm_clear_mod_irqs(CORE_MOD, PM_WKST1, ~0);
-               omap_prm_clear_mod_irqs(CORE_MOD, OMAP24XX_PM_WKST2, ~0);
-               omap_prm_clear_mod_irqs(WKUP_MOD, PM_WKST, ~0);
-
-               /* Try to enter MPU retention */
-               pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_RET);
-
-       } else {
-               /* Block MPU retention */
-               pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON);
-       }
-
        /* WFI */
        asm("mcr p15, 0, %0, c7, c0, 4" : : "r" (zero) : "memory", "cc");
-
-       pwrdm_set_next_pwrst(mpu_pwrdm, PWRDM_POWER_ON);
-}
-
-static int omap2_can_sleep(void)
-{
-       if (omap2xxx_cm_fclks_active())
-               return 0;
-       if (__clk_is_enabled(osc_ck))
-               return 0;
-
-       return 1;
 }
 
 static void omap2_pm_idle(void)
        if (omap_irq_pending())
                return;
 
-       error = cpu_cluster_pm_enter();
-       if (error || !omap2_can_sleep()) {
-               omap2_enter_mpu_retention();
-               goto out_cpu_cluster_pm;
-       }
-
-       omap2_enter_full_retention();
-
-out_cpu_cluster_pm:
-       cpu_cluster_pm_exit();
+       omap2_do_wfi();
 }
 
 static void __init prcm_setup_regs(void)