Re: [PATCH v10 1/3] RTC: RK808: add RTC driver for RK808

From: Andrew Morton
Date: Wed Sep 10 2014 - 18:08:53 EST


On Wed, 10 Sep 2014 14:37:13 -0700 Doug Anderson <dianders@xxxxxxxxxxxx> wrote:

> Andrew,
>
> On Wed, Sep 10, 2014 at 1:44 PM, Andrew Morton
> <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Wed, 10 Sep 2014 09:18:04 +0800 Chris Zhong <zyw@xxxxxxxxxxxxxx> wrote:
> >
> >> Adding RTC driver for supporting RTC device present inside RK808 PMIC.
> >>
> >> ...
> >>
> >> + ret = rtc_valid_tm(&tm);
> >> + if (ret) {
> >> + dev_warn(&pdev->dev, "invalid date/time and init time\n");
> >> + rk808_rtc_set_time(&pdev->dev, &tm_def);
> >> + }
> >
> > This is somewhat unusual. Most drivers will emit a warning and give up
> > when they find the time is wrong. Why is this driver different and is
> > this desirable behaviour?
>
> When you say "give up", what does that mean? I assume the driver
> should keep initting, right? Then the user can go in and set a time
> later...

I think I was misreading current drivers a bit. rtc-cmos.c will go in
and set a dummy time but regular low-level drivers don't sanity-check
the time at all at setup time.

>
> I did test things with just removing this chunk of code. You get some
> yells at bootup if you put a bogus time in there:
>
> [ 2.987590] rk808-rtc rk808-rtc: invalid date/time and init time
> [ 3.013148] rk808-rtc rk808-rtc: rtc core: registered rk808-rtc as rtc0
> [ 4.586115] rk808-rtc rk808-rtc: hctosys: invalid date/time
>
> ...but if you later set a valid time then everything is fine. That
> seems reasonable behavior to me, so I guess we could just remove this
> whole chunk? It appears that after a normal bootup the date/time is
> something valid.

hm. Having an invalid time is perhaps better than having a valid but
incorrect time.

When one sees one driver doing something differently from the others
one has to wonder "why" and "which one is better". If setting a dummy
time is better then all drivers should do it, and I expect this could
be done by rtc core at registration time.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/