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: Stefan Krsmanovic <stefan.krsmanovic@aggios.com>
This commit is contained in:
parent
797ab652fb
commit
eccc7cde9f
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue