1. 07 Feb, 2017 2 commits
  2. 06 Feb, 2017 11 commits
  3. 03 Feb, 2017 4 commits
  4. 02 Feb, 2017 13 commits
  5. 31 Jan, 2017 7 commits
  6. 30 Jan, 2017 3 commits
    • Gautham R. Shenoy's avatar
      Documentation:powerpc: Add device-tree bindings for power-mgt · b48ff520
      Gautham R. Shenoy authored
      Document the device-tree bindings defining the the properties under
      the @power-mgt node in the device tree that describe the idle states
      for Linux running on baremetal POWER servers.
      
      These bindings are documented separately instead of using the the
      common idle state bindings since the idle-states on POWER servers
      are exposed as property arrays where as the common idle state bindings
      expect idle-states to be described as nodes.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      b48ff520
    • Gautham R. Shenoy's avatar
      powernv: Pass PSSCR value and mask to power9_idle_stop · 09206b60
      Gautham R. Shenoy authored
      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). For the new firmware, the patch will validate that the invariants
      required by the ISA for the psscr values are maintained by the
      firmware.
      
      This skiboot patch that exports fully populated PSSCR values and the
      mask for all the stop states can be found here:
      https://lists.ozlabs.org/pipermail/skiboot/2016-September/004869.html
      
      [Optimize the number of instructions before entering STOP with
      ESL=EC=0, validate the PSSCR values provided by the firimware
      maintains the invariants required as per the ISA suggested by Balbir
      Singh]
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Signed-off-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      09206b60
    • Gautham R. Shenoy's avatar
      cpuidle:powernv: Add helper function to populate powernv idle states. · 9e9fc6f0
      Gautham R. Shenoy authored
      In the current code for powernv_add_idle_states, there is a lot of code
      duplication while initializing an idle state in powernv_states table.
      
      Add an inline helper function to populate the powernv_states[] table
      for a given idle state. Invoke this for populating the "Nap",
      "Fastsleep" and the stop states in powernv_add_idle_states.
      Signed-off-by: default avatarGautham R. Shenoy <ego@linux.vnet.ibm.com>
      Acked-by: default avatarBalbir Singh <bsingharora@gmail.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      9e9fc6f0