Re: [PATCH 2/2] powernv: Pass PSSCR value and mask to power9_idle_stop
From: Balbir Singh
Date: Tue Oct 04 2016 - 07:34:08 EST
On 04/10/16 21:32, Michael Ellerman wrote:
> "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx> writes:
>> From: "Gautham R. Shenoy" <ego@xxxxxxxxxxxxxxxxxx>
>> 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
> That looks good.
>> This patch depends on the following skiboot patch that exports the
>> PSSCR values and the mask for all the stop states:
> But we can't depend on a skiboot patch. The kernel has to cope with
> running on an old skiboot.
I think with an older skiboot the flags don't get exported and the
new cpuidle (stop state) does not get discovered. I don't think there
is any breakage. Gautham am I missing something?