[Skiboot] [PATCH 1/3] idle: user context state loss flags fix for stop states
Nicholas Piggin
npiggin at gmail.com
Wed Aug 30 16:20:09 AEST 2017
The "lite" stop variants with PSSCR[ESL]=PSSCR[EC]=1 do not lose user
context, while the non-lite variants do (ESL: enable state loss).
Some of the POWER9 idle states had these wrong.
These are not used by Linux yet.
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
hw/slw.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/slw.c b/hw/slw.c
index 98040e6e..0720545c 100644
--- a/hw/slw.c
+++ b/hw/slw.c
@@ -526,7 +526,7 @@ static struct cpu_idle_states power9_cpu_idle_states[] = {
.residency_ns = 20000,
.flags = 0*OPAL_PM_DEC_STOP \
| 0*OPAL_PM_TIMEBASE_STOP \
- | 0*OPAL_PM_LOSE_USER_CONTEXT \
+ | 1*OPAL_PM_LOSE_USER_CONTEXT \
| 0*OPAL_PM_LOSE_HYP_CONTEXT \
| 0*OPAL_PM_LOSE_FULL_CONTEXT \
| 1*OPAL_PM_STOP_INST_FAST,
@@ -542,7 +542,7 @@ static struct cpu_idle_states power9_cpu_idle_states[] = {
.residency_ns = 49000,
.flags = 0*OPAL_PM_DEC_STOP \
| 0*OPAL_PM_TIMEBASE_STOP \
- | 1*OPAL_PM_LOSE_USER_CONTEXT \
+ | 0*OPAL_PM_LOSE_USER_CONTEXT \
| 0*OPAL_PM_LOSE_HYP_CONTEXT \
| 0*OPAL_PM_LOSE_FULL_CONTEXT \
| 1*OPAL_PM_STOP_INST_FAST,
@@ -572,7 +572,7 @@ static struct cpu_idle_states power9_cpu_idle_states[] = {
.residency_ns = 99000,
.flags = 0*OPAL_PM_DEC_STOP \
| 0*OPAL_PM_TIMEBASE_STOP \
- | 1*OPAL_PM_LOSE_USER_CONTEXT \
+ | 0*OPAL_PM_LOSE_USER_CONTEXT \
| 0*OPAL_PM_LOSE_HYP_CONTEXT \
| 0*OPAL_PM_LOSE_FULL_CONTEXT \
| 1*OPAL_PM_STOP_INST_FAST,
@@ -671,7 +671,7 @@ static struct cpu_idle_states power9_ndd1_cpu_idle_states[] = {
.residency_ns = 49000,
.flags = 0*OPAL_PM_DEC_STOP \
| 0*OPAL_PM_TIMEBASE_STOP \
- | 1*OPAL_PM_LOSE_USER_CONTEXT \
+ | 0*OPAL_PM_LOSE_USER_CONTEXT \
| 0*OPAL_PM_LOSE_HYP_CONTEXT \
| 0*OPAL_PM_LOSE_FULL_CONTEXT \
| 1*OPAL_PM_STOP_INST_FAST,
--
2.13.3
More information about the Skiboot
mailing list