rtc: ds1511: drop useless computation
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Tue, 27 Feb 2024 23:04:17 +0000 (00:04 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 29 Feb 2024 21:15:46 +0000 (22:15 +0100)
All the callers of ds1511_rtc_set_time will use the same epoch for tm_year
which is defined as the number of years minus 1900 since POSIX.1-2001.

Link: https://lore.kernel.org/r/20240227230431.1837717-2-alexandre.belloni@bootlin.com
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-ds1511.c

index 87c52d2..a646bcf 100644 (file)
@@ -166,24 +166,13 @@ ds1511_wdog_disable(void)
 }
 #endif
 
-/*
- * set the rtc chip's idea of the time.
- * stupidly, some callers call with year unmolested;
- * and some call with  year = year - 1900.  thanks.
- */
 static int ds1511_rtc_set_time(struct device *dev, struct rtc_time *rtc_tm)
 {
        u8 mon, day, dow, hrs, min, sec, yrs, cen;
        unsigned long flags;
 
-       /*
-        * won't have to change this for a while
-        */
-       if (rtc_tm->tm_year < 1900)
-               rtc_tm->tm_year += 1900;
-
        yrs = rtc_tm->tm_year % 100;
-       cen = rtc_tm->tm_year / 100;
+       cen = 19 + rtc_tm->tm_year / 100;
        mon = rtc_tm->tm_mon + 1;   /* tm_mon starts at zero */
        day = rtc_tm->tm_mday;
        dow = rtc_tm->tm_wday & 0x7; /* automatic BCD */