[RESEND] rtc: use ktime_get_real_ts64() instead of getnstimeofday64()

Message ID 20180711124723.1114803-1-arnd@arndb.de
State Accepted
Commit 5089ea15baa9e7b0cb49f36881f2cb27bf281789
Headers show
Series
  • [RESEND] rtc: use ktime_get_real_ts64() instead of getnstimeofday64()
Related show

Commit Message

Arnd Bergmann July 11, 2018, 12:47 p.m.
getnstimeofday64() is just a wrapper around the ktime accessor, so
we should use that directly.

I considered using ktime_get_boottime_ts64() (to avoid leap second
problems) or ktime_get_real_seconds() (to simplify the calculation,
but in the end concluded that the existing interface is probably
the most appropriate in this case.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
Originally sent on Jun 18, but got no reply

Alexandre, could you pick this up into the rtc tree?
---
 drivers/rtc/class.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.9.0

Comments

Alexandre Belloni July 13, 2018, 8:49 a.m. | #1
On 11/07/2018 14:47:12+0200, Arnd Bergmann wrote:
> getnstimeofday64() is just a wrapper around the ktime accessor, so

> we should use that directly.

> 

> I considered using ktime_get_boottime_ts64() (to avoid leap second

> problems) or ktime_get_real_seconds() (to simplify the calculation,

> but in the end concluded that the existing interface is probably

> the most appropriate in this case.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> ---

> Originally sent on Jun 18, but got no reply

> 

> Alexandre, could you pick this up into the rtc tree?


Yes, I've been late in my reviews lately. It is applied now.

I had some trouble figuring out that ktime_get_real_ts64 was not a macro
anymore as I was still looking at 4.17 ;)

> ---

>  drivers/rtc/class.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c

> index d37588f08055..7fa32c922617 100644

> --- a/drivers/rtc/class.c

> +++ b/drivers/rtc/class.c

> @@ -68,7 +68,7 @@ static int rtc_suspend(struct device *dev)

>  		return 0;

>  	}

>  

> -	getnstimeofday64(&old_system);

> +	ktime_get_real_ts64(&old_system);

>  	old_rtc.tv_sec = rtc_tm_to_time64(&tm);

>  

>  

> @@ -110,7 +110,7 @@ static int rtc_resume(struct device *dev)

>  		return 0;

>  

>  	/* snapshot the current rtc and system time at resume */

> -	getnstimeofday64(&new_system);

> +	ktime_get_real_ts64(&new_system);

>  	err = rtc_read_time(rtc, &tm);

>  	if (err < 0) {

>  		pr_debug("%s:  fail to read rtc time\n", dev_name(&rtc->dev));

> -- 

> 2.9.0

> 


-- 
Alexandre Belloni, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

Patch

diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c
index d37588f08055..7fa32c922617 100644
--- a/drivers/rtc/class.c
+++ b/drivers/rtc/class.c
@@ -68,7 +68,7 @@  static int rtc_suspend(struct device *dev)
 		return 0;
 	}
 
-	getnstimeofday64(&old_system);
+	ktime_get_real_ts64(&old_system);
 	old_rtc.tv_sec = rtc_tm_to_time64(&tm);
 
 
@@ -110,7 +110,7 @@  static int rtc_resume(struct device *dev)
 		return 0;
 
 	/* snapshot the current rtc and system time at resume */
-	getnstimeofday64(&new_system);
+	ktime_get_real_ts64(&new_system);
 	err = rtc_read_time(rtc, &tm);
 	if (err < 0) {
 		pr_debug("%s:  fail to read rtc time\n", dev_name(&rtc->dev));