[linux-pm] [PATCH 07/13] OMAP PM: early init of the pwrdms states
jean.pihet at newoldbits.com
Thu Aug 11 08:12:39 PDT 2011
On Tue, Aug 2, 2011 at 10:57 AM, Jean Pihet <jean.pihet at newoldbits.com> wrote:
> On Fri, Jul 29, 2011 at 10:50 AM, Jean Pihet <jean.pihet at newoldbits.com> wrote:
>> On Fri, Jul 29, 2011 at 10:08 AM, Todd Poynor <toddpoynor at google.com> wrote:
>>> On Thu, Jul 28, 2011 at 10:30:14AM +0200, jean.pihet at newoldbits.com wrote:
>>>> diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c
>>>> index 9af0847..63c3e7a 100644
>>>> --- a/arch/arm/mach-omap2/powerdomain.c
>>>> +++ b/arch/arm/mach-omap2/powerdomain.c
>>>> @@ -108,6 +108,9 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
>>>> pwrdm->state = pwrdm_read_pwrst(pwrdm);
>>>> pwrdm->state_counter[pwrdm->state] = 1;
>>>> + /* Early init of the next power state */
>>>> + pwrdm_set_next_pwrst(pwrdm, PWRDM_POWER_RET);
>>> Wanted to check that it's OK to initialize the next state of a power
>>> domain to RETENTION early in the boot sequence. I believe patches
>>> have been previously discussed that set the state to ON to ensure the
>>> domain doesn't go to a lower state, and possibly lose context, before
>>> the PM subsystem is setup to handle it? Not sure, thought maybe worth
>>> a doublecheck.
>> Indeed I need to check the behavior for OMAP3 & 4 which seem to
>> initialize the pwrdm states differently.
>> BTW the patch that inits all pwrdms to ON is not yet in l-o master
>> that is why I (lazily) submitted this one for now.
> Ok I will update the patch to make it compliant with . v4 will
> include this change.
>  http://marc.info/?l=linux-arm-kernel&m=131052762623823&w=2
After more thinking I now realize there is a problem with the PM early
init, PM late init and the constraints framework which all setup the
power domains next states in a non-coherent way.
Definitely this needs to be revisited. More to come on this!
There is a comment about that in [00/15] of the v4 patch set.
More information about the linux-pm