/* Check, if the device is disfunctional and a place holder, which needs to be handled by the broadcast device.  */
int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu)
/* Check, if the device is disfunctional and a place holder, which needs to be handled by the broadcast device.  */
int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu)
{
	unsigned long flags;
	int ret = 0;
	raw_spin_lock_irqsave(&tick_broadcast_lock, flags);
	if (!tick_device_is_functional(dev)) {
		dev->event_handler = tick_handle_periodic;
		cpumask_set_cpu(cpu, tick_get_broadcast_mask());
		tick_broadcast_start_periodic(tick_broadcast_device.evtdev);
		ret = 1;
	} else {
		if (!(dev->features & CLOCK_EVT_FEAT_C3STOP)) {
			int cpu = smp_processor_id();
			cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
			tick_broadcast_clear_oneshot(cpu);
		}
	}
	raw_spin_unlock_irqrestore(&tick_broadcast_lock, flags);
	return ret;
}