RE: [PATCH v3] alarmtimer: fix unexpected rtc interrupt when system resume from S3
From: Lee, Zhuo-hao
Date: Sun Nov 22 2015 - 20:58:41 EST
>Although from the earlier discussion it still isn't quite clear to me:
>Why must the HPET RTC emulation need to fire the alarm every 16ms? Is that not something that can be fixed?
This is hpet driver's behavior. Please check the following comment which is copied from the file hpet.c
/* HPET in LegacyReplacement Mode eats up RTC interrupt line. When, HPET
* is enabled, we support RTC interrupt functionality in software.
* RTC has 3 kinds of interrupts:
* 1) Update Interrupt - generate an interrupt, every sec, when RTC clock
* is updated
* 2) Alarm Interrupt - generate an interrupt at a specific time of day
* 3) Periodic Interrupt - generate periodic interrupt, with frequencies
* 2Hz-8192Hz (2Hz-64Hz for non-root user) (all freqs in powers of 2)
* (1) and (2) above are implemented using polling at a frequency of
* 64 Hz. The exact frequency is a tradeoff between accuracy and interrupt
* overhead. (DEFAULT_RTC_INT_FREQ)
* For (3), we use interrupts at 64Hz or user specified periodic
* frequency, whichever is higher.
The alarm interrupt have a frequency of 64Hz. This is a tradeoff between accuracy and interrupt overhead.
So that, I think 16ms(1/64s) interrupt is expected unless we change the driver's design.
However, changing the driver's behavior is a huge modification. This driver already exists for a long time
(starting from commit id :1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 or ealier).
So, I tend not to modify this driver's behavior.