diff options
Diffstat (limited to 'drivers/rtc/hctosys.c')
| -rw-r--r-- | drivers/rtc/hctosys.c | 18 | 
1 files changed, 5 insertions, 13 deletions
| diff --git a/drivers/rtc/hctosys.c b/drivers/rtc/hctosys.c index 4aa60d74004e..6c719f23520a 100644 --- a/drivers/rtc/hctosys.c +++ b/drivers/rtc/hctosys.c @@ -26,7 +26,7 @@ static int __init rtc_hctosys(void)  {  	int err = -ENODEV;  	struct rtc_time tm; -	struct timespec tv = { +	struct timespec64 tv64 = {  		.tv_nsec = NSEC_PER_SEC >> 1,  	};  	struct rtc_device *rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE); @@ -45,25 +45,17 @@ static int __init rtc_hctosys(void)  	} -	err = rtc_valid_tm(&tm); -	if (err) { -		dev_err(rtc->dev.parent, -			"hctosys: invalid date/time\n"); -		goto err_invalid; -	} - -	rtc_tm_to_time(&tm, &tv.tv_sec); +	tv64.tv_sec = rtc_tm_to_time64(&tm); -	err = do_settimeofday(&tv); +	err = do_settimeofday64(&tv64);  	dev_info(rtc->dev.parent,  		"setting system clock to " -		"%d-%02d-%02d %02d:%02d:%02d UTC (%u)\n", +		"%d-%02d-%02d %02d:%02d:%02d UTC (%lld)\n",  		tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,  		tm.tm_hour, tm.tm_min, tm.tm_sec, -		(unsigned int) tv.tv_sec); +		(long long) tv64.tv_sec); -err_invalid:  err_read:  	rtc_class_close(rtc); |