rtc: ds1302: fix write value for day of week register
authorAkinobu Mita <akinobu.mita@gmail.com>
Sun, 10 Apr 2016 14:59:24 +0000 (23:59 +0900)
committerAlexandre Belloni <alexandre.belloni@free-electrons.com>
Fri, 20 May 2016 10:33:51 +0000 (12:33 +0200)
The valid range of day of week register for DS1302 is 1 to 7.  But the
set_time callback for rtc-ds1302 attempts to write the value of
tm->tm_wday which is in the range 0 to 6.  While the get_time callback
correctly decodes the register.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Sergey Yanovich <ynvich@gmail.com>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
drivers/rtc/rtc-ds1302.c

index 283e653fa1896aa9b60bfa91c5b366a22ec9973f..f5dd09fe5add5e65a40d9d178f0283a30c9e6548 100644 (file)
@@ -65,7 +65,7 @@ static int ds1302_rtc_set_time(struct device *dev, struct rtc_time *time)
        *bp++ = bin2bcd(time->tm_hour);
        *bp++ = bin2bcd(time->tm_mday);
        *bp++ = bin2bcd(time->tm_mon + 1);
-       *bp++ = time->tm_wday;
+       *bp++ = time->tm_wday + 1;
        *bp++ = bin2bcd(time->tm_year % 100);
        *bp++ = RTC_CMD_WRITE_DISABLE;