rtc_time_to_tm() and rtc_tm_to_time() are deprecated because they
rely on 32bits variables and that will make rtc break in y2038/2016.
Stop using those two functions to safer 64bits ones.

Signed-off-by: Benjamin Gaignard <[email protected]>
CC: Maxime Ripard <[email protected]>
CC: Chen-Yu Tsai <[email protected]>
CC: Alessandro Zummo <[email protected]>
CC: Alexandre Belloni <[email protected]>
CC: [email protected]
CC: [email protected]
CC: [email protected]
---
 drivers/rtc/rtc-sun6i.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
index 39cbc12..9928f74 100644
--- a/drivers/rtc/rtc-sun6i.c
+++ b/drivers/rtc/rtc-sun6i.c
@@ -120,7 +120,7 @@ struct sun6i_rtc_dev {
        struct device *dev;
        void __iomem *base;
        int irq;
-       unsigned long alarm;
+       unsigned long long alarm;
 
        struct clk_hw hw;
        struct clk_hw *int_osc;
@@ -342,7 +342,7 @@ static int sun6i_rtc_getalarm(struct device *dev, struct 
rtc_wkalrm *wkalrm)
 
        wkalrm->enabled = !!(alrm_en & SUN6I_ALRM_EN_CNT_EN);
        wkalrm->pending = !!(alrm_st & SUN6I_ALRM_EN_CNT_EN);
-       rtc_time_to_tm(chip->alarm, &wkalrm->time);
+       rtc_time64_to_tm(chip->alarm, &wkalrm->time);
 
        return 0;
 }
@@ -352,9 +352,9 @@ static int sun6i_rtc_setalarm(struct device *dev, struct 
rtc_wkalrm *wkalrm)
        struct sun6i_rtc_dev *chip = dev_get_drvdata(dev);
        struct rtc_time *alrm_tm = &wkalrm->time;
        struct rtc_time tm_now;
-       unsigned long time_now = 0;
-       unsigned long time_set = 0;
-       unsigned long time_gap = 0;
+       unsigned long long time_now = 0;
+       unsigned long long time_set = 0;
+       unsigned long long time_gap = 0;
        int ret = 0;
 
        ret = sun6i_rtc_gettime(dev, &tm_now);
@@ -363,8 +363,8 @@ static int sun6i_rtc_setalarm(struct device *dev, struct 
rtc_wkalrm *wkalrm)
                return -EINVAL;
        }
 
-       rtc_tm_to_time(alrm_tm, &time_set);
-       rtc_tm_to_time(&tm_now, &time_now);
+       time_set = rtc_tm_to_time64(alrm_tm);
+       time_now = rtc_tm_to_time64(&tm_now);
        if (time_set <= time_now) {
                dev_err(dev, "Date to set in the past\n");
                return -EINVAL;
-- 
1.9.1

Reply via email to