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.021 / U:1.580 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site