ARM: OMAP2+: PM: Remove bogus fiq_[enable/disable] tuple
[pandora-kernel.git] / arch / arm / mach-omap2 / cpuidle34xx.c
index 942bb4f..67b0381 100644 (file)
@@ -109,7 +109,6 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
        getnstimeofday(&ts_preidle);
 
        local_irq_disable();
-       local_fiq_disable();
 
        pwrdm_set_next_pwrst(mpu_pd, mpu_state);
        pwrdm_set_next_pwrst(core_pd, core_state);
@@ -137,7 +136,6 @@ return_sleep_time:
        ts_idle = timespec_sub(ts_postidle, ts_preidle);
 
        local_irq_enable();
-       local_fiq_enable();
 
        idle_time = ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * \
                                                                USEC_PER_SEC;
@@ -183,6 +181,9 @@ static int next_valid_state(struct cpuidle_device *dev,
                        core_deepest_state = PWRDM_POWER_OFF;
        }
 
+       if (!omap_uart_can_sleep())
+               core_deepest_state = PWRDM_POWER_RET;
+
        /* Check if current state is valid */
        if ((cx->valid) &&
            (cx->mpu_state >= mpu_deepest_state) &&
@@ -244,11 +245,6 @@ static int omap3_enter_idle_bm(struct cpuidle_device *dev,
        struct omap3_idle_statedata *cx;
        int ret;
 
-       if (!omap3_can_sleep()) {
-               new_state_idx = drv->safe_state_index;
-               goto select_state;
-       }
-
        /*
         * Prevent idle completely if CAM is active.
         * CAM does not have wakeup capability in OMAP3.