Commit eccc7cde authored by Stefan Krsmanovic's avatar Stefan Krsmanovic Committed by Soren Brinkmann
Browse files

zynqmp: Add simple implementation of zynqmp_validate_power_state()



Implementation is based on arm_validate_power_state().
This function is called during CPU_SUSPEND PSCI call to validate
power_state parameter. If state is valid this function populate it
in req_state array as power domain level specific local state.
ATF platform migration guide chapter 2.2 defines this function as
mandatory for PSCIv1.0 CPU_SUSPEND support.
Signed-off-by: default avatarStefan Krsmanovic <stefan.krsmanovic@aggios.com>
parent 797ab652
...@@ -308,7 +308,20 @@ int zynqmp_validate_power_state(unsigned int power_state, ...@@ -308,7 +308,20 @@ int zynqmp_validate_power_state(unsigned int power_state,
{ {
VERBOSE("%s: power_state: 0x%x\n", __func__, power_state); VERBOSE("%s: power_state: 0x%x\n", __func__, power_state);
/* FIXME: populate req_state */ int pstate = psci_get_pstate_type(power_state);
assert(req_state);
/* Sanity check the requested state */
if (pstate == PSTATE_TYPE_STANDBY)
req_state->pwr_domain_state[MPIDR_AFFLVL0] = PLAT_MAX_RET_STATE;
else
req_state->pwr_domain_state[MPIDR_AFFLVL0] = PLAT_MAX_OFF_STATE;
/* We expect the 'state id' to be zero */
if (psci_get_pstate_id(power_state))
return PSCI_E_INVALID_PARAMS;
return PSCI_E_SUCCESS; return PSCI_E_SUCCESS;
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment