From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933841AbdGLIMz (ORCPT ); Wed, 12 Jul 2017 04:12:55 -0400 Received: from mail-wr0-f171.google.com ([209.85.128.171]:35744 "EHLO mail-wr0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757003AbdGLIFT (ORCPT ); Wed, 12 Jul 2017 04:05:19 -0400 From: Benjamin Gaignard To: benjamin.gaignard@linaro.org Cc: linaro-kernel@lists.linaro.org, Alessandro Zummo , Alexandre Belloni , rtc-linux@googlegroups.com, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/22] rtc: cpcap: stop using rtc deprecated functions Date: Wed, 12 Jul 2017 10:04:26 +0200 Message-Id: <1499846682-14093-7-git-send-email-benjamin.gaignard@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1499846682-14093-1-git-send-email-benjamin.gaignard@linaro.org> References: <1499846682-14093-1-git-send-email-benjamin.gaignard@linaro.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. version 2: - fix compilation issues by using do_div() Signed-off-by: Benjamin Gaignard CC: Alessandro Zummo CC: Alexandre Belloni CC: rtc-linux@googlegroups.com CC: linux-kernel@vger.kernel.org --- drivers/rtc/rtc-cpcap.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/rtc/rtc-cpcap.c b/drivers/rtc/rtc-cpcap.c index 3a0333e..e92b346 100644 --- a/drivers/rtc/rtc-cpcap.c +++ b/drivers/rtc/rtc-cpcap.c @@ -58,24 +58,23 @@ struct cpcap_rtc { static void cpcap2rtc_time(struct rtc_time *rtc, struct cpcap_time *cpcap) { unsigned long int tod; - unsigned long int time; + unsigned long long time; tod = (cpcap->tod1 & TOD1_MASK) | ((cpcap->tod2 & TOD2_MASK) << 8); time = tod + ((cpcap->day & DAY_MASK) * SECS_PER_DAY); - rtc_time_to_tm(time, rtc); + rtc_time64_to_tm(time, rtc); } static void rtc2cpcap_time(struct cpcap_time *cpcap, struct rtc_time *rtc) { - unsigned long time; + unsigned long long time, tod; - rtc_tm_to_time(rtc, &time); - - cpcap->day = time / SECS_PER_DAY; - time %= SECS_PER_DAY; - cpcap->tod2 = (time >> 8) & TOD2_MASK; - cpcap->tod1 = time & TOD1_MASK; + time = rtc_tm_to_time64(rtc); + tod = do_div(time, SECS_PER_DAY); + cpcap->day = time; + cpcap->tod2 = (tod >> 8) & TOD2_MASK; + cpcap->tod1 = tod & TOD1_MASK; } static int cpcap_rtc_alarm_irq_enable(struct device *dev, unsigned int enabled) -- 1.9.1