summaryrefslogtreecommitdiff
path: root/chip/lm4/system.c
diff options
context:
space:
mode:
Diffstat (limited to 'chip/lm4/system.c')
-rw-r--r--chip/lm4/system.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/chip/lm4/system.c b/chip/lm4/system.c
index eac0c48b0a..130fc34367 100644
--- a/chip/lm4/system.c
+++ b/chip/lm4/system.c
@@ -189,7 +189,7 @@ void __attribute__((section(".iram.text"))) __enter_hibernate(int hibctl)
uint32_t system_get_rtc(uint32_t *ss_ptr)
{
uint32_t rtc, rtc2;
- uint32_t rtcss;
+ uint32_t rtcss, rtcss2;
/*
* The hibernate module isn't synchronized, so need to read repeatedly
@@ -198,8 +198,9 @@ uint32_t system_get_rtc(uint32_t *ss_ptr)
do {
rtc = LM4_HIBERNATE_HIBRTCC;
rtcss = LM4_HIBERNATE_HIBRTCSS & 0x7fff;
+ rtcss2 = LM4_HIBERNATE_HIBRTCSS & 0x7fff;
rtc2 = LM4_HIBERNATE_HIBRTCC;
- } while (rtc != rtc2);
+ } while (rtc != rtc2 || rtcss != rtcss2);
if (ss_ptr)
*ss_ptr = rtcss;