rtc: nuc900: stop validating rtc_time in .read_time
authorAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 21 Feb 2018 10:27:10 +0000 (11:27 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Fri, 2 Mar 2018 09:12:17 +0000 (10:12 +0100)
The RTC core is always calling rtc_valid_tm after the read_time callback.
It is not necessary to call it before returning from the callback.

Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
drivers/rtc/rtc-nuc900.c

index 4ed8111..7da664a 100644 (file)
@@ -102,8 +102,8 @@ static int *check_rtc_access_enable(struct nuc900_rtc *nuc900_rtc)
        return NULL;
 }
 
-static int nuc900_rtc_bcd2bin(unsigned int timereg,
-                               unsigned int calreg, struct rtc_time *tm)
+static void nuc900_rtc_bcd2bin(unsigned int timereg,
+                              unsigned int calreg, struct rtc_time *tm)
 {
        tm->tm_mday     = bcd2bin(calreg >> 0);
        tm->tm_mon      = bcd2bin(calreg >> 8);
@@ -112,8 +112,6 @@ static int nuc900_rtc_bcd2bin(unsigned int timereg,
        tm->tm_sec      = bcd2bin(timereg >> 0);
        tm->tm_min      = bcd2bin(timereg >> 8);
        tm->tm_hour     = bcd2bin(timereg >> 16);
-
-       return rtc_valid_tm(tm);
 }
 
 static void nuc900_rtc_bin2bcd(struct device *dev, struct rtc_time *settm,
@@ -156,7 +154,9 @@ static int nuc900_rtc_read_time(struct device *dev, struct rtc_time *tm)
        timeval = __raw_readl(rtc->rtc_reg + REG_RTC_TLR);
        clrval  = __raw_readl(rtc->rtc_reg + REG_RTC_CLR);
 
-       return nuc900_rtc_bcd2bin(timeval, clrval, tm);
+       nuc900_rtc_bcd2bin(timeval, clrval, tm);
+
+       return 0;
 }
 
 static int nuc900_rtc_set_time(struct device *dev, struct rtc_time *tm)
@@ -189,7 +189,9 @@ static int nuc900_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)
        timeval = __raw_readl(rtc->rtc_reg + REG_RTC_TAR);
        carval  = __raw_readl(rtc->rtc_reg + REG_RTC_CAR);
 
-       return nuc900_rtc_bcd2bin(timeval, carval, &alrm->time);
+       nuc900_rtc_bcd2bin(timeval, carval, &alrm->time);
+
+       return rtc_valid_tm(&alrm->time);
 }
 
 static int nuc900_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)