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

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

 



On 31/10/2019 18:53:00+0900, Nobuhiro Iwamatsu wrote:
> 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().
> 

This is correct.

Ilya, could you also run
https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/rtc-tools.git/tree/rtc-range.c
on that rtc? I'm interested in the full output. It seems this RTC
working range is 2000 to 2079

-- 
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com



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

  Powered by Linux