"ext Premi, Sanjeev" <pr...@ti.com> writes:

> While working with cpuidle, I have come across these problems.
> I am also working on the solutions, but would be good to hear
> more thoughts.
>
> 1) The flag 'enable_dyn_sleep' is honoured only in omap3_idle_bm_check()
>    but in the C1 state, omap3_enter_idle() is invoked directly.
>    So, the system can transition to deeper idle state(s)
>
>    Same is the case with 'sleep_block'.
>
>    Possible Solutions:
>      a)  Call omap3_can_sleep() in omap3_enter_idle().
>          This makes omap3_idle_bm_check() redundant; and can be removed.
>
>      b)  Make single entry point for all idle states
>          But would be an overkill for C1 state.
>
>      c)  Change omap3_can_sleep() to check for omap_uart_can_sleep()
>          and omap3_fclks_active() only.
>          Move check for 'enable_dyn_sleep' and 'sleep_block' into
>          omap3_enter_idle()
>
>     I believe (c) would be the most optimal.

Selecting (c) will break traditional pm_idle. Current plan is to add one more C
state (C1) which would prevent mpu/core sleep transitions. Then remove
fclk_active check completely.

-- 
Jouni Högander
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to