rtc: pcf50633: fix month off-by-one error
authorRask Ingemann Lambertsen <rask@sygehus.dk>
Wed, 11 Nov 2009 22:26:36 +0000 (14:26 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Nov 2009 15:25:57 +0000 (07:25 -0800)
The PCF50633 stores a month value of 1-12, but the kernel wants 0-11.

Signed-off-by: Rask Ingemann Lambertsen <rask@sygehus.dk>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Cc: Paul Gortmaker <p_gortmaker@yahoo.com>
Cc: Balaji Rao <balajirrao@openmoko.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-pcf50633.c

index f4dd87e..77b40dd 100644 (file)
@@ -70,7 +70,7 @@ static void pcf2rtc_time(struct rtc_time *rtc, struct pcf50633_time *pcf)
        rtc->tm_hour = bcd2bin(pcf->time[PCF50633_TI_HOUR]);
        rtc->tm_wday = bcd2bin(pcf->time[PCF50633_TI_WKDAY]);
        rtc->tm_mday = bcd2bin(pcf->time[PCF50633_TI_DAY]);
-       rtc->tm_mon = bcd2bin(pcf->time[PCF50633_TI_MONTH]);
+       rtc->tm_mon = bcd2bin(pcf->time[PCF50633_TI_MONTH]) - 1;
        rtc->tm_year = bcd2bin(pcf->time[PCF50633_TI_YEAR]) + 100;
 }
 
@@ -81,7 +81,7 @@ static void rtc2pcf_time(struct pcf50633_time *pcf, struct rtc_time *rtc)
        pcf->time[PCF50633_TI_HOUR] = bin2bcd(rtc->tm_hour);
        pcf->time[PCF50633_TI_WKDAY] = bin2bcd(rtc->tm_wday);
        pcf->time[PCF50633_TI_DAY] = bin2bcd(rtc->tm_mday);
-       pcf->time[PCF50633_TI_MONTH] = bin2bcd(rtc->tm_mon);
+       pcf->time[PCF50633_TI_MONTH] = bin2bcd(rtc->tm_mon + 1);
        pcf->time[PCF50633_TI_YEAR] = bin2bcd(rtc->tm_year % 100);
 }