Re: Timer patch V8

From: Robert Picco <Robert.Picco_at_hp.com>
Date: 2004-09-10 00:08:19
Alex Williamson wrote:

>On Wed, 2004-09-08 at 13:52 -0700, Christoph Lameter wrote:
>  
>
>>Umm... I thought MC was constant and the address of the counter. I see it
>>used in lines 93 and following.
>>
>>This may fix the MC issue:
>>    
>>
>
>Not likely.  MC is only a macro variable there.  I'd guess you want addr
>set to something like &hpet->hpet_mc, but I don't know enough about hpet
>to know for certain.  There are potentially multiple hpets in a system,
>if they're not all guaranteed to have the same specs, perhaps there are
>better choices that simply choosing the first.  Bob?
>
>	Alex
>  
>
Correct, MC is an argument to a macro.  I haven't paid close attention 
to how the interpolator has evolved.
For now choosing the first hpet discovered is adequate.  For HP hardware 
this would be the HPET in the root cell.  Should multiple hpets have a 
different clock source, then finding the more optimum one would be required.

Bob

>  
>
>>Index: linux-2.6.9-rc1/drivers/char/hpet.c
>>===================================================================
>>--- linux-2.6.9-rc1.orig/drivers/char/hpet.c    2004-09-07 18:37:00.000000000 -0700
>>+++ linux-2.6.9-rc1/drivers/char/hpet.c 2004-09-08 13:52:18.000000000 -0700
>>@@ -664,8 +664,7 @@
>>
>> static struct time_interpolator hpet_interpolator = {
>>        .source = TIME_SOURCE_MMIO64,
>>-       .shift = 10,
>>-       .addr = MC
>>+       .shift = 10;
>> };
>>
>> #endif
>>@@ -954,6 +953,7 @@
>>
>>                        hpet = hpets->hp_hpet;
>>                        hpet_cycles_per_sec = hpet_time_div(hpets->hp_period);
>>+                       hpet_interpolator.addr = MC;
>>                        hpet_interpolator.frequency = hpet_cycles_per_sec;
>>                        hpet_interpolator.drift = hpet_cycles_per_sec *
>>                            HPET_DRIFT / 1000000;
>>
>>
>>On Wed, 8 Sep 2004, Alex Williamson wrote:
>>
>>    
>>
>>>   I see this made it upstream.  Unfortunately w/ CONFIG_HPET=y, I now
>>>get this:
>>>
>>>  CC      drivers/char/hpet.o
>>>drivers/char/hpet.c:669: error: `MC' undeclared here (not in a function)
>>>drivers/char/hpet.c:669: error: initializer element is not constant
>>>drivers/char/hpet.c:669: error: (near initialization for `hpet_interpolator.addr')
>>>drivers/char/hpet.c: In function `hpet_init':
>>>drivers/char/hpet.c:956: error: `hpet_cycles_per_sec' undeclared (first use in this function)
>>>drivers/char/hpet.c:956: error: (Each undeclared identifier is reported only once
>>>drivers/char/hpet.c:956: error: for each function it appears in.)
>>>drivers/char/hpet.c:960: error: `hpet_nsecs_per_cycle' undeclared (first use in this function)
>>>make[2]: *** [drivers/char/hpet.o] Error 1
>>>
>>>I assume hpet_cycles_per_sec and hpet_nsecs_per_cycle just need to be
>>>declared again, but I couldn't figure out what MC is supposed to be.
>>>
>>>	Alex
>>>
>>>--
>>>Alex Williamson                             HP Linux & Open Source Lab
>>>
>>>      
>>>

-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Thu Sep 9 10:05:13 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:30 EST