Re: + rtc-disable-hpet-emulation-on-suspend.patch added to -mm tree

From: Ingo Molnar
Date: Wed Oct 14 2009 - 01:58:23 EST



* akpm@xxxxxxxxxxxxxxxxxxxx <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> ------------------------------------------------------
> Subject: rtc: disable hpet emulation on suspend
> From: Maxim Levitsky <maximlevitsky@xxxxxxxxx>
>
> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/