summaryrefslogtreecommitdiff
path: root/drivers/rtc
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2011-03-03 11:26:01 +0100
committerUlf Hansson <ulf.hansson@stericsson.com>2011-09-19 15:56:13 +0200
commitddcdbc8afb049771c96ea2d6316ff6d8cc75ab04 (patch)
tree8cb4ab8d9131b35bac6ab06737803be72c04caff /drivers/rtc
parentabd52985b45ed2f7cfdc0842dcf667c633a23eee (diff)
RTC: rtc-ab8500: Round alarm time upwards
Due to strange android design and the ab8500 hw has a wake up alarm resolution in minutes, we have to add one minute to make sure that we always wake up. ST-Ericsson Linux next: Not tested, ask SSM for ER ST-Ericsson ID: ER324148 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I6a424984cc41757e4d3ba98e8ea48975a85213eb Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/17496 Reviewed-by: QATOOLS Reviewed-by: Rickard ANDERSSON <rickard.andersson@stericsson.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-ab8500.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/rtc/rtc-ab8500.c b/drivers/rtc/rtc-ab8500.c
index d6bfc4f3658..89e282292d3 100644
--- a/drivers/rtc/rtc-ab8500.c
+++ b/drivers/rtc/rtc-ab8500.c
@@ -241,8 +241,19 @@ static int ab8500_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm)
*/
secs -= get_elapsed_seconds(AB8500_RTC_EPOCH);
+#ifndef CONFIG_ANDROID
+ secs += 30; /* Round to nearest minute */
+#endif
+
mins = secs / 60;
+#ifdef CONFIG_ANDROID
+ /*
+ * Needed due to Android believes all hw have a wake-up resolution
+ * in seconds.
+ */
+ mins++;
+#endif
buf[2] = mins & 0xFF;
buf[1] = (mins >> 8) & 0xFF;
buf[0] = (mins >> 16) & 0xFF;