[PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

Kumar Gala galak at kernel.crashing.org
Fri May 18 04:17:07 EST 2007


On May 17, 2007, at 1:07 PM, Sergei Shtylyov wrote:

> Hello.
>
> Kumar Gala wrote:
>
>>> Index: linux-2.6/arch/powerpc/kernel/time.c
>>> ===================================================================
>>> --- linux-2.6.orig/arch/powerpc/kernel/time.c
>>> +++ linux-2.6/arch/powerpc/kernel/time.c
> [...]
>>> @@ -128,6 +129,83 @@ unsigned long ppc_tb_freq;
>>>  static u64 tb_last_jiffy __cacheline_aligned_in_smp;
>>>  static DEFINE_PER_CPU(u64, last_jiffy);
>>>
>>> +#ifdef CONFIG_GENERIC_CLOCKEVENTS
>>> +
>>> +#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
>>> +#define DECREMENTER_MAX 0xffffffff
>>> +#else
>>> +#define DECREMENTER_MAX 0x7fffffff /* setting MSB triggers an   
>>> interrupt */
>>> +#endif
>>> +
>>> +static int decrementer_set_next_event(unsigned long evt,
>>> +                      struct clock_event_device *dev)
>>> +{
>>> +#if defined(CONFIG_40x)
>>> +    mtspr(SPRN_PIT, evt);    /* 40x has a hidden PIT auto- 
>>> reload  register */
>>> +#elif defined(CONFIG_BOOKE)
>>> +    mtspr(SPRN_DECAR, evt); /* Book E has  separate auto-reload   
>>> register */
>>> +    set_dec(evt);
>
>> what's the point of setting decar if you're just going to set_dec  
>> as  well?
>
>    Bothered to read the Book E specs? ;-)

I have :)

>    Loading DECAR doesn't auto-reload DEC. What I want is both set  
> the auto-reload value and start counting down from it at the same  
> time (if the decrementer is in auto-reload mode).

I see you're using DECAR to make it periodic.

> [big cut-off]
>
> WBR, Sergei

I haven't looked at all the new clock/timer code, is there any  
utility in having support for more than one clock source?

- k



More information about the Linuxppc-dev mailing list