On Oct 28, 2007, at 9:57 PM, Paul Mackerras wrote: > The decrementer in Book E and 4xx processors interrupts on the > transition from 1 to 0, rather than on the 0 to -1 transition as on > 64-bit server and 32-bit "classic" (6xx/7xx/7xxx) processors. > > This fixes the problem by making set_dec subtract 1 from the count for > server and classic processors. Since set_dec already had a bunch of > ifdefs to handle different processor types, there is no net increase > in ugliness. :) > > This also removes a redundant call to set the decrementer to > 0x7fffffff - it was already set to that earlier in timer_interrupt. > > Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]> > ---
... > diff --git a/include/asm-powerpc/time.h b/include/asm-powerpc/time.h > index f058955..eed64bd 100644 > --- a/include/asm-powerpc/time.h > +++ b/include/asm-powerpc/time.h > @@ -183,6 +183,7 @@ static inline void set_dec(int val) > #elif defined(CONFIG_8xx_CPU6) > set_dec_cpu6(val); > #else > + --val; /* classic decrementer interrupts when dec goes negative */ > #ifdef CONFIG_PPC_ISERIES > int cur_dec; > Unless I'm reading set_dec() you are getting --val on booke. - k _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev