Hi Michael, On Wed, Nov 23, 2016 at 08:51:10PM +1100, Michael Ellerman wrote: > "Gautham R. Shenoy" <e...@linux.vnet.ibm.com> writes: > > > From: "Gautham R. Shenoy" <e...@linux.vnet.ibm.com> > > > > The power9_idle_stop method currently takes only the requested stop > > level as a parameter and picks up the rest of the PSSCR bits from a > > hand-coded macro. This is not a very flexible design, especially when > > the firmware has the capability to communicate the psscr value and the > > mask associated with a particular stop state via device tree. > > > > This patch modifies the power9_idle_stop API to take as parameters the > > PSSCR value and the PSSCR mask corresponding to the stop state that > > needs to be set. These PSSCR value and mask are respectively obtained > > by parsing the "ibm,cpu-idle-state-psscr" and > > "ibm,cpu-idle-state-psscr-mask" fields from the device tree. > > > > In addition to this, the patch adds support for handling stop states > > for which ESL and EC bits in the PSSCR are zero. As per the > > architecture, a wakeup from these stop states resumes execution from > > the subsequent instruction as opposed to waking up at the System > > Vector. > > > > The older firmware sets only the Requested Level (RL) field in the > > psscr and psscr-mask exposed in the device tree. For older firmware > > where psscr-mask=0xf, this patch will set the default sane values that > > the set for for remaining PSSCR fields (i.e PSLL, MTL, ESL, EC, and > > TR). > > So we're using psscr-mas=0xf as a signal that we're running on old > firmware. > > That's OK I think, but please send a patch to document it in the device > tree binding. > > And call it out below in the code.
Sure will do this! Thanks for reviewing the code. > > cheers > -- Thanks and Regards gautham.