]> git.hungrycats.org Git - linux/commitdiff
[CPUFREQ] use latency in nanoseconds
authorDave Jones <davej@redhat.com>
Mon, 5 Jan 2004 18:33:27 +0000 (18:33 +0000)
committerDave Jones <davej@delerium.codemonkey.org.uk>
Mon, 5 Jan 2004 18:33:27 +0000 (18:33 +0000)
sometimes nanoseconds are used, sometimes microseconds, sometimes even something else.

arch/arm/mach-integrator/cpu.c
arch/i386/kernel/cpu/cpufreq/acpi.c
arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
arch/i386/kernel/cpu/cpufreq/powernow-k7.c
arch/i386/kernel/cpu/cpufreq/powernow-k8.c
include/linux/cpufreq.h

index 69456d0f095d50d09049a8093b0fd016575f5b07..a33722ede48a9b40b7a6a6b3223c63e903c008b7 100644 (file)
@@ -172,7 +172,7 @@ static int integrator_cpufreq_init(struct cpufreq_policy *policy)
        policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.max_freq = 160000;
        policy->cpuinfo.min_freq = 12000;
-       policy->cpuinfo.transition_latency = 1000; /* 1 ms, assumed */
+       policy->cpuinfo.transition_latency = 1000000; /* 1 ms, assumed */
        policy->cur = policy->min = policy->max =
                icst525_khz(&cclk_params, vco); /* current freq */
 
index 1da77a79043ebb8f34c93518fa840fa3aa660359..776ac256fb6eb6aa306a60bd93aa8a44f7aaa21a 100644 (file)
@@ -578,8 +578,8 @@ acpi_cpufreq_cpu_init (
        /* detect transition latency */
        policy->cpuinfo.transition_latency = 0;
        for (i=0;i<perf->state_count;i++) {
-               if (perf->states[i].transition_latency > policy->cpuinfo.transition_latency)
-                       policy->cpuinfo.transition_latency = perf->states[i].transition_latency;
+               if ((perf->states[i].transition_latency * 1000) > policy->cpuinfo.transition_latency)
+                       policy->cpuinfo.transition_latency = perf->states[i].transition_latency * 1000;
        }
        policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cur = perf->states[pr->limit.state.px].core_frequency * 1000;
index 06cb5d7b4ba16ca4a875cdf72c6b7ec86adc6b32..d8837afdf69d74e3fcaad390d763bdac3eb41818 100644 (file)
@@ -255,7 +255,7 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy)
        
        /* cpuinfo and default policy values */
        policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-       policy->cpuinfo.transition_latency = 1000;
+       policy->cpuinfo.transition_latency = 1000000; /* assumed */
        policy->cur = stock_freq;
 
        return cpufreq_frequency_table_cpuinfo(policy, &p4clockmod_table[0]);
index 52ea4bedba0d4fd9f837c7fb9c671ff841f7b4da..ee99237eb2e30bc4f1e27b6f51ca9cb1f6f497c9 100644 (file)
@@ -387,7 +387,11 @@ static int __init powernow_cpu_init (struct cpufreq_policy *policy)
                                minimum_speed, maximum_speed);
 
        policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-       policy->cpuinfo.transition_latency = latency;
+
+       /* latency is in 10 ns (look for SGTC above) for each VID
+        * and FID transition, so multiply that value with 20 */
+       policy->cpuinfo.transition_latency = latency * 20;
+
        policy->cur = maximum_speed;
 
        return cpufreq_frequency_table_cpuinfo(policy, powernow_table);
index b7e0945365a0f9fff469441691173f2239ad655c..229fbe33ce2fd31f5f22b0a1ad1c2ed28a972c76 100644 (file)
@@ -954,9 +954,10 @@ powernowk8_cpu_init(struct cpufreq_policy *pol)
 
        pol->governor = CPUFREQ_DEFAULT_GOVERNOR;
 
-       /* Take a crude guess here. */
-       pol->cpuinfo.transition_latency = ((rvo + 8) * vstable * VST_UNITS_20US)
-           + (3 * (1 << irt) * 10);
+       /* Take a crude guess here. 
+        * That guess was in microseconds, so multply with 1000 */
+       pol->cpuinfo.transition_latency = (((rvo + 8) * vstable * VST_UNITS_20US)
+           + (3 * (1 << irt) * 10)) * 1000;
 
        if (query_current_values_with_pending_wait())
                return -EIO;
index 94a53691e240151ed22df8417100b4fb9e0638b3..bbc983dc8913c74c00c733e88767f81adfb6b651 100644 (file)
@@ -57,7 +57,7 @@ struct cpufreq_governor;
 struct cpufreq_cpuinfo {
        unsigned int            max_freq;
        unsigned int            min_freq;
-       unsigned int            transition_latency; /* in 10^(-9) s */
+       unsigned int            transition_latency; /* in 10^(-9) s = nanoseconds */
 };
 
 struct cpufreq_real_policy {