--- v1
+++ v4
@@ -1,9 +1,24 @@
From: "Gautham R. Shenoy" <ego@linux.vnet.ibm.com>
-Hi,
+This is the fourth iteration of the patchset to use the psscr_val and
+psscr_mask provided by the firmware for each of the stop states.
-In the current implementation, the code for ISA v3.0 stop
-implementation has a couple of shortcomings.
+The previous version can be found here:
+
+[v3]: https://lkml.org/lkml/2016/11/10/37
+[v2]: https://lkml.org/lkml/2016/10/27/143
+[v1]: https://lkml.org/lkml/2016/9/29/45
+
+This version fixes some of the coding style issues pointed out by
+Michael Ellerman in v3. This version also documents the device-tree
+bindings defining the properties under the @power-mgt node in the
+device tree describing the idle states for Linux running on baremetal
+POWER servers.
+
+Synopsis
+==========
+In the current implementation, the code for ISA
+v3.0 stop implementation has a couple of shortcomings.
a) The code hand-codes the values for ESL,EC,TR,MTL bits of PSSCR and
uses only the RL field from the firmware. While this is not
@@ -28,28 +43,51 @@
the name IDLE_STATE_ENTER_SEQ for entering into stop-states which wake
up at the subsequent instruction.
-The second patch in the series fixes issues a) and b) by ensuring that
+The second patch adds a helper function in cpuidle-powernv.c for
+initializing entries of the powernv_states[] table that is passed to
+the cpu-idle core. This eliminates some of the code duplication in the
+function that discovers and initializes the stop states.
+
+The third patch in the series fixes issues a) and b) by ensuring that
the psscr-value and the psscr-mask provided by the firmware are what
will be used to set a particular stop state. It also adds support for
handling wake-up from stop states which were entered with ESL=EC=0.
-These patches depend on the following skiboot patch that exports
-the PSSCR values and the mask for all the stop states:
+The third patch also handles the older firmware which sets only the
+Requested Level (RL) field in the psscr and psscr-mask exposed in the
+device tree. In the presence of such older firmware, this patch will
+set the default sane values for for remaining PSSCR fields (i.e PSLL,
+MTL, ESL, EC, and TR).
+
+The fourth patch provides the documentation for the device-tree
+bindings describing the idle state properties under the @power-mgt
+node in the device-tree.
+
+The skiboot patch populates all the relevant fields in the PSSCR
+values and the mask for all the stop states can be found here:
https://lists.ozlabs.org/pipermail/skiboot/2016-September/004869.html
-Gautham R. Shenoy (2):
+The patches are based on top of
+git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git fixes
+
+Gautham R. Shenoy (4):
powernv:idle: Add IDLE_STATE_ENTER_SEQ_NORET macro
+ cpuidle:powernv: Add helper function to populate powernv idle states.
powernv: Pass PSSCR value and mask to power9_idle_stop
+ Documentation:powerpc: Add device-tree bindings for power-mgt
- arch/powerpc/include/asm/cpuidle.h | 5 ++-
- arch/powerpc/include/asm/processor.h | 3 +-
- arch/powerpc/kernel/exceptions-64s.S | 6 +--
- arch/powerpc/kernel/idle_book3s.S | 41 ++++++++++-------
- arch/powerpc/platforms/powernv/idle.c | 76 +++++++++++++++++++++++++++-----
- arch/powerpc/platforms/powernv/powernv.h | 3 +-
- arch/powerpc/platforms/powernv/smp.c | 7 +--
- drivers/cpuidle/cpuidle-powernv.c | 30 ++++++++++---
- 8 files changed, 127 insertions(+), 44 deletions(-)
+ .../devicetree/bindings/powerpc/opal/power-mgt.txt | 123 +++++++++++++++++++++
+ arch/powerpc/include/asm/cpuidle.h | 46 +++++++-
+ arch/powerpc/include/asm/processor.h | 3 +-
+ arch/powerpc/kernel/exceptions-64s.S | 6 +-
+ arch/powerpc/kernel/idle_book3s.S | 41 ++++---
+ arch/powerpc/platforms/powernv/idle.c | 81 +++++++++++---
+ arch/powerpc/platforms/powernv/powernv.h | 3 +-
+ arch/powerpc/platforms/powernv/smp.c | 14 ++-
+ drivers/cpuidle/cpuidle-powernv.c | 113 ++++++++++++-------
+ include/linux/cpuidle.h | 1 +
+ 10 files changed, 348 insertions(+), 83 deletions(-)
+ create mode 100644 Documentation/devicetree/bindings/powerpc/opal/power-mgt.txt
--
1.9.4