From 7d849b41e7de907a8d458f7e7282733fe32d6110 Mon Sep 17 00:00:00 2001
From: Rahix <rahix@rahix.de>
Date: Sat, 17 Aug 2019 08:53:24 +0200
Subject: [PATCH] fix(rtc): Trigger immediately if alarm is scheduled in the
 past

Signed-off-by: Rahix <rahix@rahix.de>
---
 epicardium/modules/rtc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/epicardium/modules/rtc.c b/epicardium/modules/rtc.c
index a72ffe8f..8aa2e3f6 100644
--- a/epicardium/modules/rtc.c
+++ b/epicardium/modules/rtc.c
@@ -58,6 +58,15 @@ int epic_rtc_schedule_alarm(uint32_t timestamp)
 {
 	int res;
 
+	/*
+	 * Check if the timestamp lies in the past and if so, trigger
+	 * immediately.
+	 */
+	if (epic_rtc_get_seconds() >= timestamp) {
+		api_interrupt_trigger(EPIC_INT_RTC_ALARM);
+		return 0;
+	}
+
 	NVIC_EnableIRQ(RTC_IRQn);
 
 	while ((res = RTC_SetTimeofdayAlarm(MXC_RTC, timestamp)) == E_BUSY)
-- 
GitLab