Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d875a4b0 authored by Krzysztof Helt's avatar Krzysztof Helt Committed by David S. Miller
Browse files

rtc-m48t59: fix setting of a year on m48t08 and m48t02 rtcs



Fix setting of a year in m48t08 and m48t02 clocks.
They do not have century bits and setting them
causes the year to overflow (bit 0x80 set).

Problem found by Robert Reif on Sun Sparcstation 20.

Signed-off-by: default avatarKrzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3baca76f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ static int m48t59_rtc_set_time(struct device *dev, struct rtc_time *tm)
	M48T59_WRITE((BIN2BCD(tm->tm_mon + 1) & 0x1F), M48T59_MONTH);
	M48T59_WRITE(BIN2BCD(tm->tm_year % 100), M48T59_YEAR);

	if (tm->tm_year/100)
	if (pdata->type == M48T59RTC_TYPE_M48T59 && (tm->tm_year / 100))
		val = (M48T59_WDAY_CEB | M48T59_WDAY_CB);
	val |= (BIN2BCD(tm->tm_wday) & 0x07);
	M48T59_WRITE(val, M48T59_WDAY);