X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fcpuidle%2Fcpuidle.c;h=5bed73329ef825e2f423f04f4540d57330d30b73;hb=1f6d6e8ebe73ba9d9d4c693f7f6f50f661dbd6e4;hp=2e3148499368b8b965e6845c7627caa6ce621be4;hpb=2e94d1f71f7e4404d997e6fb4f1618aa147d76f9;p=linux-2.6-omap-h63xx.git diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c index 2e314849936..5bed73329ef 100644 --- a/drivers/cpuidle/cpuidle.c +++ b/drivers/cpuidle/cpuidle.c @@ -57,7 +57,11 @@ static void cpuidle_idle_call(void) if (pm_idle_old) pm_idle_old(); else +#if defined(CONFIG_ARCH_HAS_DEFAULT_IDLE) + default_idle(); +#else local_irq_enable(); +#endif return; } @@ -74,8 +78,11 @@ static void cpuidle_idle_call(void) target_state = &dev->states[next_state]; /* enter the state and update stats */ - dev->last_residency = target_state->enter(dev, target_state); dev->last_state = target_state; + dev->last_residency = target_state->enter(dev, target_state); + if (dev->last_state) + target_state = dev->last_state; + target_state->time += (unsigned long long)dev->last_residency; target_state->usage++;