Which platform? On Wed, 2009-04-08 at 09:57 -0700, David Wuertele wrote: > Has the system timer paradigm changed between 2.6.18 and 2.6.29? > I'm trying to update my Broadcom-based embedded system to 2.6.29, > and I'm running into problems getting the system timer to run. > I'm looking for a clue about how to port forward my arch/mips/brcmstb/* > files, specifically I want to write a plat_time_init() function > that does for 2.6.29 what plat_timer_setup(struct irqaction *irq) > did for 2.6.18. > > In 2.6.18, arch/mips/kernel/time.c defines a high-level ISR called > timer_interrupt (which does things like lock xtime_lock, call > mips_hpt_read() and do_timer(regs), and return IRQ_HANDLED). time.c > then defines a struct irqaction timer_irqaction and sets > timer_interrupt to be the .handler field. Finally, time.c calls > plat_timer_setup(timer_irqaction), which is defined by the Broadcom > patches to call setup_irq(timer_irqaction). > > In 2.6.29, arch/mips/kernel/time.c has a comment saying that the new > plat_time_init hook does not receive the irqaction pointer argument > anymore, because each "clock_event_device" should use its own struct > irqrequest. > > I tried having the broadcom arch's plat_time_init() function create an > irqaction and call setup_irq(), but the timer_interrupt() function > that used to be in arch/mips/kernel/time.c doesn't exist anymore, and > I can't seem to find the replacement. > > Is there a replacement for timer_interrupt()? I thought that maybe > the hrtimer_interrupt() might be the one, but it requires something > called a struct clock_event_device. When I looked at clock_event_device > it was very complex, and I get the feeling I'm barking up the wrong tree. > > Can anyone offer pointers on how to call setup_irq() from plat_time_init()? > > Thanks, > Dave > > >