summaryrefslogtreecommitdiff
path: root/services/std_svc/psci/psci_off.c
diff options
context:
space:
mode:
authordanh-arm <dan.handley@arm.com>2016-05-27 11:08:45 +0100
committerdanh-arm <dan.handley@arm.com>2016-05-27 11:08:45 +0100
commit2ff900f28df5f975e1c1746e59610df5ccabf7aa (patch)
treec55b402e1ffa2779efe3f2613275245a79a89c73 /services/std_svc/psci/psci_off.c
parent8c94f82c678312fcdfc3eee8b819ca1c0da723fb (diff)
parentac1cc8eb76c39bca445478c2dffa9cd18829cff4 (diff)
Merge pull request #633 from soby-mathew/sm/psci_wfi_hook
PSCI: Add pwr_domain_pwr_down_wfi() hook in plat_psci_ops
Diffstat (limited to 'services/std_svc/psci/psci_off.c')
-rw-r--r--services/std_svc/psci/psci_off.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/services/std_svc/psci/psci_off.c b/services/std_svc/psci/psci_off.c
index cef66689..686666d5 100644
--- a/services/std_svc/psci/psci_off.c
+++ b/services/std_svc/psci/psci_off.c
@@ -138,11 +138,16 @@ exit:
dsbish();
inv_cpu_data(psci_svc_cpu_data.aff_info_state);
- /*
- * Enter a wfi loop which will allow the power controller to
- * physically power down this cpu.
- */
- psci_power_down_wfi();
+ if (psci_plat_pm_ops->pwr_domain_pwr_down_wfi) {
+ /* This function must not return */
+ psci_plat_pm_ops->pwr_domain_pwr_down_wfi(&state_info);
+ } else {
+ /*
+ * Enter a wfi loop which will allow the power
+ * controller to physically power down this cpu.
+ */
+ psci_power_down_wfi();
+ }
}
return rc;