diff options
author | Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com> | 2017-02-06 15:25:30 +0530 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2017-02-07 13:51:44 +1100 |
commit | 0500d504b13eb95046bcea9b17ad6787ff18e843 (patch) | |
tree | be83b3d73e57f11060a07567f6eb00077f00fcfa /hw/slw.c | |
parent | 2bec353d38a685a4352f48fbbf0d765359da3bdb (diff) | |
download | blackbird-skiboot-0500d504b13eb95046bcea9b17ad6787ff18e843.tar.gz blackbird-skiboot-0500d504b13eb95046bcea9b17ad6787ff18e843.zip |
slw: Fix parsing of supported STOP states
Bits[0-15] are used to indicate the supported STOP states in
"ibm,enabled-stop-levels" DT property and STOP0 is starting from
Bit0. This patch fixes the parsing to read the appropriate bits.
Fixes: c3ea33f173ec ("hw/slw: only enable supported STOP states")
Signed-off-by: Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com>
Reviewed-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw/slw.c')
-rw-r--r-- | hw/slw.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -763,8 +763,10 @@ void add_cpu_idle_state_properties(void) /* We can only use the stop levels that HB has made available */ if (has_stop_inst) { - u32 level = 1ul << states[i].pm_ctrl_reg_val; - if (!(stop_levels & level)) + u32 level = 31 - (states[i].pm_ctrl_reg_val & + OPAL_PM_PSSCR_RL_MASK); + + if (!(stop_levels & (1ul << level))) continue; } |