drivers/rtc/mxc: Update driver to address y2038/y2106 issues
This driver has a number of y2038/y2106 issues. This patch resolves them by: - Replacing rtc_time_to_tm() with rtc_time64_to_tm() - Replacing rtc_tm_to_time() with rtc_tm_to_time64() - Changing mxc_rtc_set_mmss() to use rtc_class_ops's set_mmss64() After this patch, the driver should not have any remaining y2038/y2106 issues. Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org> Signed-off-by: John Stultz <john.stultz@linaro.org> Acked-by: Alessandro Zummo <a.zummo@towertech.it> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/1427945681-29972-14-git-send-email-john.stultz@linaro.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
		
							parent
							
								
									a015b8aabf
								
							
						
					
					
						commit
						933623c38f
					
				| @ -286,7 +286,7 @@ static int mxc_rtc_read_time(struct device *dev, struct rtc_time *tm) | ||||
| /*
 | ||||
|  * This function sets the internal RTC time based on tm in Gregorian date. | ||||
|  */ | ||||
| static int mxc_rtc_set_mmss(struct device *dev, unsigned long time) | ||||
| static int mxc_rtc_set_mmss(struct device *dev, time64_t time) | ||||
| { | ||||
| 	struct platform_device *pdev = to_platform_device(dev); | ||||
| 	struct rtc_plat_data *pdata = platform_get_drvdata(pdev); | ||||
| @ -297,9 +297,9 @@ static int mxc_rtc_set_mmss(struct device *dev, unsigned long time) | ||||
| 	if (is_imx1_rtc(pdata)) { | ||||
| 		struct rtc_time tm; | ||||
| 
 | ||||
| 		rtc_time_to_tm(time, &tm); | ||||
| 		rtc_time64_to_tm(time, &tm); | ||||
| 		tm.tm_year = 70; | ||||
| 		rtc_tm_to_time(&tm, &time); | ||||
| 		time = rtc_tm_to_time64(&tm); | ||||
| 	} | ||||
| 
 | ||||
| 	/* Avoid roll-over from reading the different registers */ | ||||
| @ -347,7 +347,7 @@ static int mxc_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm) | ||||
| static struct rtc_class_ops mxc_rtc_ops = { | ||||
| 	.release		= mxc_rtc_release, | ||||
| 	.read_time		= mxc_rtc_read_time, | ||||
| 	.set_mmss		= mxc_rtc_set_mmss, | ||||
| 	.set_mmss64		= mxc_rtc_set_mmss, | ||||
| 	.read_alarm		= mxc_rtc_read_alarm, | ||||
| 	.set_alarm		= mxc_rtc_set_alarm, | ||||
| 	.alarm_irq_enable	= mxc_rtc_alarm_irq_enable, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user