Esempio n. 1
0
void rthal_timer_release(int cpu)
{
#ifdef CONFIG_GENERIC_CLOCKEVENTS
	ipipe_release_tickdev(cpu);
#endif
	rthal_irq_release(RTHAL_TIMER_IRQ);

	if (rthal_ktimer_saved_mode == KTIMER_MODE_PERIODIC)
		rthal_timer_set_periodic();
	else if (rthal_ktimer_saved_mode == KTIMER_MODE_ONESHOT)
		/* We need to keep the timing cycle alive for the kernel. */
		rthal_trigger_irq(RTHAL_TIMER_IRQ);
}
Esempio n. 2
0
void rthal_timer_release(int cpu)
{
#ifdef CONFIG_IPIPE_CORE
	rthal_tickdev_release(cpu);
#endif /* CONFIG_IPIPE_CORE */

	if (--cpu_timers_requested > 0)
		return;

#ifndef CONFIG_IPIPE_CORE
	rthal_irq_release(RTHAL_TIMER_IRQ);
#endif /* !CONFIG_IPIPE_CORE */
	rthal_timer_set_periodic();
}
Esempio n. 3
0
void rthal_timer_release(int cpu)
{
	ipipe_release_tickdev(cpu);

	if (--cpu_timers_requested > 0)
		return;

#ifdef CONFIG_SMP
	rthal_irq_release(RTHAL_TIMER_IPI);
#endif /* CONFIG_SMP */
	rthal_irq_release(RTHAL_TIMER_IRQ);

	if (rthal_ktimer_saved_mode == KTIMER_MODE_PERIODIC)
		rthal_timer_set_periodic();
	else if (rthal_ktimer_saved_mode == KTIMER_MODE_ONESHOT)
		rthal_timer_set_oneshot(0);
}