From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Alessandro Zummo <a.zummo@towertech.it>,
Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>
Cc: linux-rtc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] rtc: sun6i: let the core handle rtc range
Date: Mon, 30 Mar 2020 22:19:10 +0200 [thread overview]
Message-ID: <20200330201910.GA752154@piout.net> (raw)
In-Reply-To: <20200330201510.861217-2-alexandre.belloni@bootlin.com>
This was en unattended resend.
On 30/03/2020 22:15:09+0200, Alexandre Belloni wrote:
> Let the rtc core check the date/time against the RTC range.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> ---
> drivers/rtc/rtc-sun6i.c | 25 ++++++++++---------------
> 1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> index 415a20a936e4..446ce38c1592 100644
> --- a/drivers/rtc/rtc-sun6i.c
> +++ b/drivers/rtc/rtc-sun6i.c
> @@ -108,7 +108,6 @@
> * driver, even though it is somewhat limited.
> */
> #define SUN6I_YEAR_MIN 1970
> -#define SUN6I_YEAR_MAX 2033
> #define SUN6I_YEAR_OFF (SUN6I_YEAR_MIN - 1900)
>
> /*
> @@ -569,14 +568,6 @@ static int sun6i_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
> struct sun6i_rtc_dev *chip = dev_get_drvdata(dev);
> u32 date = 0;
> u32 time = 0;
> - int year;
> -
> - year = rtc_tm->tm_year + 1900;
> - if (year < SUN6I_YEAR_MIN || year > SUN6I_YEAR_MAX) {
> - dev_err(dev, "rtc only supports year in range %d - %d\n",
> - SUN6I_YEAR_MIN, SUN6I_YEAR_MAX);
> - return -EINVAL;
> - }
>
> rtc_tm->tm_year -= SUN6I_YEAR_OFF;
> rtc_tm->tm_mon += 1;
> @@ -585,7 +576,7 @@ static int sun6i_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
> SUN6I_DATE_SET_MON_VALUE(rtc_tm->tm_mon) |
> SUN6I_DATE_SET_YEAR_VALUE(rtc_tm->tm_year);
>
> - if (is_leap_year(year))
> + if (is_leap_year(rtc_tm->tm_year + SUN6I_YEAR_MIN))
> date |= SUN6I_LEAP_SET_VALUE(1);
>
> time = SUN6I_TIME_SET_SEC_VALUE(rtc_tm->tm_sec) |
> @@ -726,12 +717,16 @@ static int sun6i_rtc_probe(struct platform_device *pdev)
>
> device_init_wakeup(&pdev->dev, 1);
>
> - chip->rtc = devm_rtc_device_register(&pdev->dev, "rtc-sun6i",
> - &sun6i_rtc_ops, THIS_MODULE);
> - if (IS_ERR(chip->rtc)) {
> - dev_err(&pdev->dev, "unable to register device\n");
> + chip->rtc = devm_rtc_allocate_device(&pdev->dev);
> + if (IS_ERR(chip->rtc))
> return PTR_ERR(chip->rtc);
> - }
> +
> + chip->rtc->ops = &sun6i_rtc_ops;
> + chip->rtc->range_max = 2019686399LL; /* 2033-12-31 23:59:59 */
> +
> + ret = rtc_register_device(chip->rtc);
> + if (ret)
> + return ret;
>
> dev_info(&pdev->dev, "RTC enabled\n");
>
> --
> 2.25.1
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
WARNING: multiple messages have this Message-ID (diff)
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Alessandro Zummo <a.zummo@towertech.it>,
Maxime Ripard <mripard@kernel.org>, Chen-Yu Tsai <wens@csie.org>
Cc: linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 1/2] rtc: sun6i: let the core handle rtc range
Date: Mon, 30 Mar 2020 22:19:10 +0200 [thread overview]
Message-ID: <20200330201910.GA752154@piout.net> (raw)
In-Reply-To: <20200330201510.861217-2-alexandre.belloni@bootlin.com>
This was en unattended resend.
On 30/03/2020 22:15:09+0200, Alexandre Belloni wrote:
> Let the rtc core check the date/time against the RTC range.
>
> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> ---
> drivers/rtc/rtc-sun6i.c | 25 ++++++++++---------------
> 1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
> index 415a20a936e4..446ce38c1592 100644
> --- a/drivers/rtc/rtc-sun6i.c
> +++ b/drivers/rtc/rtc-sun6i.c
> @@ -108,7 +108,6 @@
> * driver, even though it is somewhat limited.
> */
> #define SUN6I_YEAR_MIN 1970
> -#define SUN6I_YEAR_MAX 2033
> #define SUN6I_YEAR_OFF (SUN6I_YEAR_MIN - 1900)
>
> /*
> @@ -569,14 +568,6 @@ static int sun6i_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
> struct sun6i_rtc_dev *chip = dev_get_drvdata(dev);
> u32 date = 0;
> u32 time = 0;
> - int year;
> -
> - year = rtc_tm->tm_year + 1900;
> - if (year < SUN6I_YEAR_MIN || year > SUN6I_YEAR_MAX) {
> - dev_err(dev, "rtc only supports year in range %d - %d\n",
> - SUN6I_YEAR_MIN, SUN6I_YEAR_MAX);
> - return -EINVAL;
> - }
>
> rtc_tm->tm_year -= SUN6I_YEAR_OFF;
> rtc_tm->tm_mon += 1;
> @@ -585,7 +576,7 @@ static int sun6i_rtc_settime(struct device *dev, struct rtc_time *rtc_tm)
> SUN6I_DATE_SET_MON_VALUE(rtc_tm->tm_mon) |
> SUN6I_DATE_SET_YEAR_VALUE(rtc_tm->tm_year);
>
> - if (is_leap_year(year))
> + if (is_leap_year(rtc_tm->tm_year + SUN6I_YEAR_MIN))
> date |= SUN6I_LEAP_SET_VALUE(1);
>
> time = SUN6I_TIME_SET_SEC_VALUE(rtc_tm->tm_sec) |
> @@ -726,12 +717,16 @@ static int sun6i_rtc_probe(struct platform_device *pdev)
>
> device_init_wakeup(&pdev->dev, 1);
>
> - chip->rtc = devm_rtc_device_register(&pdev->dev, "rtc-sun6i",
> - &sun6i_rtc_ops, THIS_MODULE);
> - if (IS_ERR(chip->rtc)) {
> - dev_err(&pdev->dev, "unable to register device\n");
> + chip->rtc = devm_rtc_allocate_device(&pdev->dev);
> + if (IS_ERR(chip->rtc))
> return PTR_ERR(chip->rtc);
> - }
> +
> + chip->rtc->ops = &sun6i_rtc_ops;
> + chip->rtc->range_max = 2019686399LL; /* 2033-12-31 23:59:59 */
> +
> + ret = rtc_register_device(chip->rtc);
> + if (ret)
> + return ret;
>
> dev_info(&pdev->dev, "RTC enabled\n");
>
> --
> 2.25.1
>
--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-03-30 20:19 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-30 20:15 [PATCH] rtc: remove rtc_time_to_tm and rtc_tm_to_time Alexandre Belloni
2020-03-30 20:15 ` [PATCH 1/2] rtc: sun6i: let the core handle rtc range Alexandre Belloni
2020-03-30 20:15 ` Alexandre Belloni
2020-03-30 20:19 ` Alexandre Belloni [this message]
2020-03-30 20:19 ` Alexandre Belloni
2020-03-30 20:15 ` [PATCH 2/2] rtc: sun6i: switch to rtc_time64_to_tm/rtc_tm_to_time64 Alexandre Belloni
2020-03-30 20:15 ` Alexandre Belloni
2020-04-02 13:57 ` Paul Kocialkowski
2020-04-02 13:57 ` Paul Kocialkowski
-- strict thread matches above, loose matches on Subject: below --
2020-03-30 20:12 [PATCH 1/2] rtc: sun6i: let the core handle rtc range Alexandre Belloni
2020-03-30 20:12 ` Alexandre Belloni
2020-04-02 13:57 ` Paul Kocialkowski
2020-04-02 13:57 ` Paul Kocialkowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200330201910.GA752154@piout.net \
--to=alexandre.belloni@bootlin.com \
--cc=a.zummo@towertech.it \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.