Messages in this thread | | | Date | Wed, 14 Oct 2009 07:56:39 +0200 | From | Ingo Molnar <> | Subject | Re: + rtc-disable-hpet-emulation-on-suspend.patch added to -mm tree |
| |
* akpm@linux-foundation.org <akpm@linux-foundation.org> wrote:
> ------------------------------------------------------ > Subject: rtc: disable hpet emulation on suspend > From: Maxim Levitsky <maximlevitsky@gmail.com> > > I noticed that rtc wont generate interrupts after a resume from disk. > Here hpet rtc emulation is used. > > Problem is that rtc hpet comparator, isn't reinitialized after resume. > Easiest way to solve this, is always mask all hpet interrupts on suspend > This is triggered, when suspending with alarm set. > > > Otherwise, hpet driver will think it doesn't need to reinitialize > the rtc comparator, thus rtc interrupts won't work. > > This emulation isn't need for wakealarm.
> - hpet_mask_rtc_irq_bit(mask); > > + /* shut down hpet emulation - we don't need it for alarm */ > + hpet_mask_rtc_irq_bit(RTC_PIE|RTC_AIE|RTC_UIE); > cmos_checkintr(cmos, tmp);
Would be nice to also unconditionally reinitialize the hpet/rtc after resume - regardless of what state we left it in.
Also, are you sure this does not break things like CONFIG_PM_TEST_SUSPEND=y which rely on wakealarm?
Ingo
| |