From 6167cbfe90c1627d43ad49c7af70123cd228b4ff Mon Sep 17 00:00:00 2001 From: Bruno-w Date: Tue, 8 Nov 2016 11:27:47 +0100 Subject: [PATCH] Bug fix: RTC alarm wake-up Because of the S3C2410 bug (INT_SRCPND_RTC not set on alarm wake-up), the firmware need to check on power-on if an alarm is triggered by comparing the alarm date to the system date. But, It failed because the firmware read a system date that is 1 second behind the alarm date, while the cpu was waked-up by an alarm. This is because x49gp uses 2 different functions to read host system time in 2 key routines, leading to a 1 second gap when used consecutively. This fix solved this issue. --- s3c2410_rtc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/s3c2410_rtc.c b/s3c2410_rtc.c index 4699b83..b4b2f23 100644 --- a/s3c2410_rtc.c +++ b/s3c2410_rtc.c @@ -265,10 +265,10 @@ s3c2410_rtc_read(void *opaque, target_phys_addr_t offset) if (S3C2410_RTC_BCDSEC <= offset && offset <= S3C2410_RTC_BCDYEAR) { struct tm *tm; - time_t t; + struct timeval tv; - t = time(0); - tm = localtime(&t); + gettimeofday(&tv, NULL); + tm = localtime(&tv.tv_sec); switch (offset) { case S3C2410_RTC_BCDSEC: