Lines Matching defs:cpu
112 #define CPU_IDX(cluster, cpu) ((cluster << 2) + cpu)
136 static bool clst_single_pwr(int cluster, int cpu)
140 int my_idx = (cluster << 2) + cpu;
146 static bool clst_single_on(int cluster, int cpu)
149 int my_idx = (cluster << 2) + cpu;
157 /* Prevent interrupts from spuriously waking up this cpu */
164 /* Enable the gic cpu interface */
212 static void mcdi_ctrl_before_hotplug_on(int cluster, int cpu)
215 mcdi_pause_clr(cluster, CPU_IDX(cluster, cpu), OFF);
216 mcdi_pause_set(cluster, CPU_IDX(cluster, cpu), ON);
220 static void mcdi_ctrl_before_hotplug_off(int cluster, int cpu, bool cluster_off)
224 CPU_IDX(cluster, cpu), OFF);
227 static void mcdi_ctrl_cluster_cpu_off(int cluster, int cpu, bool cluster_off)
232 sspm_standbywfi_irq_enable(CPU_IDX(cluster, cpu));
253 static void hotplug_ctrl_cluster_on(int cluster, int cpu)
256 mcdi_hotplug_clr(cluster, CPU_IDX(cluster, cpu), OFF);
266 static void hotplug_ctrl_cpu_on(int cluster, int cpu)
269 mcdi_hotplug_set(cluster, CPU_IDX(cluster, cpu), ON);
271 spm_poweron_cpu(cluster, cpu);
274 static void hotplug_ctrl_cpu_on_finish(int cluster, int cpu)
276 spm_disable_cpu_auto_off(cluster, cpu);
279 mcdi_hotplug_clr(cluster, CPU_IDX(cluster, cpu), ON);
281 mcdi_pause_clr(cluster, CPU_IDX(cluster, cpu), ON);
283 mcdi_avail_cpu_mask_set(BIT(CPU_IDX(cluster, cpu)));
286 static void hotplug_ctrl_cluster_cpu_off(int cluster, int cpu, bool cluster_off)
288 mcdi_avail_cpu_mask_clr(BIT(CPU_IDX(cluster, cpu)));
292 CPU_IDX(cluster, cpu), OFF);
294 spm_enable_cpu_auto_off(cluster, cpu);
299 spm_set_cpu_power_off(cluster, cpu);
305 int cpu = MPIDR_AFFLVL0_VAL(mpidr);
310 mcdi_ctrl_before_hotplug_on(cluster, cpu);
311 hotplug_ctrl_cluster_on(cluster, cpu);
314 /* init cpu reset arch as AARCH64 of cluster */
321 hotplug_ctrl_cpu_on(cluster, cpu);
329 int cpu = MPIDR_AFFLVL0_VAL(mpidr);
334 clst_single_on(cluster, cpu));
341 mcdi_ctrl_before_hotplug_off(cluster, cpu, cluster_off);
342 hotplug_ctrl_cluster_cpu_off(cluster, cpu, cluster_off);
348 int cpu = MPIDR_AFFLVL0_VAL(mpidr);
358 hotplug_ctrl_cpu_on_finish(cluster, cpu);
364 int cpu = MPIDR_AFFLVL0_VAL(mpidr);
369 bool cluster_off = MCDI_C2 && afflvl1 && clst_single_pwr(cluster, cpu);
398 mcdi_ctrl_cluster_cpu_off(cluster, cpu, cluster_off);
577 /* Init cpu reset arch as AARCH64 of cluster 0 */