@@ -680,6 +680,10 @@ void add_cpu_idle_state_properties(void)
stop_levels = dt_prop_get_u32_def(power_mgt,
"ibm,enabled-stop-levels", 0);
+
+ /* Disable Stop2 for P9 DD1 */
+ if (chip->ec_level == 0x10)
+ stop_levels &= ~0x20000000;
if (!stop_levels)
prerror("SLW: No stop levels available. Power saving is disabled!\n");
@@ -765,6 +769,11 @@ void add_cpu_idle_state_properties(void)
if (has_stop_inst) {
u32 level = 31 - (states[i].pm_ctrl_reg_val &
OPAL_PM_PSSCR_RL_MASK);
+ u64 esl = states[i].pm_ctrl_reg_val &
+ OPAL_PM_PSSCR_ESL;
+
+ if (chip->ec_level == 0x10 && esl)
+ continue;
if (!(stop_levels & (1ul << level)))
continue;