Re: [PATCH] rtc: em3027: correct month value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

2019年10月31日(木) 16:57 Ilya Ledvich <ilya@xxxxxxxxxxxxxx>:
>
> The RTC month value is 1-indexed, but the kernel assumes it is 0-indexed.
> This may result in the RTC not rolling over correctly.
>
> Signed-off-by: Ilya Ledvich <ilya@xxxxxxxxxxxxxx>
> ---
>  drivers/rtc/rtc-em3027.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/rtc/rtc-em3027.c b/drivers/rtc/rtc-em3027.c
> index 77cca1392253..ef3792543f93 100644
> --- a/drivers/rtc/rtc-em3027.c
> +++ b/drivers/rtc/rtc-em3027.c
> @@ -71,7 +71,7 @@ static int em3027_get_time(struct device *dev, struct rtc_time *tm)
>         tm->tm_hour     = bcd2bin(buf[2]);
>         tm->tm_mday     = bcd2bin(buf[3]);
>         tm->tm_wday     = bcd2bin(buf[4]);
> -       tm->tm_mon      = bcd2bin(buf[5]);
> +       tm->tm_mon      = bcd2bin(buf[5]) - 1;
>         tm->tm_year     = bcd2bin(buf[6]) + 100;
>
>         return 0;
> @@ -94,7 +94,7 @@ static int em3027_set_time(struct device *dev, struct rtc_time *tm)
>         buf[3] = bin2bcd(tm->tm_hour);
>         buf[4] = bin2bcd(tm->tm_mday);
>         buf[5] = bin2bcd(tm->tm_wday);
> -       buf[6] = bin2bcd(tm->tm_mon);
> +       buf[6] = bin2bcd(tm->tm_mon) + 1;

I think '+'1 should be set in bin2bcd().

>         buf[7] = bin2bcd(tm->tm_year % 100);
>
>         /* write time/date registers */
> --
> 2.20.1
>

Best regards,
  Nobuhiro

-- 
Nobuhiro Iwamatsu
   iwamatsu at {nigauri.org / debian.org}
   GPG ID: 40AD1FA6




[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux