Lines Matching refs:cpu
39 static void tick_broadcast_clear_oneshot(int cpu);
42 static void tick_broadcast_oneshot_offline(unsigned int cpu);
47 static inline void tick_broadcast_clear_oneshot(int cpu) { } in tick_broadcast_clear_oneshot() argument
50 static inline void tick_broadcast_oneshot_offline(unsigned int cpu) { } in tick_broadcast_oneshot_offline() argument
67 static struct clock_event_device *tick_get_oneshot_wakeup_device(int cpu);
69 const struct clock_event_device *tick_get_wakeup_device(int cpu) in tick_get_wakeup_device() argument
71 return tick_get_oneshot_wakeup_device(cpu); in tick_get_wakeup_device()
102 static struct clock_event_device *tick_get_oneshot_wakeup_device(int cpu) in tick_get_oneshot_wakeup_device() argument
104 return per_cpu(tick_oneshot_wakeup_device, cpu); in tick_get_oneshot_wakeup_device()
117 int cpu) in tick_set_oneshot_wakeup_device() argument
119 struct clock_event_device *curdev = tick_get_oneshot_wakeup_device(cpu); in tick_set_oneshot_wakeup_device()
132 if (!cpumask_equal(newdev->cpumask, cpumask_of(cpu))) in tick_set_oneshot_wakeup_device()
144 per_cpu(tick_oneshot_wakeup_device, cpu) = newdev; in tick_set_oneshot_wakeup_device()
148 static struct clock_event_device *tick_get_oneshot_wakeup_device(int cpu) in tick_get_oneshot_wakeup_device() argument
154 int cpu) in tick_set_oneshot_wakeup_device() argument
163 void tick_install_broadcast_device(struct clock_event_device *dev, int cpu) in tick_install_broadcast_device() argument
167 if (tick_set_oneshot_wakeup_device(dev, cpu)) in tick_install_broadcast_device()
247 int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu) in tick_device_uses_broadcast() argument
264 cpumask_set_cpu(cpu, tick_broadcast_mask); in tick_device_uses_broadcast()
276 cpumask_clear_cpu(cpu, tick_broadcast_mask); in tick_device_uses_broadcast()
284 if (!cpumask_test_cpu(cpu, tick_broadcast_on)) in tick_device_uses_broadcast()
285 cpumask_clear_cpu(cpu, tick_broadcast_mask); in tick_device_uses_broadcast()
297 tick_broadcast_clear_oneshot(cpu); in tick_device_uses_broadcast()
318 ret = cpumask_test_cpu(cpu, tick_broadcast_mask); in tick_device_uses_broadcast()
348 int cpu = smp_processor_id(); in tick_do_broadcast() local
355 if (cpumask_test_cpu(cpu, mask)) { in tick_do_broadcast()
358 cpumask_clear_cpu(cpu, mask); in tick_do_broadcast()
442 int cpu, bc_stopped; in tick_broadcast_control() local
459 cpu = smp_processor_id(); in tick_broadcast_control()
468 cpumask_set_cpu(cpu, tick_broadcast_on); in tick_broadcast_control()
469 if (!cpumask_test_and_set_cpu(cpu, tick_broadcast_mask)) { in tick_broadcast_control()
487 cpumask_clear_cpu(cpu, tick_broadcast_on); in tick_broadcast_control()
488 if (cpumask_test_and_clear_cpu(cpu, tick_broadcast_mask)) { in tick_broadcast_control()
537 void tick_broadcast_offline(unsigned int cpu) in tick_broadcast_offline() argument
540 cpumask_clear_cpu(cpu, tick_broadcast_mask); in tick_broadcast_offline()
541 cpumask_clear_cpu(cpu, tick_broadcast_on); in tick_broadcast_offline()
542 tick_broadcast_oneshot_offline(cpu); in tick_broadcast_offline()
651 static void tick_broadcast_set_event(struct clock_event_device *bc, int cpu, in tick_broadcast_set_event() argument
658 tick_broadcast_set_affinity(bc, cpumask_of(cpu)); in tick_broadcast_set_event()
694 int cpu, next_cpu = 0; in tick_handle_oneshot_broadcast() local
703 for_each_cpu(cpu, tick_broadcast_oneshot_mask) { in tick_handle_oneshot_broadcast()
712 td = &per_cpu(tick_cpu_device, cpu); in tick_handle_oneshot_broadcast()
714 cpumask_set_cpu(cpu, tmpmask); in tick_handle_oneshot_broadcast()
720 cpumask_set_cpu(cpu, tick_broadcast_pending_mask); in tick_handle_oneshot_broadcast()
723 next_cpu = cpu; in tick_handle_oneshot_broadcast()
770 static int broadcast_needs_cpu(struct clock_event_device *bc, int cpu) in broadcast_needs_cpu() argument
776 return bc->bound_on == cpu ? -EBUSY : 0; in broadcast_needs_cpu()
798 int cpu) in ___tick_broadcast_oneshot_control() argument
815 ret = broadcast_needs_cpu(bc, cpu); in ___tick_broadcast_oneshot_control()
830 if (!cpumask_test_and_set_cpu(cpu, tick_broadcast_oneshot_mask)) { in ___tick_broadcast_oneshot_control()
831 WARN_ON_ONCE(cpumask_test_cpu(cpu, tick_broadcast_pending_mask)); in ___tick_broadcast_oneshot_control()
846 if (cpumask_test_cpu(cpu, tick_broadcast_force_mask)) { in ___tick_broadcast_oneshot_control()
849 tick_broadcast_set_event(bc, cpu, dev->next_event); in ___tick_broadcast_oneshot_control()
857 ret = broadcast_needs_cpu(bc, cpu); in ___tick_broadcast_oneshot_control()
859 cpumask_clear_cpu(cpu, in ___tick_broadcast_oneshot_control()
865 if (cpumask_test_and_clear_cpu(cpu, tick_broadcast_oneshot_mask)) { in ___tick_broadcast_oneshot_control()
876 if (cpumask_test_and_clear_cpu(cpu, in ___tick_broadcast_oneshot_control()
919 cpumask_set_cpu(cpu, tick_broadcast_force_mask); in ___tick_broadcast_oneshot_control()
936 int cpu) in tick_oneshot_wakeup_control() argument
944 wd = tick_get_oneshot_wakeup_device(cpu); in tick_oneshot_wakeup_control()
966 int cpu = smp_processor_id(); in __tick_broadcast_oneshot_control() local
968 if (!tick_oneshot_wakeup_control(state, td, cpu)) in __tick_broadcast_oneshot_control()
972 return ___tick_broadcast_oneshot_control(state, td, cpu); in __tick_broadcast_oneshot_control()
986 static void tick_broadcast_clear_oneshot(int cpu) in tick_broadcast_clear_oneshot() argument
988 cpumask_clear_cpu(cpu, tick_broadcast_oneshot_mask); in tick_broadcast_clear_oneshot()
989 cpumask_clear_cpu(cpu, tick_broadcast_pending_mask); in tick_broadcast_clear_oneshot()
996 int cpu; in tick_broadcast_init_next_event() local
998 for_each_cpu(cpu, mask) { in tick_broadcast_init_next_event()
999 td = &per_cpu(tick_cpu_device, cpu); in tick_broadcast_init_next_event()
1029 int cpu = smp_processor_id(); in tick_broadcast_setup_oneshot() local
1060 tick_broadcast_clear_oneshot(cpu); in tick_broadcast_setup_oneshot()
1083 cpumask_clear_cpu(cpu, tmpmask); in tick_broadcast_setup_oneshot()
1120 tick_broadcast_set_event(bc, cpu, nexttick); in tick_broadcast_setup_oneshot()
1186 static void tick_broadcast_oneshot_offline(unsigned int cpu) in tick_broadcast_oneshot_offline() argument
1188 if (tick_get_oneshot_wakeup_device(cpu)) in tick_broadcast_oneshot_offline()
1189 tick_set_oneshot_wakeup_device(NULL, cpu); in tick_broadcast_oneshot_offline()
1195 cpumask_clear_cpu(cpu, tick_broadcast_oneshot_mask); in tick_broadcast_oneshot_offline()
1196 cpumask_clear_cpu(cpu, tick_broadcast_pending_mask); in tick_broadcast_oneshot_offline()
1197 cpumask_clear_cpu(cpu, tick_broadcast_force_mask); in tick_broadcast_oneshot_offline()