Re: [3/6] 2.6.21-rc4: known regressions

Maxim
2007-03-28T15:01:37Z

On Wednesday 28 March 2007 16:41:48 Ingo Molnar wrote:
>
> * Maxim <maximlevitsky@gmail.com> wrote:
>
> > I almost sure I know why this happens,
>
> cool! Your patch is a definite improvement on my t60 (where
> suspend/resume never worked with hpet enabled). But it does not fix
> everything - for example the timings are way off after resume. Thomas?
>
> Ingo
>

The problem is that HPET consists of two parts:
one is a main counter and second is a a timers.

To enable main counter one must set HPET_CFG_ENABLE.
It is set only on boot, and not on resume now.

But on my system I think bios re-enables it.

Secondary to enable HPET to act as a timer on IRQ0 and to make it replace RTC IRQ8 one must set
HPET_CFG_LEGACY

This bit is definitely not set on resume, so on my system I get a hang if I use HPET as clockevents device,
and on other system where bios doesn't reenable HPET, then even if HPET is used as timing device
'date won't advance'

But I set those bits only in initialization of HPET clockevents device, and I set always, when it is turned on,
It is not that good,but works.

Now I don't have a clue how to set those bits if only HPET is used as clock source because now clocksources
don't have _any_ resume hook.

The timing problem you mention I think isd connected to the fact that HPET is not enabled instantly after resume, but after some time when clockevents
core calls HPET to enable event timer.

Best regards,
Maxim Levitsky