On Wed, Jul 23, 2003 at 01:10:54AM +0200, Maciej W. Rozycki wrote:
> On Tue, 22 Jul 2003, Jun Sun wrote:
>
> > > Well, rtc_set_time() is only used by the timekeeping code, so I see no
> > > problem with renaming it. And the interface remains the same -- it's a
> > > number of seconds. So if a full update is faster than changing minutes
> > > and seconds only (e.g. the RTC is a monotonic counter -- I know a system
> > > that just counts 10 ms intervals), an implementation is free to do so
> > > (although that enforces UTC to be kept in the RTC; a good thing anyway),
> > > but it shouldn't be required to. And I think the name should be changed
> > > to reflect that.
> >
> > Actually the drivers/char/mips-rtc.c uses it too. In that context
> > a full rtc set is needed.
> >
> > The same interface can be used for the 2.6 gen-rtc.c as well, where
> > a full rtc update is needed also.
>
> But that function should be provided by the driver (it may use
> system-specific backends at will -- drivers/char/rtc.c does so as well),
Isn't it cool to take care of the board-specific with the same interface
kernel time system uses? Every MIPS board gets a basic RTC driver for free!
> > I like the current way it is because :
> >
> > 1) rtc_set_time() is a more generic interface so that it can be used
> > in more places (such as mips-rtc.c and gen-rtc.c).
>
> I see no problem with that interface being used there.
Eh? I assume you mean "no problem with rtc_set_mmss() being used there", true?
How come no problem? rtc_set_mmss() does not even allow you set the time
if the new time is too off.
>
> > 2) rtc_set_mmss() can be reasonally emulated if it is desired on a
> > particular
> > board
>
> I don't think so -- it would incur a race and a severe performance hit.
> It makes no sense anyway.
What is the race condition? And what is the performance hit?
> > 3) it is better to have just one rtc_set_xxx() instead of two.
>
> Please define "better". I think it's better to have a fast variation for
> timekeeping as it's been used for years now for MC146818 and clones.
>
Oh, yeah? Look at those ugly #ifdefs include/asm-mips/mc146818rtc.h.
It is a poor abstraction of RTC.
If you convert DEC to the new RTC interface we could get rid of that
file completely.
And make no mistake, you _can_ have fast implementation that you are
looking for.
BTW, are you proposing to rename rtc_set_time() to rtc_set_mmss() and change
its semantic accordingly? Or are you suggesting to add rtc_set_mmss()?
If you are suggesting the later, clearly fewer interface functions
between MIPS common and board layer is better.
> > Actually searching through the kernel I can't find the place where
> > the flag is cleared. Am I mistaken?
>
> See do_adjtimex().
>
I see. Thanks.
Jun
|