diff --git a/lib/psci/psci_main.c b/lib/psci/psci_main.c index fd822bc..b4a25fb 100644 --- a/lib/psci/psci_main.c +++ b/lib/psci/psci_main.c @@ -167,8 +167,14 @@ /* Query the psci_power_state for system suspend */ psci_query_sys_suspend_pwrstate(&state_info); + /* + * Check if platform allows suspend to Highest power level + * (System level) + */ + if (psci_find_target_suspend_lvl(&state_info) < PLAT_MAX_PWR_LVL) + return PSCI_E_DENIED; + /* Ensure that the psci_power_state makes sense */ - assert(psci_find_target_suspend_lvl(&state_info) == PLAT_MAX_PWR_LVL); assert(psci_validate_suspend_req(&state_info, PSTATE_TYPE_POWERDOWN) == PSCI_E_SUCCESS); assert(is_local_state_off(