Subject: Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

From: Sergei Shtylyov <[email-masked]>
Date: Thu, 17 May 2007 22:07:59 +0400

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? ;-)
    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).

[big cut-off]

WBR, Sergei