Re: [PATCH 1/3] clocksource: davinci: work around a clocksource problem on dm365 SoC

From: Bartosz Golaszewski
Date: Tue Dec 17 2019 - 03:00:57 EST


pon., 16 gru 2019 o 18:58 David Lechner <david@xxxxxxxxxxxxxx> napisaÅ(a):
>
> >
> > +static unsigned int davinci_clocksource_tim32_mode;
>
> static unsigned bool davinci_clocksource_initialized;
>
> > +
> > static struct davinci_clockevent *
> > to_davinci_clockevent(struct clock_event_device *clockevent)
> > {
> > @@ -94,7 +96,7 @@ static void davinci_tim12_shutdown(void __iomem *base)
> > * halves. In this case TIM34 runs in periodic mode and we must
> > * not modify it.
> > */
> > - tcr |= DAVINCI_TIMER_ENAMODE_PERIODIC <<
> > + tcr |= davinci_clocksource_tim32_mode <<
> > DAVINCI_TIMER_ENAMODE_SHIFT_TIM34;
>
> if (davinci_clocksource_initialized)
> tcr |= DAVINCI_TIMER_ENAMODE_PERIODIC <<
> DAVINCI_TIMER_ENAMODE_SHIFT_TIM34;

I thought about doing this initially, but then figured this code would
be called a lot, so why not avoid branching and just store the right
value? Alternatively we can do:

if (likely(davinci_clocksource_initialized)
....

Bart