diff options
Diffstat (limited to 'plat/fvp/fvp_pm.c')
-rw-r--r-- | plat/fvp/fvp_pm.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/plat/fvp/fvp_pm.c b/plat/fvp/fvp_pm.c index fd92526d..658a2859 100644 --- a/plat/fvp/fvp_pm.c +++ b/plat/fvp/fvp_pm.c @@ -251,7 +251,7 @@ int fvp_affinst_suspend(unsigned long mpidr, * Program the power controller to power this * cpu off and enable wakeup interrupts. */ - fvp_pwrc_write_pwkupr(mpidr); + fvp_pwrc_set_wen(mpidr); fvp_pwrc_write_ppoffr(mpidr); } break; @@ -309,6 +309,12 @@ int fvp_affinst_on_finish(unsigned long mpidr, write_cpuectlr(ectlr); } + /* + * Clear PWKUPR.WEN bit to ensure interrupts do not interfere + * with a cpu power down unless the bit is set again + */ + fvp_pwrc_clr_wen(mpidr); + /* Zero the jump address in the mailbox for this cpu */ fvp_mboxes = (mailbox *) (TZDRAM_BASE + MBOX_OFF); linear_id = platform_get_core_pos(mpidr); |