diff options
author | Dimitris Papastamos <dimitris.papastamos@arm.com> | 2018-09-07 15:05:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-07 15:05:28 +0100 |
commit | 2013523cdd2e19a79bb5d83ea26c02fa9fc3cfec (patch) | |
tree | f8f412dd767e0e7f6b1d5809938783779e87299a | |
parent | e976e1fdb4f936352262122e5c3e80aff11bdc6b (diff) | |
parent | f933b44bd6c35df1ee3685cbf8a88c3498116138 (diff) | |
download | platform_external_arm-trusted-firmware-2013523cdd2e19a79bb5d83ea26c02fa9fc3cfec.tar.gz platform_external_arm-trusted-firmware-2013523cdd2e19a79bb5d83ea26c02fa9fc3cfec.tar.bz2 platform_external_arm-trusted-firmware-2013523cdd2e19a79bb5d83ea26c02fa9fc3cfec.zip |
Merge pull request #1564 from jeenu-arm/sdei-suspend
SDEI: Mask events after CPU wakeup
-rw-r--r-- | services/std_svc/sdei/sdei_main.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/services/std_svc/sdei/sdei_main.c b/services/std_svc/sdei/sdei_main.c index 9b78d7fbc..990d02876 100644 --- a/services/std_svc/sdei/sdei_main.c +++ b/services/std_svc/sdei/sdei_main.c @@ -81,6 +81,17 @@ static void *sdei_cpu_on_init(const void *arg) return NULL; } +/* CPU initialisation after wakeup from suspend */ +static void *sdei_cpu_wakeup_init(const void *arg) +{ + SDEI_LOG("Events masked on %lx\n", read_mpidr_el1()); + + /* All PEs wake up with SDEI events masked */ + sdei_pe_mask(); + + return 0; +} + /* Initialise an SDEI class */ static void sdei_class_init(sdei_class_t class) { @@ -1075,3 +1086,6 @@ uint64_t sdei_smc_handler(uint32_t smc_fid, /* Subscribe to PSCI CPU on to initialize per-CPU SDEI configuration */ SUBSCRIBE_TO_EVENT(psci_cpu_on_finish, sdei_cpu_on_init); + +/* Subscribe to PSCI CPU suspend finisher for per-CPU configuration */ +SUBSCRIBE_TO_EVENT(psci_suspend_pwrdown_finish, sdei_cpu_wakeup_init); |