summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2011-03-03 11:26:01 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 10:59:54 +0200
commit9e145894f31382f02728dd5eb40acf7ff484d592 (patch)
treec554239a62bd1aa249fd46807be4c1fe5d7fc473
parent26740ac724defecc78a078a4a4e73eedabe24e15 (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>
-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 4bcf9ca2818..587f593c17e 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;