rtc: em3027: correct month value
The RTC month value is 1-indexed, but the kernel assumes it is 0-indexed. This may result in the RTC not rolling over correctly. Signed-off-by: Ilya Ledvich <ilya@compulab.co.il> Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Link: https://lore.kernel.org/r/20191101095422.14787-1-ilya@compulab.co.il Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
parent
94303f8930
commit
394c051d0f
|
@ -71,7 +71,7 @@ static int em3027_get_time(struct device *dev, struct rtc_time *tm)
|
||||||
tm->tm_hour = bcd2bin(buf[2]);
|
tm->tm_hour = bcd2bin(buf[2]);
|
||||||
tm->tm_mday = bcd2bin(buf[3]);
|
tm->tm_mday = bcd2bin(buf[3]);
|
||||||
tm->tm_wday = bcd2bin(buf[4]);
|
tm->tm_wday = bcd2bin(buf[4]);
|
||||||
tm->tm_mon = bcd2bin(buf[5]);
|
tm->tm_mon = bcd2bin(buf[5]) - 1;
|
||||||
tm->tm_year = bcd2bin(buf[6]) + 100;
|
tm->tm_year = bcd2bin(buf[6]) + 100;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -94,7 +94,7 @@ static int em3027_set_time(struct device *dev, struct rtc_time *tm)
|
||||||
buf[3] = bin2bcd(tm->tm_hour);
|
buf[3] = bin2bcd(tm->tm_hour);
|
||||||
buf[4] = bin2bcd(tm->tm_mday);
|
buf[4] = bin2bcd(tm->tm_mday);
|
||||||
buf[5] = bin2bcd(tm->tm_wday);
|
buf[5] = bin2bcd(tm->tm_wday);
|
||||||
buf[6] = bin2bcd(tm->tm_mon);
|
buf[6] = bin2bcd(tm->tm_mon + 1);
|
||||||
buf[7] = bin2bcd(tm->tm_year % 100);
|
buf[7] = bin2bcd(tm->tm_year % 100);
|
||||||
|
|
||||||
/* write time/date registers */
|
/* write time/date registers */
|
||||||
|
|
Loading…
Reference in New Issue