diff options
Diffstat (limited to 'services/std_svc/psci/psci_setup.c')
-rw-r--r-- | services/std_svc/psci/psci_setup.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/services/std_svc/psci/psci_setup.c b/services/std_svc/psci/psci_setup.c index 68f19a00..9e4955dc 100644 --- a/services/std_svc/psci/psci_setup.c +++ b/services/std_svc/psci/psci_setup.c @@ -189,9 +189,6 @@ static void psci_init_aff_map_node(unsigned long mpidr, if (state & PSCI_AFF_PRESENT) psci_set_state(&psci_aff_map[idx], PSCI_STATE_OFF); - /* Invalidate the suspend context for the node */ - psci_aff_map[idx].power_state = PSCI_INVALID_DATA; - /* * Associate a non-secure context with this affinity * instance through the context management library. @@ -199,6 +196,11 @@ static void psci_init_aff_map_node(unsigned long mpidr, linear_id = platform_get_core_pos(mpidr); assert(linear_id < PLATFORM_CORE_COUNT); + /* Invalidate the suspend context for the node */ + set_cpu_data_by_index(linear_id, + psci_svc_cpu_data.power_state, + PSCI_INVALID_DATA); + cm_set_context_by_mpidr(mpidr, (void *) &psci_ns_context[linear_id], NON_SECURE); |