This is a fresh look at the problem [1] discussed earlier. Generic approach here is same; but the 'valid' flag for the target state is verified in omap3_enter_idle_bm(). If the valid flag == 0, we look for next (lower) state with valid flag == 1. Have tried to optimize the look-up without loosing readability. Sanjeev Premi (1): omap3: cpuidle: Update statistics for correct state arch/arm/mach-omap2/cpuidle34xx.c | 98 ++++++++++++++++++++++++++++++++++--- arch/arm/mach-omap2/pm.h | 1 + arch/arm/mach-omap2/pm34xx.c | 4 ++ 3 files changed, 95 insertions(+), 8 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html