Lines Matching refs:cpu
302 int cpu = (unsigned long)info; in cpuidle_coupled_handle_poke() local
303 cpumask_set_cpu(cpu, &cpuidle_coupled_poked); in cpuidle_coupled_handle_poke()
304 cpumask_clear_cpu(cpu, &cpuidle_coupled_poke_pending); in cpuidle_coupled_handle_poke()
319 static void cpuidle_coupled_poke(int cpu) in cpuidle_coupled_poke() argument
321 struct call_single_data *csd = &per_cpu(cpuidle_coupled_poke_cb, cpu); in cpuidle_coupled_poke()
323 if (!cpumask_test_and_set_cpu(cpu, &cpuidle_coupled_poke_pending)) in cpuidle_coupled_poke()
324 smp_call_function_single_async(cpu, csd); in cpuidle_coupled_poke()
337 int cpu; in cpuidle_coupled_poke_others() local
339 for_each_cpu(cpu, &coupled->coupled_cpus) in cpuidle_coupled_poke_others()
340 if (cpu != this_cpu && cpu_online(cpu)) in cpuidle_coupled_poke_others()
341 cpuidle_coupled_poke(cpu); in cpuidle_coupled_poke_others()
353 static int cpuidle_coupled_set_waiting(int cpu, in cpuidle_coupled_set_waiting() argument
356 coupled->requested_state[cpu] = next_state; in cpuidle_coupled_set_waiting()
372 static void cpuidle_coupled_set_not_waiting(int cpu, in cpuidle_coupled_set_not_waiting() argument
383 coupled->requested_state[cpu] = CPUIDLE_COUPLED_NOT_IDLE; in cpuidle_coupled_set_not_waiting()
395 static void cpuidle_coupled_set_done(int cpu, struct cpuidle_coupled *coupled) in cpuidle_coupled_set_done() argument
397 cpuidle_coupled_set_not_waiting(cpu, coupled); in cpuidle_coupled_set_done()
414 static int cpuidle_coupled_clear_pokes(int cpu) in cpuidle_coupled_clear_pokes() argument
416 if (!cpumask_test_cpu(cpu, &cpuidle_coupled_poke_pending)) in cpuidle_coupled_clear_pokes()
420 while (cpumask_test_cpu(cpu, &cpuidle_coupled_poke_pending)) in cpuidle_coupled_clear_pokes()
468 cpuidle_coupled_clear_pokes(dev->cpu); in cpuidle_enter_state_coupled()
482 cpumask_clear_cpu(dev->cpu, &cpuidle_coupled_poked); in cpuidle_enter_state_coupled()
484 w = cpuidle_coupled_set_waiting(dev->cpu, coupled, next_state); in cpuidle_enter_state_coupled()
493 cpumask_set_cpu(dev->cpu, &cpuidle_coupled_poked); in cpuidle_enter_state_coupled()
494 cpuidle_coupled_poke_others(dev->cpu, coupled); in cpuidle_enter_state_coupled()
507 !cpumask_test_cpu(dev->cpu, &cpuidle_coupled_poked)) { in cpuidle_enter_state_coupled()
508 if (cpuidle_coupled_clear_pokes(dev->cpu)) in cpuidle_enter_state_coupled()
512 cpuidle_coupled_set_not_waiting(dev->cpu, coupled); in cpuidle_enter_state_coupled()
517 cpuidle_coupled_set_not_waiting(dev->cpu, coupled); in cpuidle_enter_state_coupled()
526 cpuidle_coupled_clear_pokes(dev->cpu); in cpuidle_enter_state_coupled()
528 cpuidle_coupled_set_not_waiting(dev->cpu, coupled); in cpuidle_enter_state_coupled()
573 cpuidle_coupled_set_done(dev->cpu, coupled); in cpuidle_enter_state_coupled()
584 cpuidle_coupled_set_done(dev->cpu, coupled); in cpuidle_enter_state_coupled()
631 int cpu; in cpuidle_coupled_register_device() local
639 for_each_cpu(cpu, &dev->coupled_cpus) { in cpuidle_coupled_register_device()
640 other_dev = per_cpu(cpuidle_devices, cpu); in cpuidle_coupled_register_device()
663 csd = &per_cpu(cpuidle_coupled_poke_cb, dev->cpu); in cpuidle_coupled_register_device()
665 csd->info = (void *)(unsigned long)dev->cpu; in cpuidle_coupled_register_device()
699 int cpu = get_cpu(); in cpuidle_coupled_prevent_idle() local
703 cpuidle_coupled_poke_others(cpu, coupled); in cpuidle_coupled_prevent_idle()
718 int cpu = get_cpu(); in cpuidle_coupled_allow_idle() local
727 cpuidle_coupled_poke_others(cpu, coupled); in cpuidle_coupled_allow_idle()
743 int cpu = (unsigned long)hcpu; in cpuidle_coupled_cpu_notify() local
760 dev = per_cpu(cpuidle_devices, cpu); in cpuidle_coupled_cpu_notify()