[PATCH 4/7] rtc: Fill in weekdays before setting time

Sascha Hauer s.hauer at pengutronix.de
Mon Dec 14 03:43:28 PST 2015


Some rtcs store the weekday. Make sure it's filled in correctly before
passinf the time to the driver. This is easily done by converting it to
seconds-since-epoch and back to struct rtc_time.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 drivers/rtc/class.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c
index e87f5f7..8b047a6 100644
--- a/drivers/rtc/class.c
+++ b/drivers/rtc/class.c
@@ -46,10 +46,16 @@ EXPORT_SYMBOL(rtc_read_time);
 
 int rtc_set_time(struct rtc_device *rtc, struct rtc_time *tm)
 {
+	struct rtc_time time;
+	unsigned long secs;
+
 	if (rtc_valid_tm(tm))
 		return -EINVAL;
 
-	return rtc->ops->set_time(rtc, tm);
+	rtc_tm_to_time(tm, &secs);
+	rtc_time_to_tm(secs, &time);
+
+	return rtc->ops->set_time(rtc, &time);
 }
 EXPORT_SYMBOL(rtc_set_time);
 
-- 
2.6.2




More information about the barebox mailing list