summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Prisk <linux@prisktech.co.nz>2013-02-04 14:28:44 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-05 20:38:47 +1100
commit3bdf8cd3226fe11f26ce32bbb4c5e381cf807c89 (patch)
tree34345ec62eee5542e55f9f2070557eb2ce711fd6
parent1363b563a728097f34af9469452ec656995ca033 (diff)
drivers/rtc/rtc-vt8500.c: fix year field in vt8500_rtc_set_time()
The year field is incorrectly masked when setting the date. If the year is beyond 2099, the year field will be incorrectly updated in hardware. This patch masks the year field correctly. Signed-off-by: Edgar Toernig <froese@gmx.de> Signed-off-by: Tony Prisk <linux@prisktech.co.nz> 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>
-rw-r--r--drivers/rtc/rtc-vt8500.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/rtc/rtc-vt8500.c b/drivers/rtc/rtc-vt8500.c
index 00c930f4b6f3..2730533e2d2d 100644
--- a/drivers/rtc/rtc-vt8500.c
+++ b/drivers/rtc/rtc-vt8500.c
@@ -137,7 +137,7 @@ static int vt8500_rtc_set_time(struct device *dev, struct rtc_time *tm)
return -EINVAL;
}
- writel((bin2bcd(tm->tm_year - 100) << DATE_YEAR_S)
+ writel((bin2bcd(tm->tm_year % 100) << DATE_YEAR_S)
| (bin2bcd(tm->tm_mon + 1) << DATE_MONTH_S)
| (bin2bcd(tm->tm_mday))
| ((tm->tm_year >= 200) << DATE_CENTURY_S),