aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpuidle
diff options
context:
space:
mode:
authorAkshay Adiga <akshay.adiga@linux.vnet.ibm.com>2017-05-16 14:19:46 +0530
committerMichael Ellerman <mpe@ellerman.id.au>2017-05-30 14:59:51 +1000
commit1e1601b38e6e0179fafafc4db2c4ccb71d0854c4 (patch)
tree4134fa9367bd2c0bf9b1adfe0f7085aa8b4e2956 /drivers/cpuidle
parentpowerpc/powernv/idle: Restore LPCR on wakeup from deep-stop (diff)
downloadlinux-dev-1e1601b38e6e0179fafafc4db2c4ccb71d0854c4.tar.xz
linux-dev-1e1601b38e6e0179fafafc4db2c4ccb71d0854c4.zip
powerpc/powernv/idle: Restore SPRs for deep idle states via stop API.
Some of the SPR values (HID0, MSR, SPRG0) don't change during the run time of a booted kernel, once they have been initialized. The contents of these SPRs are lost when the CPUs enter deep stop states. So instead saving and restoring SPRs from the kernel, use the stop-api provided by the firmware by which the firmware can restore the contents of these SPRs to their initialized values after wakeup from a deep stop state. Apart from these, program the PSSCR value to that of the deepest stop state via the stop-api. This will be used to indicate to the underlying firmware as to what stop state to put the threads that have been woken up by a special-wakeup. And while we are at programming SPRs via stop-api, ensure that HID1, HID4 and HID5 registers which are only available on POWER8 are not requested to be restored by the firware on POWER9. Signed-off-by: Akshay Adiga <akshay.adiga@linux.vnet.ibm.com> Signed-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'drivers/cpuidle')
0 files changed, 0 insertions, 0 deletions