aboutsummaryrefslogtreecommitdiff
path: root/plat/socionext/synquacer/sq_psci.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/socionext/synquacer/sq_psci.c')
-rw-r--r--plat/socionext/synquacer/sq_psci.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/plat/socionext/synquacer/sq_psci.c b/plat/socionext/synquacer/sq_psci.c
index 0c97fcf79..4168df9da 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);