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);
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;
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) &&
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.