dm: rtc: Rename mktime() and reduce the number of parameters
authorSimon Glass <sjg@chromium.org>
Mon, 20 Apr 2015 18:37:19 +0000 (12:37 -0600)
committerSimon Glass <sjg@chromium.org>
Wed, 6 May 2015 02:58:20 +0000 (20:58 -0600)
Most callers unpack the structure and pass each member. It seems better to
pass the whole structure instead, as with the C library. Also add an rtc_
prefix.

Signed-off-by: Simon Glass <sjg@chromium.org>
Acked-by: Heiko Schocher <hs@denx.de>
14 files changed:
drivers/rtc/at91sam9_rtt.c
drivers/rtc/bfin_rtc.c
drivers/rtc/date.c
drivers/rtc/ds1306.c
drivers/rtc/ds1374.c
drivers/rtc/ftrtc010.c
drivers/rtc/imxdi.c
drivers/rtc/mc13xxx-rtc.c
drivers/rtc/mpc8xx.c
drivers/rtc/mx27rtc.c
drivers/rtc/mxsrtc.c
drivers/rtc/pl031.c
include/rtc.h
post/drivers/rtc.c

index d3cdee0..a684ad6 100644 (file)
@@ -54,8 +54,7 @@ int rtc_set (struct rtc_time *tmp)
        at91_gpbr_t *gpbr = (at91_gpbr_t *) ATMEL_BASE_GPBR;
        ulong tim;
 
