• Home
  • Raw
  • Download

Lines Matching refs:cpu

34 static void __mcpm_cpu_going_down(unsigned int cpu, unsigned int cluster)  in __mcpm_cpu_going_down()  argument
36 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_GOING_DOWN; in __mcpm_cpu_going_down()
37 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_going_down()
47 static void __mcpm_cpu_down(unsigned int cpu, unsigned int cluster) in __mcpm_cpu_down() argument
50 mcpm_sync.clusters[cluster].cpus[cpu].cpu = CPU_DOWN; in __mcpm_cpu_down()
51 sync_cache_w(&mcpm_sync.clusters[cluster].cpus[cpu].cpu); in __mcpm_cpu_down()
82 static bool __mcpm_outbound_enter_critical(unsigned int cpu, unsigned int cluster) in __mcpm_outbound_enter_critical() argument
107 if (i == cpu) in __mcpm_outbound_enter_critical()
111 cpustate = c->cpus[i].cpu; in __mcpm_outbound_enter_critical()
116 sync_cache_r(&c->cpus[i].cpu); in __mcpm_outbound_enter_critical()
143 void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr) in mcpm_set_entry_vector() argument
146 mcpm_entry_vectors[cluster][cpu] = val; in mcpm_set_entry_vector()
147 sync_cache_w(&mcpm_entry_vectors[cluster][cpu]); in mcpm_set_entry_vector()
152 void mcpm_set_early_poke(unsigned cpu, unsigned cluster, in mcpm_set_early_poke() argument
155 unsigned long *poke = &mcpm_entry_early_pokes[cluster][cpu][0]; in mcpm_set_early_poke()
195 int mcpm_cpu_power_up(unsigned int cpu, unsigned int cluster) in mcpm_cpu_power_up() argument
200 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in mcpm_cpu_power_up()
212 cpu_is_down = !mcpm_cpu_use_count[cluster][cpu]; in mcpm_cpu_power_up()
215 mcpm_cpu_use_count[cluster][cpu]++; in mcpm_cpu_power_up()
224 BUG_ON(mcpm_cpu_use_count[cluster][cpu] != 1 && in mcpm_cpu_power_up()
225 mcpm_cpu_use_count[cluster][cpu] != 2); in mcpm_cpu_power_up()
230 ret = platform_ops->cpu_powerup(cpu, cluster); in mcpm_cpu_power_up()
241 unsigned int mpidr, cpu, cluster; in mcpm_cpu_power_down() local
246 cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); in mcpm_cpu_power_down()
248 pr_debug("%s: cpu %u cluster %u\n", __func__, cpu, cluster); in mcpm_cpu_power_down()
255 __mcpm_cpu_going_down(cpu, cluster); in mcpm_cpu_power_down()
259 mcpm_cpu_use_count[cluster][cpu]--; in mcpm_cpu_power_down()
260 BUG_ON(mcpm_cpu_use_count[cluster][cpu] != 0 && in mcpm_cpu_power_down()
261 mcpm_cpu_use_count[cluster][cpu] != 1); in mcpm_cpu_power_down()
262 cpu_going_down = !mcpm_cpu_use_count[cluster][cpu]; in mcpm_cpu_power_down()
265 if (last_man && __mcpm_outbound_enter_critical(cpu, cluster)) { in mcpm_cpu_power_down()
266 platform_ops->cpu_powerdown_prepare(cpu, cluster); in mcpm_cpu_power_down()
273 platform_ops->cpu_powerdown_prepare(cpu, cluster); in mcpm_cpu_power_down()
286 __mcpm_cpu_down(cpu, cluster); in mcpm_cpu_power_down()
308 int mcpm_wait_for_cpu_powerdown(unsigned int cpu, unsigned int cluster) in mcpm_wait_for_cpu_powerdown() argument
315 ret = platform_ops->wait_for_powerdown(cpu, cluster); in mcpm_wait_for_cpu_powerdown()
318 __func__, cpu, cluster, ret); in mcpm_wait_for_cpu_powerdown()
331 unsigned int cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); in mcpm_cpu_suspend() local
334 platform_ops->cpu_suspend_prepare(cpu, cluster); in mcpm_cpu_suspend()
342 unsigned int mpidr, cpu, cluster; in mcpm_cpu_powered_up() local
350 cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); in mcpm_cpu_powered_up()
355 cpu_was_down = !mcpm_cpu_use_count[cluster][cpu]; in mcpm_cpu_powered_up()
361 mcpm_cpu_use_count[cluster][cpu] = 1; in mcpm_cpu_powered_up()
363 platform_ops->cpu_is_up(cpu, cluster); in mcpm_cpu_powered_up()
377 unsigned int cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0); in nocache_trampoline() local
381 mcpm_set_entry_vector(cpu, cluster, cpu_resume_no_hyp); in nocache_trampoline()
384 __mcpm_cpu_going_down(cpu, cluster); in nocache_trampoline()
385 BUG_ON(!__mcpm_outbound_enter_critical(cpu, cluster)); in nocache_trampoline()
388 __mcpm_cpu_down(cpu, cluster); in nocache_trampoline()
439 mcpm_sync.clusters[i].cpus[j].cpu = CPU_DOWN; in mcpm_sync_init()
445 mcpm_sync.clusters[this_cluster].cpus[i].cpu = CPU_UP; in mcpm_sync_init()