diff options
author | Masahisa Kojima <masahisa.kojima@linaro.org> | 2021-08-03 16:48:53 +0900 |
---|---|---|
committer | Masahisa Kojima <masahisa.kojima@linaro.org> | 2021-09-14 11:24:30 +0900 |
commit | f7f5d2c4cd209c2d21244da4fa442050eb4531ab (patch) | |
tree | ffc23be9e71da3f383c7c8dcbe49151ff4cc5e36 | |
parent | 6ea1a75df34c9beed4609b84544d473b8d5690e7 (diff) | |
download | trusted-firmware-a-f7f5d2c4cd209c2d21244da4fa442050eb4531ab.tar.gz |
fix(plat/synquacer): update scmi power domain off handling
In the SCMI power domain off handling, configure GIC
to prevent interrupt toward to the core to be turned off,
and configure CCN to disable coherency when the cluster is turned off.
The same operation is done in SCPI power domain off processing.
This commit adds the missing operation in SCMI power domain
off handling.
Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org>
Change-Id: Ib3523de488500c2e8bdc74e4cb8772a1442d9781
-rw-r--r-- | plat/socionext/synquacer/sq_psci.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/plat/socionext/synquacer/sq_psci.c b/plat/socionext/synquacer/sq_psci.c index 0c97fcf79f..4168df9daf 100644 --- a/plat/socionext/synquacer/sq_psci.c +++ b/plat/socionext/synquacer/sq_psci.c @@ -97,6 +97,14 @@ static void sq_power_down_common(const psci_power_state_t *target_state) void sq_pwr_domain_off(const psci_power_state_t *target_state) { #if SQ_USE_SCMI_DRIVER + /* Prevent interrupts from spuriously waking up this cpu */ + sq_gic_cpuif_disable(); + + /* Cluster is to be turned off, so disable coherency */ + if (SQ_CLUSTER_PWR_STATE(target_state) == SQ_LOCAL_STATE_OFF) { + plat_sq_interconnect_exit_coherency(); + } + sq_scmi_off(target_state); #else sq_power_down_common(target_state); |