Re: [PATCH 6/6][RFC] PM / Domains: Support for multiple generic power domain states
From: Rafael J. Wysocki
Date: Mon May 16 2011 - 14:28:46 EST
On Monday, May 16, 2011, Kevin Hilman wrote:
> Hi Rafael,
> "Rafael J. Wysocki" <rjw@xxxxxxx> writes:
> > From: Rafael J. Wysocki <rjw@xxxxxxx>
> > Allow the generic power domains support code to handle power
> > domains with multiple states.
No problem. :-)
> Before I even had the time to respond to you about my previous request
> for this kind of feature, you've already implmented it. :)
Well, I had the idea how to implement it right after I had replied to
your previous message. The only problem was to find the time to actually
prepare a patch.
> > Replace the .power_down_ok()
> > callback in struct dev_power_governor with a new callback
> > .choose_state() that will return the number of the state to put the
> > power domain into. Add new fields nr_states and current_state to
> > struct generic_power_domain with the assumption that state 0 will be
> > the full power state and states 1 through (nr_states - 1) will be low
> > power.
> > Replace power domain callbacks .power_off() and .power_on()
> > with a single .set_state() callback taking the number of the state
> > to put the power domain into as its second argument. Add a new
> > generic power domain callback .power_off_state() (taking a state
> > number as its second argument) allowing the core to check if
> > device runtime PM callbacks need to be executed before putting the
> > given power domain into the given state. Modify the core power
> > domains code and the ARM shmobile platform code to take all of the
> > above changes into account.
> > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> Reviewed-by: Kevin Hilman <khilman@xxxxxx>
> This looks like a better starting point for more complicated hardware.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/