[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <19165.29312.300540.500942@pilspetsen.it.uu.se>
Date: Tue, 20 Oct 2009 10:19:12 +0200
From: Mikael Pettersson <mikpe@...uu.se>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Linus Walleij <linus.walleij@...ricsson.com>,
linux-mips@...ux-mips.org, Ralf Baechle <ralf@...ux-mips.org>,
Mikael Pettersson <mikpe@...uu.se>,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org
Subject: Re: [PATCH] Make MIPS dynamic clocksource/clockevent clock code
generic
Thomas Gleixner writes:
> > +static inline void clockevent_set_clock(struct clock_event_device *dev, u32 hz)
> > +{
> > + u64 temp;
> > + u32 shift;
> > +
> > + /* Find a shift value */
> > + for (shift = 32; shift > 0; shift--) {
> > + temp = (u64) hz << shift;
> > + do_div(temp, NSEC_PER_SEC);
> > + if ((temp >> 32) == 0)
> > + break;
> > + }
> > + dev->shift = shift;
> > + dev->mult = (u32) temp;
> > +}
> > +
> > +
> > +static inline void clocksource_set_clock(struct clocksource *cs, u32 hz)
> > +{
> > + u64 temp;
> > + u32 shift;
> > +
> > + /* Find a shift value */
> > + for (shift = 32; shift > 0; shift--) {
> > + temp = (u64) NSEC_PER_SEC << shift;
> > + do_div(temp, hz);
> > + if ((temp >> 32) == 0)
> > + break;
> > + }
> > + cs->shift = shift;
> > + cs->mult = (u32) temp;
> > +}
> > +
>
> So that's the same function twice, right ?
They are similar but not identical:
> > + temp = (u64) hz << shift;
> > + do_div(temp, NSEC_PER_SEC);
vs
> > + temp = (u64) NSEC_PER_SEC << shift;
> > + do_div(temp, hz);
I suppose both functions could be implemented by a suitably
parametric third function, but IMO that would just obscure things.
Making them non-inline I fully agree with.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists