From 58b849c451ac1281c14bfc535ab7f411a0b736e0 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Wed, 25 Jan 2017 19:32:15 -0500 Subject: Move intrinsic RTC implmentation differences to driver files Some drivers set tm_wday just fine and do not need it coerced to be correct. Others set tm_yday, so don't overwrite what the driver sets; just zero it inside if it can't fill the field. Move calls to set_day_of_week() to the sorts of drivers that presumably required the hammer (FS#11814) in get_time() where the weekday isn't locked to the date. Change-Id: Idd0ded6bfc9d9f48fcc1a6074068164c42fcf24a --- firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c | 5 ++++- firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'firmware/target') diff --git a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c index 39cecc5291..6f6b58ca35 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/rtc-nano2g.c @@ -23,6 +23,7 @@ #include "kernel.h" #include "system.h" #include "pmu-target.h" +#include "timefuncs.h" void rtc_init(void) { @@ -41,10 +42,12 @@ int rtc_read_datetime(struct tm *tm) tm->tm_sec = buf[0]; tm->tm_min = buf[1]; tm->tm_hour = buf[2]; - tm->tm_wday = buf[3]; tm->tm_mday = buf[4]; tm->tm_mon = buf[5] - 1; tm->tm_year = buf[6] + 100; + tm->tm_yday = 0; /* Not implemented for now */ + + set_day_of_week(tm); return 0; } diff --git a/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c b/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c index 76ef8ecb00..384cded758 100644 --- a/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c +++ b/firmware/target/arm/s5l8702/ipod6g/rtc-ipod6g.c @@ -23,6 +23,7 @@ #include "kernel.h" #include "system.h" #include "pmu-target.h" +#include "timefuncs.h" void rtc_init(void) { @@ -41,10 +42,12 @@ int rtc_read_datetime(struct tm *tm) tm->tm_sec = buf[0]; tm->tm_min = buf[1]; tm->tm_hour = buf[2]; - tm->tm_wday = buf[3]; tm->tm_mday = buf[4]; tm->tm_mon = buf[5] - 1; tm->tm_year = buf[6] + 100; + tm->tm_yday = 0; /* Not implemented for now */ + + set_day_of_week(tm); return 0; } -- cgit v1.2.3