summaryrefslogtreecommitdiff
path: root/plat/arm/css/drivers/scp/css_pm_scpi.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/arm/css/drivers/scp/css_pm_scpi.c')
-rw-r--r--plat/arm/css/drivers/scp/css_pm_scpi.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/plat/arm/css/drivers/scp/css_pm_scpi.c b/plat/arm/css/drivers/scp/css_pm_scpi.c
index e22504d1..3b643e66 100644
--- a/plat/arm/css/drivers/scp/css_pm_scpi.c
+++ b/plat/arm/css/drivers/scp/css_pm_scpi.c
@@ -32,6 +32,7 @@
#include <assert.h>
#include <css_pm.h>
#include <debug.h>
+#include <plat_arm.h>
#include "../scpi/css_scpi.h"
#include "css_scp.h"
@@ -134,6 +135,12 @@ void __dead2 css_scp_sys_shutdown(void)
{
uint32_t response;
+ /*
+ * Disable GIC CPU interface to prevent pending interrupt
+ * from waking up the AP from WFI.
+ */
+ plat_arm_gic_cpuif_disable();
+
/* Send the power down request to the SCP */
response = scpi_sys_power_state(scpi_system_shutdown);
@@ -153,6 +160,12 @@ void __dead2 css_scp_sys_reboot(void)
{
uint32_t response;
+ /*
+ * Disable GIC CPU interface to prevent pending interrupt
+ * from waking up the AP from WFI.
+ */
+ plat_arm_gic_cpuif_disable();
+
/* Send the system reset request to the SCP */
response = scpi_sys_power_state(scpi_system_reboot);