Re: [PATCH 2/4] rtc: s3c: Add time range
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date: 2021-10-19 17:46:40
Also in:
linux-samsung-soc, lkml
On 19/10/2021 19:31:55+0300, Sam Protsenko wrote:
On Tue, 19 Oct 2021 at 19:20, Alexandre Belloni [off-list ref] wrote:quoted
On 19/10/2021 16:17:22+0300, Sam Protsenko wrote:quoted
This RTC driver only accepts dates from 2000 to 2099 year. It starts counting from 2000 to avoid Y2K problem, and S3C RTC only supports 100 years range. Provide this info to RTC framework. Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> --- drivers/rtc/rtc-s3c.c | 2 ++ 1 file changed, 2 insertions(+)diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c index 10e591794276..d9994efd70ef 100644 --- a/drivers/rtc/rtc-s3c.c +++ b/drivers/rtc/rtc-s3c.c@@ -454,6 +454,8 @@ static int s3c_rtc_probe(struct platform_device *pdev) } info->rtc->ops = &s3c_rtcops; + info->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; + info->rtc->range_max = RTC_TIMESTAMP_END_2099;This change is missing the if (year < 0 || year >= 100) removal in s3c_rtc_settime()It's not actually removed in [PATCH 3/4] (if I'm following you correctly), it was replaced with this code: <<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>> if (rtc_tm.tm_year < 0 || rtc_tm.tm_year >= 100) { dev_err(dev, "rtc only supports 100 years\n"); return -EINVAL; } <<<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>>
After setting the range, the core will never pass values outside of this range so it is not necessary to check in the driver anymore. -- Alexandre Belloni, co-owner and COO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com