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@xxxxxxxxxxxxxx> --- 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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox