aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/rtc
diff options
context:
space:
mode:
authorBaolin Wang <baolin.wang@linaro.org>2018-10-18 04:52:30 -0400
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2018-10-24 20:35:42 -0400
commit3822d1bb0df18aa28930f19bc46e0704aea1be0f (patch)
treedab8e4b37be5c2c83d7701485def1454513bcef8 /drivers/rtc
parentbf2c532b67fc077051e17de4a1304a83e5ca5b15 (diff)
rtc: sc27xx: Always read normal alarm when registering RTC device
When registering one RTC device, it will check to see if there is an alarm already set in RTC hardware by reading RTC alarm, at this time we should always read the normal alarm put in always-on region by checking the rtc->registered flag. Signed-off-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r--drivers/rtc/rtc-sc27xx.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/rtc/rtc-sc27xx.c b/drivers/rtc/rtc-sc27xx.c
index 72bb002c88ec..b4eb3b3c6c2c 100644
--- a/drivers/rtc/rtc-sc27xx.c
+++ b/drivers/rtc/rtc-sc27xx.c
@@ -415,10 +415,14 @@ static int sprd_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
415 u32 val; 415 u32 val;
416 416
417 /* 417 /*
418 * If aie_timer is enabled, we should get the normal alarm time. 418 * Before RTC device is registered, it will check to see if there is an
419 * alarm already set in RTC hardware, and we always read the normal
420 * alarm at this time.
421 *
422 * Or if aie_timer is enabled, we should get the normal alarm time.
419 * Otherwise we should get auxiliary alarm time. 423 * Otherwise we should get auxiliary alarm time.
420 */ 424 */
421 if (rtc->rtc && rtc->rtc->aie_timer.enabled == 0) 425 if (rtc->rtc && rtc->rtc->registered && rtc->rtc->aie_timer.enabled == 0)
422 return sprd_rtc_read_aux_alarm(dev, alrm); 426 return sprd_rtc_read_aux_alarm(dev, alrm);
423 427
424 ret = sprd_rtc_get_secs(rtc, SPRD_RTC_ALARM, &secs); 428 ret = sprd_rtc_get_secs(rtc, SPRD_RTC_ALARM, &secs);