Commit 394c051d authored by Ilya Ledvich's avatar Ilya Ledvich Committed by Alexandre Belloni

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: default avatarIlya Ledvich <ilya@compulab.co.il>
Reviewed-by: default avatarNobuhiro Iwamatsu <iwamatsu@nigauri.org>
Link: https://lore.kernel.org/r/20191101095422.14787-1-ilya@compulab.co.ilSigned-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
parent 94303f89
...@@ -71,7 +71,7 @@ static int em3027_get_time(struct device *dev, struct rtc_time *tm) ...@@ -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) ...@@ -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 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment