From 5510e1fe3b68708e0b539cf615833fea52d389eb Mon Sep 17 00:00:00 2001 From: Tomaz Solc Date: Fri, 16 Mar 2012 10:14:00 +0100 Subject: Wait for writes to finish upon exiting RTC config This fixes race condition when rtc_get_counter_val() call immediately follows rtc_set_counter_val(). --- lib/stm32/f1/rtc.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'lib/stm32') diff --git a/lib/stm32/f1/rtc.c b/lib/stm32/f1/rtc.c index 0b7769e..08a4953 100644 --- a/lib/stm32/f1/rtc.c +++ b/lib/stm32/f1/rtc.c @@ -99,14 +99,13 @@ void rtc_enter_config_mode(void) void rtc_exit_config_mode(void) { - /* u32 reg32; */ + u32 reg32; /* Exit configuration mode. */ RTC_CRL &= ~RTC_CRL_CNF; /* Wait until the RTOFF bit is 1 (our RTC register write finished). */ - /* while ((reg32 = (RTC_CRL & RTC_CRL_RTOFF)) == 0); */ - /* TODO: Unnecessary since we poll the bit on config entry(?) */ + while ((reg32 = (RTC_CRL & RTC_CRL_RTOFF)) == 0); } void rtc_set_alarm_time(u32 alarm_time) -- cgit v1.2.3