Lines Matching refs:cpu

40 static inline int plat_mt_pm_invoke(int (*func)(unsigned int cpu,  in plat_mt_pm_invoke()  argument
42 int cpu, const psci_power_state_t *state) in plat_mt_pm_invoke()
47 ret = func(cpu, state); in plat_mt_pm_invoke()
56 static void plat_cpu_pwrdwn_common(unsigned int cpu, in plat_cpu_pwrdwn_common() argument
59 assert(cpu == plat_my_core_pos()); in plat_cpu_pwrdwn_common()
62 (void)plat_mt_pm_invoke(plat_mt_pm->pwr_cpu_dwn, cpu, state); in plat_cpu_pwrdwn_common()
71 gicv3_cpuif_disable(cpu); in plat_cpu_pwrdwn_common()
72 gicv3_rdistif_off(cpu); in plat_cpu_pwrdwn_common()
75 static void plat_cpu_pwron_common(unsigned int cpu, in plat_cpu_pwron_common() argument
78 assert(cpu == plat_my_core_pos()); in plat_cpu_pwron_common()
81 (void)plat_mt_pm_invoke(plat_mt_pm->pwr_cpu_on, cpu, state); in plat_cpu_pwron_common()
92 gicv3_rdistif_on(cpu); in plat_cpu_pwron_common()
93 gicv3_cpuif_enable(cpu); in plat_cpu_pwron_common()
103 static void plat_cluster_pwrdwn_common(unsigned int cpu, in plat_cluster_pwrdwn_common() argument
106 assert(cpu == plat_my_core_pos()); in plat_cluster_pwrdwn_common()
109 if (plat_mt_pm_invoke(plat_mt_pm->pwr_cluster_dwn, cpu, state) != 0) { in plat_cluster_pwrdwn_common()
120 static void plat_cluster_pwron_common(unsigned int cpu, in plat_cluster_pwron_common() argument
123 assert(cpu == plat_my_core_pos()); in plat_cluster_pwron_common()
126 if (plat_mt_pm_invoke(plat_mt_pm->pwr_cluster_on, cpu, state) != 0) { in plat_cluster_pwron_common()
139 static void plat_mcusys_pwrdwn_common(unsigned int cpu, in plat_mcusys_pwrdwn_common() argument
142 assert(cpu == plat_my_core_pos()); in plat_mcusys_pwrdwn_common()
145 if (plat_mt_pm_invoke(plat_mt_pm->pwr_mcusys_dwn, cpu, state) != 0) { in plat_mcusys_pwrdwn_common()
153 static void plat_mcusys_pwron_common(unsigned int cpu, in plat_mcusys_pwron_common() argument
156 assert(cpu == plat_my_core_pos()); in plat_mcusys_pwron_common()
159 if (plat_mt_pm_invoke(plat_mt_pm->pwr_mcusys_on, cpu, state) != 0) { in plat_mcusys_pwron_common()
170 (void)plat_mt_pm_invoke(plat_mt_pm->pwr_mcusys_on_finished, cpu, state); in plat_mcusys_pwron_common()
190 unsigned int cpu = (unsigned int)plat_core_pos_by_mpidr(mpidr); in plat_power_domain_on() local
193 if (cpu >= PLATFORM_CORE_COUNT) { in plat_power_domain_on()
202 mcucfg_init_archstate(cluster, cpu, true); in plat_power_domain_on()
203 mcucfg_set_bootaddr(cluster, cpu, secure_entrypoint); in plat_power_domain_on()
204 spm_poweron_cpu(cluster, cpu); in plat_power_domain_on()
212 unsigned int cpu = (unsigned int)plat_core_pos_by_mpidr(mpidr); in plat_power_domain_on_finish() local
214 assert(cpu < PLATFORM_CORE_COUNT); in plat_power_domain_on_finish()
217 mcucfg_enable_gic_wakeup(0U, cpu); in plat_power_domain_on_finish()
220 plat_cluster_pwron_common(cpu, state, 0U); in plat_power_domain_on_finish()
223 plat_cpu_pwron_common(cpu, state, 0U); in plat_power_domain_on_finish()
229 unsigned int cpu = (unsigned int)plat_core_pos_by_mpidr(mpidr); in plat_power_domain_off() local
231 assert(cpu < PLATFORM_CORE_COUNT); in plat_power_domain_off()
233 plat_cpu_pwrdwn_common(cpu, state, 0U); in plat_power_domain_off()
234 spm_poweroff_cpu(0U, cpu); in plat_power_domain_off()
237 mcucfg_disable_gic_wakeup(0U, cpu); in plat_power_domain_off()
240 plat_cluster_pwrdwn_common(cpu, state, 0U); in plat_power_domain_off()
246 unsigned int cpu = plat_my_core_pos(); in plat_power_domain_suspend() local
248 assert(cpu < PLATFORM_CORE_COUNT); in plat_power_domain_suspend()
251 (void)plat_mt_pm_invoke(plat_mt_pm->pwr_prompt, cpu, state); in plat_power_domain_suspend()
254 plat_cpu_pwrdwn_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend()
258 plat_cluster_pwrdwn_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend()
263 plat_mcusys_pwrdwn_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend()
269 unsigned int cpu = plat_my_core_pos(); in plat_power_domain_suspend_finish() local
271 assert(cpu < PLATFORM_CORE_COUNT); in plat_power_domain_suspend_finish()
276 plat_mcusys_pwron_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend_finish()
281 plat_cluster_pwron_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend_finish()
285 plat_cpu_pwron_common(cpu, state, plat_power_state[cpu]); in plat_power_domain_suspend_finish()
287 (void)plat_mt_pm_invoke(plat_mt_pm->pwr_reflect, cpu, state); in plat_power_domain_suspend_finish()
295 unsigned int cpu = plat_my_core_pos(); in plat_validate_power_state() local
318 plat_power_state[cpu] = power_state; in plat_validate_power_state()
325 unsigned int cpu = plat_my_core_pos(); in plat_get_sys_suspend_power_state() local
331 plat_power_state[cpu] = in plat_get_sys_suspend_power_state()
337 &plat_power_state[cpu], in plat_get_sys_suspend_power_state()
338 sizeof(plat_power_state[cpu])); in plat_get_sys_suspend_power_state()