On Wed, Oct 17, 2007 at 12:52:11AM +0900, Atsushi Nemoto wrote:
> With recent clockevent conversion, for typical r4k counter timer,
> setup_irq() for the timer interrupt is called three times.
> 1. from time_init() (#ifdef CONFIG_IRQ_CPU block)
> 2. from plat_timer_setup() (arch/tx4927/common/tx4927_setup.c, for example)
> 3. from mips_clockevent_init()
> Which one should remain?
I would suggest the one near where the clockevent device is registered.
> Also I found mips_timer_ack and cycles_per_jiffy are not used now.
> Can we remove them entirely?
I think so. Each clockevent device should rather try to be independent
of others. What made the old timer code such a mess is that it was
desparately trying to share resources giving everybody plenty of rope ...
> Furthermore, I wonder how to disable mips_clockevent_device even if
> the CPU has r4k counter. For example, pnx8550 has the r4k counter but
> needs special mips_timer_ack and clocksource_mips.read routine. I
> suppose current time code is broken for such platforms.
PNX and the old revisions of the R4000 which have a bug where the
compare interrupt can be lost if the counter is read just when it has
the same value as the compare register.