-       tim = mktime (tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                     tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+       tim = rtc_mktime(tmp);
 
        /* clear alarm, set prescaler to 32768, clear counter */
        writel(32768+AT91_RTT_RTTRST, &rtt->mr);
index 6cb1eba..a079a1d 100644 (file)
@@ -67,8 +67,7 @@ int rtc_set(struct rtc_time *tmp)
        wait_for_complete();
 
        /* Calculate number of seconds this incoming time represents */
-       remain = mktime(tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                       tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+       remain = rtc_mktime(tmp);
 
        /* Figure out how many days since epoch */
        days = remain / NUM_SECS_IN_DAY;
index 79beb94..8c643a0 100644 (file)
@@ -128,22 +128,23 @@ int rtc_to_tm(int tim, struct rtc_time *tm)
  * machines were long is 32-bit! (However, as time_t is signed, we
  * will already get problems at other places on 2038-01-19 03:14:08)
  */
-unsigned long
-mktime (unsigned int year, unsigned int mon,
-       unsigned int day, unsigned int hour,
-       unsigned int min, unsigned int sec)
+unsigned long rtc_mktime(const struct rtc_time *tm)
 {
-       if (0 >= (int) (mon -= 2)) {    /* 1..12 -> 11,12,1..10 */
+       int mon = tm->tm_mon;
+       int year = tm->tm_year;
+       int days, hours;
+
+       mon -= 2;
+       if (0 >= (int)mon) {    /* 1..12 -> 11,12,1..10 */
                mon += 12;              /* Puts Feb last since it has leap day */
                year -= 1;
        }
 
-       return (((
-               (unsigned long) (year/4 - year/100 + year/400 + 367*mon/12 + day) +
-                       year*365 - 719499
-           )*24 + hour /* now have hours */
-         )*60 + min /* now have minutes */
-       )*60 + sec; /* finally seconds */
+       days = (unsigned long)(year / 4 - year / 100 + year / 400 +
+                       367 * mon / 12 + tm->tm_mday) +
+                       year * 365 - 719499;
+       hours = days * 24 + tm->tm_hour;
+       return (hours * 60 + tm->tm_min) * 60 + tm->tm_sec;
 }
 
 #endif
index 3fe6721..7dd3e19 100644 (file)
@@ -180,8 +180,7 @@ int rtc_set (struct rtc_time *tmp)
        {
                ulong tim;
 
-               tim = mktime (tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                             tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+               tim = rtc_mktime(tmp);
 
                immap->im_sitk.sitk_rtck = KAPWR_KEY;
                immap->im_sit.sit_rtc = tim;
index 04793b5..7847357 100644 (file)
@@ -147,9 +147,7 @@ int rtc_set (struct rtc_time *tmp){
        if (tmp->tm_year < 1970 || tmp->tm_year > 2069)
                printf("WARNING: year should be between 1970 and 2069!\n");
 
-       time = mktime(tmp->tm_year, tmp->tm_mon,
-                       tmp->tm_mday, tmp->tm_hour,
-                       tmp->tm_min, tmp->tm_sec);
+       time = rtc_mktime(tmp);
 
        DEBUGR ("Set RTC s since 1.1.1970: %ld (0x%02lx)\n", time, time);
 
index 3c5d955..7d0cfb3 100644 (file)
@@ -104,8 +104,7 @@ int rtc_set(struct rtc_time *tmp)
              tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
              tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 
-       new = mktime(tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_hour,
-                    tmp->tm_min, tmp->tm_sec);
+       new = rtc_mktime(tmp);
 
        now = ftrtc010_time();
 
index e89034d..17519ce 100644 (file)
@@ -209,8 +209,7 @@ int rtc_set(struct rtc_time *tmp)
                        goto err;
        }
 
-       now = mktime(tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                    tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+       now = rtc_mktime(tmp);
        /* zero the fractional part first */
        rc = DI_WRITE_WAIT(0, dtclr);
        if (rc == 0)
index 30c4e66..3e46336 100644 (file)
@@ -51,8 +51,7 @@ int rtc_set(struct rtc_time *rtc)
        if (!p)
                return -1;
 
-       time = mktime(rtc->tm_year, rtc->tm_mon, rtc->tm_mday,
-                     rtc->tm_hour, rtc->tm_min, rtc->tm_sec);
+       time = rtc_mktime(rtc);
        day = time / 86400;
        time %= 86400;
 
index 796295d..147a225 100644 (file)
@@ -44,8 +44,7 @@ int rtc_set (struct rtc_time *tmp)
                tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday,
                tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 
-       tim = mktime (tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                     tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+       tim = rtc_mktime(tmp);
 
        immr->im_sitk.sitk_rtck = KAPWR_KEY;
        immr->im_sit.sit_rtc = tim;
index 7ba74d3..29ccdf1 100644 (file)
@@ -40,8 +40,7 @@ int rtc_set(struct rtc_time *time)
        struct rtc_regs *rtc_regs = (struct rtc_regs *)IMX_RTC_BASE;
        uint32_t day, hour, min, sec;
 
-       sec = mktime(time->tm_year, time->tm_mon, time->tm_mday,
-               time->tm_hour, time->tm_min, time->tm_sec);
+       sec = rtc_mktime(time);
 
        day  = sec / (24 * 3600);
        sec  = sec % (24 * 3600);
index 82c2fbf..6e32154 100644 (file)
@@ -52,8 +52,7 @@ int rtc_set(struct rtc_time *time)
 {
        uint32_t secs;
 
-       secs = mktime(time->tm_year, time->tm_mon, time->tm_mday,
-               time->tm_hour, time->tm_min, time->tm_sec);
+       secs = rtc_mktime(time);
 
        return mxs_rtc_set_time(secs);
 }
index e6c1a6c..fc83049 100644 (file)
@@ -72,8 +72,7 @@ int rtc_set(struct rtc_time *tmp)
        }
 
        /* Calculate number of seconds this incoming time represents */
-       tim = mktime(tmp->tm_year, tmp->tm_mon, tmp->tm_mday,
-                       tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+       tim = rtc_mktime(tmp);
 
        RTC_WRITE_REG(RTC_LR, tim);
 
index 4b7ce61..b1a4bf0 100644 (file)
@@ -45,9 +45,6 @@ int rtc_get (struct rtc_time *);
 int rtc_set (struct rtc_time *);
 void rtc_reset (void);
 
-unsigned long mktime (unsigned int, unsigned int, unsigned int,
-                     unsigned int, unsigned int, unsigned int);
-
 /**
  * rtc_read8() - Read an 8-bit register
  *
@@ -110,4 +107,17 @@ int rtc_calc_weekday(struct rtc_time *time);
  */
 int rtc_to_tm(int time_t, struct rtc_time *time);
 
+/**
+ * rtc_mktime() - Convert a broken-out time into a time_t value
+ *
+ * The following fields need to be valid for this function to work:
+ *     tm_sec, tm_min, tm_hour, tm_mday, tm_mon, tm_year
+ *
+ * Note that tm_wday and tm_yday are ignored.
+ *
+ * @time:      Broken-out time to convert
+ * @return corresponding time_t value, seconds since 1970-01-01 00:00:00
+ */
+unsigned long rtc_mktime(const struct rtc_time *time);
+
 #endif /* _RTC_H_ */
index 8d7a788..c2e7391 100644 (file)
@@ -59,8 +59,7 @@ static int rtc_post_skip (ulong * diff)
 
 static void rtc_post_restore (struct rtc_time *tm, unsigned int sec)
 {
-       time_t t = mktime (tm->tm_year, tm->tm_mon, tm->tm_mday, tm->tm_hour,
-                                          tm->tm_min, tm->tm_sec) + sec;
+       time_t t = rtc_mktime(tm) + sec;
        struct rtc_time ntm;
 
        rtc_to_tm(t, &ntm);
@@ -116,9 +115,16 @@ int rtc_post_test (int flags)
        rtc_get (&svtm);
 
        for (i = 0; i < 12; i++) {
-               time_t t = mktime (ynl, i + 1, daysnl[i], 23, 59, 59);
+               time_t t;
                struct rtc_time tm;
 
+               tm.tm_year = ynl;
+               tm.tm_mon = i + 1;
+               tm.tm_mday = daysnl[i];
+               tm.tm_hour = 23;
+               tm.tm_min = 59;
+               tm.tm_sec = 59;
+               t = rtc_mktime(&tm);
                rtc_to_tm(t, &tm);
                rtc_set (&tm);
 
@@ -140,9 +146,17 @@ int rtc_post_test (int flags)
        }
 
        for (i = 0; i < 12; i++) {
-               time_t t = mktime (yl, i + 1, daysl[i], 23, 59, 59);
+               time_t t;
                struct rtc_time tm;
 
+               tm.tm_year = yl;
+               tm.tm_mon = i + 1;
+               tm.tm_mday = daysl[i];
+               tm.tm_hour = 23;
+               tm.tm_min = 59;
+               tm.tm_sec = 59;
+               t = rtc_mktime(&tm);
+
                rtc_to_tm(t, &tm);
                rtc_set (&tm);