lkml.org 
[lkml]   [2009]   [Oct]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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.


\
 
 \ /
  Last update: 2009-10-20 10:21    [W:0.294 / U:0.092 seconds]
©2003-2011 Jasper Spaans. Advertise on this site