Commit f933b44b authored by Jeenu Viswambharan's avatar Jeenu Viswambharan
Browse files

SDEI: Mask events after CPU wakeup



The specification requires that, after wakeup from a CPU suspend, the
dispatcher must mask all events on the CPU. This patch adds the feature
to the SDEI dispatcher by subscribing to the PSCI suspend to power down
event, and masking all events on the PE.

Change-Id: I9fe1d1bc2a58379ba7bba953a8d8b275fc18902c
Signed-off-by: default avatarJeenu Viswambharan <jeenu.viswambharan@arm.com>
parent 783fd8e0
...@@ -81,6 +81,17 @@ static void *sdei_cpu_on_init(const void *arg) ...@@ -81,6 +81,17 @@ static void *sdei_cpu_on_init(const void *arg)
return NULL; 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 */ /* Initialise an SDEI class */
static void sdei_class_init(sdei_class_t class) static void sdei_class_init(sdei_class_t class)
{ {
...@@ -1075,3 +1086,6 @@ uint64_t sdei_smc_handler(uint32_t smc_fid, ...@@ -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 PSCI CPU on to initialize per-CPU SDEI configuration */
SUBSCRIBE_TO_EVENT(psci_cpu_on_finish, sdei_cpu_on_init); 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);
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment