Re: [PATCH v2] Add suspend/resume for HPET

Ingo Molnar
2007-03-29T17:51:17Z

* Linus Torvalds <torvalds@linux-foundation.org> wrote:

> Btw, what about arch/x86_64/kernel/hpet.c?

at least wrt. suspend/resume it should be fine, because in
arch/x86_64/kernel/time.c it does this upon resume:

static int timer_resume(struct sys_device *dev)
{
if (hpet_address)
hpet_reenable();
else
i8254_timer_resume();

[ barring the issue that mixing two pieces of hardware like this in a
single resume function is wrong - all timer hardware should be
separated like we did it for i386. I've got 64-bit clockevents code in
-rt which does this separation. ]

> That thing seems totally broken. Lookie here:
>
> arch/x86_64/kernel/hpet.c:irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
> drivers/char/rtc.c:extern irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id);
>
> anybody see a problem? The x86-64 version doesn't seem to be very well
> maintained. Is there some fundamental reason why this file isn't
> shared across architectures?

there's no fundamental reason. x86_64 COW-ed hpet_timer.c and
time_hpet.c years ago and drifted off into different areas.
They should be unified: more power to arch/x86/ ;-)

Ingo