diff options
author | Soby Mathew <soby.mathew@arm.com> | 2015-01-06 21:36:55 +0000 |
---|---|---|
committer | Soby Mathew <soby.mathew@arm.com> | 2015-01-23 18:36:15 +0000 |
commit | 22f08973f35d3413148168a0a622d7dcd2c2630b (patch) | |
tree | e924ed472c64caeea1c5ecd696230f2bb71e93fb /services/std_svc/psci/psci_main.c | |
parent | 539dcedb7d83804a4237c4385b2cb15f0b7ee0b5 (diff) |
Return success if an interrupt is seen during PSCI CPU_SUSPEND
This patch adds support to return SUCCESS if a pending interrupt is
detected during a CPU_SUSPEND call to a power down state. The check
is performed as late as possible without losing the ability to return
to the caller. This reduces the overhead incurred by a CPU in
undergoing a complete power cycle when a wakeup interrupt is already
pending.
Fixes ARM-Software/tf-issues#102
Change-Id: I1aff04a74b704a2f529734428030d1d10750fd4b
Diffstat (limited to 'services/std_svc/psci/psci_main.c')
-rw-r--r-- | services/std_svc/psci/psci_main.c | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/services/std_svc/psci/psci_main.c b/services/std_svc/psci/psci_main.c index 7c686949..91d16f46 100644 --- a/services/std_svc/psci/psci_main.c +++ b/services/std_svc/psci/psci_main.c @@ -161,8 +161,6 @@ int psci_cpu_suspend(unsigned int power_state, MPIDR_AFFLVL0, target_afflvl); - psci_power_down_wfi(); - /* Reset PSCI power state parameter for the core. */ psci_set_suspend_power_state(PSCI_INVALID_DATA); return PSCI_E_SUCCESS; @@ -182,14 +180,6 @@ int psci_cpu_off(void) rc = psci_afflvl_off(MPIDR_AFFLVL0, target_afflvl); /* - * Check if all actions needed to safely power down this cpu have - * successfully completed. Enter a wfi loop which will allow the - * power controller to physically power down this cpu. - */ - if (rc == PSCI_E_SUCCESS) - psci_power_down_wfi(); - - /* * The only error cpu_off can return is E_DENIED. So check if that's * indeed the case. */ |