Lines Matching refs:bc

38 static void tick_broadcast_setup_oneshot(struct clock_event_device *bc);
40 static void tick_resume_broadcast_oneshot(struct clock_event_device *bc);
45 static inline void tick_broadcast_setup_oneshot(struct clock_event_device *bc) { BUG(); } in tick_broadcast_setup_oneshot() argument
47 static inline void tick_resume_broadcast_oneshot(struct clock_event_device *bc) { } in tick_resume_broadcast_oneshot() argument
76 static void tick_broadcast_start_periodic(struct clock_event_device *bc) in tick_broadcast_start_periodic() argument
78 if (bc) in tick_broadcast_start_periodic()
79 tick_setup_periodic(bc, 1); in tick_broadcast_start_periodic()
248 struct clock_event_device *bc = tick_broadcast_device.evtdev; in tick_device_uses_broadcast() local
265 tick_broadcast_start_periodic(bc); in tick_device_uses_broadcast()
267 tick_broadcast_setup_oneshot(bc); in tick_device_uses_broadcast()
306 if (cpumask_empty(tick_broadcast_mask) && bc) in tick_device_uses_broadcast()
307 clockevents_shutdown(bc); in tick_device_uses_broadcast()
316 if (bc && !(bc->features & CLOCK_EVT_FEAT_HRTIMER)) in tick_device_uses_broadcast()
355 struct clock_event_device *bc = tick_broadcast_device.evtdev; in tick_do_broadcast() local
370 local = !(bc->features & CLOCK_EVT_FEAT_HRTIMER); in tick_do_broadcast()
439 struct clock_event_device *bc, *dev; in tick_broadcast_control() local
459 bc = tick_broadcast_device.evtdev; in tick_broadcast_control()
477 if (bc && !(bc->features & CLOCK_EVT_FEAT_HRTIMER) && in tick_broadcast_control()
495 if (bc) { in tick_broadcast_control()
498 clockevents_shutdown(bc); in tick_broadcast_control()
501 tick_broadcast_start_periodic(bc); in tick_broadcast_control()
503 tick_broadcast_setup_oneshot(bc); in tick_broadcast_control()
525 struct clock_event_device *bc = tick_broadcast_device.evtdev; in tick_shutdown_broadcast() local
528 if (bc && cpumask_empty(tick_broadcast_mask)) in tick_shutdown_broadcast()
529 clockevents_shutdown(bc); in tick_shutdown_broadcast()
550 struct clock_event_device *bc; in tick_suspend_broadcast() local
555 bc = tick_broadcast_device.evtdev; in tick_suspend_broadcast()
556 if (bc) in tick_suspend_broadcast()
557 clockevents_shutdown(bc); in tick_suspend_broadcast()
580 struct clock_event_device *bc; in tick_resume_broadcast() local
585 bc = tick_broadcast_device.evtdev; in tick_resume_broadcast()
587 if (bc) { in tick_resume_broadcast()
588 clockevents_tick_resume(bc); in tick_resume_broadcast()
593 tick_broadcast_start_periodic(bc); in tick_resume_broadcast()
597 tick_resume_broadcast_oneshot(bc); in tick_resume_broadcast()
633 static void tick_broadcast_set_affinity(struct clock_event_device *bc, in tick_broadcast_set_affinity() argument
636 if (!(bc->features & CLOCK_EVT_FEAT_DYNIRQ)) in tick_broadcast_set_affinity()
639 if (cpumask_equal(bc->cpumask, cpumask)) in tick_broadcast_set_affinity()
642 bc->cpumask = cpumask; in tick_broadcast_set_affinity()
643 irq_set_affinity(bc->irq, bc->cpumask); in tick_broadcast_set_affinity()
646 static void tick_broadcast_set_event(struct clock_event_device *bc, int cpu, in tick_broadcast_set_event() argument
649 if (!clockevent_state_oneshot(bc)) in tick_broadcast_set_event()
650 clockevents_switch_state(bc, CLOCK_EVT_STATE_ONESHOT); in tick_broadcast_set_event()
652 clockevents_program_event(bc, expires, 1); in tick_broadcast_set_event()
653 tick_broadcast_set_affinity(bc, cpumask_of(cpu)); in tick_broadcast_set_event()
656 static void tick_resume_broadcast_oneshot(struct clock_event_device *bc) in tick_resume_broadcast_oneshot() argument
658 clockevents_switch_state(bc, CLOCK_EVT_STATE_ONESHOT); in tick_resume_broadcast_oneshot()
765 static int broadcast_needs_cpu(struct clock_event_device *bc, int cpu) in broadcast_needs_cpu() argument
767 if (!(bc->features & CLOCK_EVT_FEAT_HRTIMER)) in broadcast_needs_cpu()
769 if (bc->next_event == KTIME_MAX) in broadcast_needs_cpu()
771 return bc->bound_on == cpu ? -EBUSY : 0; in broadcast_needs_cpu()
774 static void broadcast_shutdown_local(struct clock_event_device *bc, in broadcast_shutdown_local() argument
782 if (bc->features & CLOCK_EVT_FEAT_HRTIMER) { in broadcast_shutdown_local()
783 if (broadcast_needs_cpu(bc, smp_processor_id())) in broadcast_shutdown_local()
785 if (dev->next_event < bc->next_event) in broadcast_shutdown_local()
795 struct clock_event_device *bc, *dev = td->evtdev; in ___tick_broadcast_oneshot_control() local
800 bc = tick_broadcast_device.evtdev; in ___tick_broadcast_oneshot_control()
810 ret = broadcast_needs_cpu(bc, cpu); in ___tick_broadcast_oneshot_control()
820 if (bc->features & CLOCK_EVT_FEAT_HRTIMER) in ___tick_broadcast_oneshot_control()
829 broadcast_shutdown_local(bc, dev); in ___tick_broadcast_oneshot_control()
843 } else if (dev->next_event < bc->next_event) { in ___tick_broadcast_oneshot_control()
844 tick_broadcast_set_event(bc, cpu, dev->next_event); in ___tick_broadcast_oneshot_control()
852 ret = broadcast_needs_cpu(bc, cpu); in ___tick_broadcast_oneshot_control()
1019 static void tick_broadcast_setup_oneshot(struct clock_event_device *bc) in tick_broadcast_setup_oneshot() argument
1023 if (!bc) in tick_broadcast_setup_oneshot()
1027 if (bc->event_handler != tick_handle_oneshot_broadcast) { in tick_broadcast_setup_oneshot()
1028 int was_periodic = clockevent_state_periodic(bc); in tick_broadcast_setup_oneshot()
1030 bc->event_handler = tick_handle_oneshot_broadcast; in tick_broadcast_setup_oneshot()
1046 clockevents_switch_state(bc, CLOCK_EVT_STATE_ONESHOT); in tick_broadcast_setup_oneshot()
1048 tick_broadcast_set_event(bc, cpu, nextevt); in tick_broadcast_setup_oneshot()
1050 bc->next_event = KTIME_MAX; in tick_broadcast_setup_oneshot()
1068 struct clock_event_device *bc; in tick_broadcast_switch_to_oneshot() local
1074 bc = tick_broadcast_device.evtdev; in tick_broadcast_switch_to_oneshot()
1075 if (bc) in tick_broadcast_switch_to_oneshot()
1076 tick_broadcast_setup_oneshot(bc); in tick_broadcast_switch_to_oneshot()
1084 struct clock_event_device *bc; in hotplug_cpu__broadcast_tick_pull() local
1088 bc = tick_broadcast_device.evtdev; in hotplug_cpu__broadcast_tick_pull()
1090 if (bc && broadcast_needs_cpu(bc, deadcpu)) { in hotplug_cpu__broadcast_tick_pull()
1092 clockevents_program_event(bc, bc->next_event, 1); in hotplug_cpu__broadcast_tick_pull()
1128 struct clock_event_device *bc = tick_broadcast_device.evtdev; in tick_broadcast_oneshot_available() local
1130 return bc ? bc->features & CLOCK_EVT_FEAT_ONESHOT : false; in tick_broadcast_oneshot_available()
1136 struct clock_event_device *bc = tick_broadcast_device.evtdev; in __tick_broadcast_oneshot_control() local
1138 if (!bc || (bc->features & CLOCK_EVT_FEAT_HRTIMER)) in __tick_broadcast_oneshot_control()