Lines Matching refs:bc
58 static void tick_broadcast_start_periodic(struct clock_event_device *bc) in tick_broadcast_start_periodic() argument
60 if (bc) in tick_broadcast_start_periodic()
61 tick_setup_periodic(bc, 1); in tick_broadcast_start_periodic()
258 struct clock_event_device *bc, *dev; in tick_do_broadcast_on_off() local
268 bc = tick_broadcast_device.evtdev; in tick_do_broadcast_on_off()
304 clockevents_shutdown(bc); in tick_do_broadcast_on_off()
307 tick_broadcast_start_periodic(bc); in tick_do_broadcast_on_off()
309 tick_broadcast_setup_oneshot(bc); in tick_do_broadcast_on_off()
344 struct clock_event_device *bc; in tick_shutdown_broadcast() local
350 bc = tick_broadcast_device.evtdev; in tick_shutdown_broadcast()
354 if (bc && cpumask_empty(tick_broadcast_mask)) in tick_shutdown_broadcast()
355 clockevents_shutdown(bc); in tick_shutdown_broadcast()
363 struct clock_event_device *bc; in tick_suspend_broadcast() local
368 bc = tick_broadcast_device.evtdev; in tick_suspend_broadcast()
369 if (bc) in tick_suspend_broadcast()
370 clockevents_shutdown(bc); in tick_suspend_broadcast()
377 struct clock_event_device *bc; in tick_resume_broadcast() local
383 bc = tick_broadcast_device.evtdev; in tick_resume_broadcast()
385 if (bc) { in tick_resume_broadcast()
386 clockevents_set_mode(bc, CLOCK_EVT_MODE_RESUME); in tick_resume_broadcast()
391 tick_broadcast_start_periodic(bc); in tick_resume_broadcast()
397 broadcast = tick_resume_broadcast_oneshot(bc); in tick_resume_broadcast()
436 static void tick_broadcast_set_affinity(struct clock_event_device *bc, in tick_broadcast_set_affinity() argument
439 if (!(bc->features & CLOCK_EVT_FEAT_DYNIRQ)) in tick_broadcast_set_affinity()
442 if (cpumask_equal(bc->cpumask, cpumask)) in tick_broadcast_set_affinity()
445 bc->cpumask = cpumask; in tick_broadcast_set_affinity()
446 irq_set_affinity(bc->irq, bc->cpumask); in tick_broadcast_set_affinity()
449 static int tick_broadcast_set_event(struct clock_event_device *bc, int cpu, in tick_broadcast_set_event() argument
454 if (bc->mode != CLOCK_EVT_MODE_ONESHOT) in tick_broadcast_set_event()
455 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); in tick_broadcast_set_event()
457 ret = clockevents_program_event(bc, expires, force); in tick_broadcast_set_event()
459 tick_broadcast_set_affinity(bc, cpumask_of(cpu)); in tick_broadcast_set_event()
463 int tick_resume_broadcast_oneshot(struct clock_event_device *bc) in tick_resume_broadcast_oneshot() argument
465 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); in tick_resume_broadcast_oneshot()
556 struct clock_event_device *bc, *dev; in tick_broadcast_oneshot_control() local
580 bc = tick_broadcast_device.evtdev; in tick_broadcast_oneshot_control()
596 dev->next_event.tv64 < bc->next_event.tv64) in tick_broadcast_oneshot_control()
597 tick_broadcast_set_event(bc, cpu, dev->next_event, 1); in tick_broadcast_oneshot_control()
694 void tick_broadcast_setup_oneshot(struct clock_event_device *bc) in tick_broadcast_setup_oneshot() argument
699 if (bc->event_handler != tick_handle_oneshot_broadcast) { in tick_broadcast_setup_oneshot()
700 int was_periodic = bc->mode == CLOCK_EVT_MODE_PERIODIC; in tick_broadcast_setup_oneshot()
702 bc->event_handler = tick_handle_oneshot_broadcast; in tick_broadcast_setup_oneshot()
716 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); in tick_broadcast_setup_oneshot()
719 tick_broadcast_set_event(bc, cpu, tick_next_period, 1); in tick_broadcast_setup_oneshot()
721 bc->next_event.tv64 = KTIME_MAX; in tick_broadcast_setup_oneshot()
739 struct clock_event_device *bc; in tick_broadcast_switch_to_oneshot() local
745 bc = tick_broadcast_device.evtdev; in tick_broadcast_switch_to_oneshot()
746 if (bc) in tick_broadcast_switch_to_oneshot()
747 tick_broadcast_setup_oneshot(bc); in tick_broadcast_switch_to_oneshot()
785 struct clock_event_device *bc = tick_broadcast_device.evtdev; in tick_broadcast_oneshot_available() local
787 return bc ? bc->features & CLOCK_EVT_FEAT_ONESHOT : false; in tick_broadcast_oneshot_available()