Re: [RFC PATCH 1/2] rtc: rzn1: drop superfluous wday calculation

Alexandre Belloni
2024-11-22T23:26:27Z

On 22/11/2024 11:14:47+0100, Wolfram Sang wrote:
> The week register simply counts from 0 to 6 where the numbers do not
> even represent a specific weekday. So we can adopt 'tm_wday' numbering
> of the RTC core without converting it.
>
> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
> drivers/rtc/rtc-rzn1.c | 15 ---------------
> 1 file changed, 15 deletions(-)
>
> diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c
> index b0ea2847e982..4ae6e349faa0 100644
> --- a/drivers/rtc/rtc-rzn1.c
> +++ b/drivers/rtc/rtc-rzn1.c
> @@ -75,19 +75,6 @@ static void rzn1_rtc_get_time_snapshot(struct rzn1_rtc *rtc, struct rtc_time *tm
> tm->tm_year = readl(rtc->base + RZN1_RTC_YEARC);
> }
>
> -static unsigned int rzn1_rtc_tm_to_wday(struct rtc_time *tm)
> -{
> - time64_t time;
> - unsigned int days;
> - u32 secs;
> -
> - time = rtc_tm_to_time64(tm);
> - days = div_s64_rem(time, 86400, &secs);
> -
> - /* day of the week, 1970-01-01 was a Thursday */
> - return (days + 4) % 7;
> -}
> -
> static int rzn1_rtc_read_time(struct device *dev, struct rtc_time *tm)
> {
> struct rzn1_rtc *rtc = dev_get_drvdata(dev);
> @@ -109,7 +96,6 @@ static int rzn1_rtc_read_time(struct device *dev, struct rtc_time *tm)
> tm->tm_sec = bcd2bin(tm->tm_sec);
> tm->tm_min = bcd2bin(tm->tm_min);
> tm->tm_hour = bcd2bin(tm->tm_hour);
> - tm->tm_wday = bcd2bin(tm->tm_wday);

With this, you're not even using wday anymore. This is fine as there are
probably no userspace users of the value but the commit message claims
it is now using it without conversion.

> tm->tm_mday = bcd2bin(tm->tm_mday);
> tm->tm_mon = bcd2bin(tm->tm_mon) - 1;
> tm->tm_year = bcd2bin(tm->tm_year) + 100;
> @@ -126,7 +112,6 @@ static int rzn1_rtc_set_time(struct device *dev, struct rtc_time *tm)
> tm->tm_sec = bin2bcd(tm->tm_sec);
> tm->tm_min = bin2bcd(tm->tm_min);
> tm->tm_hour = bin2bcd(tm->tm_hour);
> - tm->tm_wday = bin2bcd(rzn1_rtc_tm_to_wday(tm));
> tm->tm_mday = bin2bcd(tm->tm_mday);
> tm->tm_mon = bin2bcd(tm->tm_mon + 1);
> tm->tm_year = bin2bcd(tm->tm_year - 100);
> --
> 2.39.2
>

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering