]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq...
authorThomas Renninger <trenn@suse.de>
Tue, 2 Oct 2007 20:28:09 +0000 (13:28 -0700)
committerDave Jones <davej@redhat.com>
Thu, 4 Oct 2007 22:40:57 +0000 (18:40 -0400)
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Bryan Wu <bryan.wu@analog.com>
Cc: Andi Kleen <ak@suse.de>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Jones <davej@redhat.com>
26 files changed:
arch/arm/mach-imx/cpufreq.c
arch/arm/mach-sa1100/cpu-sa1110.c
arch/arm/plat-omap/cpu-omap.c
arch/blackfin/mach-bf533/cpu.c
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/i386/kernel/cpu/cpufreq/cpufreq-nforce2.c
arch/i386/kernel/cpu/cpufreq/e_powersaver.c
arch/i386/kernel/cpu/cpufreq/elanfreq.c
arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
arch/i386/kernel/cpu/cpufreq/longhaul.c
arch/i386/kernel/cpu/cpufreq/p4-clockmod.c
arch/i386/kernel/cpu/cpufreq/powernow-k6.c
arch/i386/kernel/cpu/cpufreq/powernow-k7.c
arch/i386/kernel/cpu/cpufreq/powernow-k8.c
arch/i386/kernel/cpu/cpufreq/sc520_freq.c
arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c
arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
arch/i386/kernel/cpu/cpufreq/speedstep-smi.c
arch/ia64/kernel/cpufreq/acpi-cpufreq.c
arch/powerpc/platforms/cell/cbe_cpufreq.c
arch/powerpc/platforms/pasemi/cpufreq.c
arch/powerpc/platforms/powermac/cpufreq_32.c
arch/powerpc/platforms/powermac/cpufreq_64.c
arch/sh/kernel/cpufreq.c
arch/sparc64/kernel/us2e_cpufreq.c
drivers/cpufreq/cpufreq.c

index 467d899fbe755eab9e2dc1860d4dff3dfa423762..e548ba74a4d2a17bf4537748f92edc807e859df1 100644 (file)
@@ -269,7 +269,6 @@ static int __init imx_cpufreq_driver_init(struct cpufreq_policy *policy)
                return -EINVAL;
 
        policy->cur = policy->min = policy->max = imx_get_speed(0);
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.min_freq = 8000;
        policy->cpuinfo.max_freq = 200000;
         /* Manual states, that PLL stabilizes in two CLK32 periods */
index 78f4c1346044f64a1282294332e13d6e78d3e9cd..36b47ff5af11ddf5dccadba8170baee881a2d133 100644 (file)
@@ -331,7 +331,6 @@ static int __init sa1110_cpu_init(struct cpufreq_policy *policy)
        if (policy->cpu != 0)
                return -EINVAL;
        policy->cur = policy->min = policy->max = sa11x0_getspeed(0);
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.min_freq = 59000;
        policy->cpuinfo.max_freq = 287000;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
index a0c71dca237330aac55e15bf24221b39e1962128..c0d63b0c61c9c5a54a11a298ea0f8d7334444e58 100644 (file)
@@ -108,7 +108,6 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy)
        if (policy->cpu != 0)
                return -EINVAL;
        policy->cur = policy->min = policy->max = omap_getspeed(0);
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
        policy->cpuinfo.max_freq = clk_round_rate(mpu_clk, VERY_HI_RATE) / 1000;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
index 6fd9cfd0a31bd1a330f89a1c803ca749abffa67b..b7a0e0fbd9af9f32bf618c3b98b6a46eb9608ec1 100644 (file)
@@ -118,8 +118,6 @@ static int __init __bf533_cpu_init(struct cpufreq_policy *policy)
        if (policy->cpu != 0)
                return -EINVAL;
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        /*Now ,only support one cpu */
        policy->cur = bf533_getfreq(0);
index 705e13a3078136df5bd9700ca344ac643cd145df..42115b609f63357bef766ad204a09020ac364db0 100644 (file)
@@ -646,7 +646,6 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
                        policy->cpuinfo.transition_latency =
                            perf->states[i].transition_latency * 1000;
        }
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
 
        data->max_freq = perf->states[0].core_frequency * 1000;
        /* table init */
index 66acd5039918350d16819cbf41457053f021fe56..32f0bda3fc953a4568c194b13773f5a70ba22c69 100644 (file)
@@ -363,7 +363,6 @@ static int nforce2_cpu_init(struct cpufreq_policy *policy)
        policy->cur = nforce2_get(policy->cpu);
        policy->min = policy->cpuinfo.min_freq;
        policy->max = policy->cpuinfo.max_freq;
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
 
        return 0;
 }
index f43d98e11cc72bbe72bc66a5b9cbcaac0704e2d7..c11baaf9f2b403f6624e1fa0d4fd5756491d8383 100644 (file)
@@ -253,7 +253,6 @@ static int eps_cpu_init(struct cpufreq_policy *policy)
                f_table[k].frequency = CPUFREQ_TABLE_END;
        }
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 140000; /* 844mV -> 700mV in ns */
        policy->cur = fsb * current_multiplier;
 
index f317276afa7af179906f2035705bcf66a91d1824..1e7ae7dafcf6a50921d1271347e2f522ad13ad2b 100644 (file)
@@ -219,7 +219,6 @@ static int elanfreq_cpu_init(struct cpufreq_policy *policy)
        }
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        policy->cur = elanfreq_get_cpu_frequency(0);
 
index 461dabc4e4959d23a7b5411d109b1a239a8c3872..ed2bda127c44b8734fbc88af3bc394ed95290ff9 100644 (file)
@@ -420,7 +420,6 @@ static int cpufreq_gx_cpu_init(struct cpufreq_policy *policy)
                policy->min = maxfreq / POLICY_MIN_DIV;
        policy->max = maxfreq;
        policy->cur = curfreq;
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.min_freq = maxfreq / max_duration;
        policy->cpuinfo.max_freq = maxfreq;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
index 58816facc435b84ae6f4ebb494df1ca65ea1ca73..a2fbfd912a083fd130ac16571f4a4553d36d2f3e 100644 (file)
@@ -877,7 +877,6 @@ static int __init longhaul_cpu_init(struct cpufreq_policy *policy)
        if ((longhaul_version != TYPE_LONGHAUL_V1) && (scale_voltage != 0))
                longhaul_setup_voltagescaling();
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 200000;    /* nsec */
        policy->cur = calc_speed(longhaul_get_cpu_mult());
 
index 4c76b511e1944d16ed420343cb57db0dafb1f943..8eb414b906d29f7e20f93fdc5d0e6e0edfe21da1 100644 (file)
@@ -229,7 +229,6 @@ static int cpufreq_p4_cpu_init(struct cpufreq_policy *policy)
        cpufreq_frequency_table_get_attr(p4clockmod_table, policy->cpu);
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 1000000; /* assumed */
        policy->cur = stock_freq;
 
index f89524051e4a3aa78012fd16a4179976764dc7ec..6d02853393175305e8f749b99a8500379d1353d2 100644 (file)
@@ -160,7 +160,6 @@ static int powernow_k6_cpu_init(struct cpufreq_policy *policy)
        }
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        policy->cur = busfreq * max_multiplier;
 
index ca3e1d341889dfc00964fd2d052e13d9108d8562..7decd6a50ffa6f44a83e36dfe443522a923ad15b 100644 (file)
@@ -637,8 +637,6 @@ static int __init powernow_cpu_init (struct cpufreq_policy *policy)
        printk (KERN_INFO PFX "Minimum speed %d MHz. Maximum speed %d MHz.\n",
                                minimum_speed/1000, maximum_speed/1000);
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-
        policy->cpuinfo.transition_latency = cpufreq_scale(2000000UL, fsb, latency);
 
        policy->cur = powernow_get(0);
index 372df6e67e8909ba04e7a51662dffe2849b2741f..f2a65a9609f10a66375ab476a67f0c15ab4c7df0 100644 (file)
@@ -1208,7 +1208,6 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol)
        /* run on any CPU again */
        set_cpus_allowed(current, oldmask);
 
-       pol->governor = CPUFREQ_DEFAULT_GOVERNOR;
        if (cpu_family == CPU_HW_PSTATE)
                pol->cpus = cpumask_of_cpu(pol->cpu);
        else
index b8fb4b521c62806a2ec8e3134a281590e0dc8b7a..d9f3e90a7ae080c9ba1e316c56ccb3afe6022231 100644 (file)
@@ -111,7 +111,6 @@ static int sc520_freq_cpu_init(struct cpufreq_policy *policy)
                return -ENODEV;
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 1000000; /* 1ms */
        policy->cur = sc520_freq_get_cpu_frequency(0);
 
index 6c5dc2c85aeb99241ef85fac0cd20bfcc1e522a2..811d47438546974e41651794cecf380a26e53c33 100644 (file)
@@ -393,7 +393,6 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
 
        freq = get_cur_freq(policy->cpu);
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 10000; /* 10uS transition latency */
        policy->cur = freq;
 
index a5b2346faf1fd2bba8d01bcbedb2253f4d3529cb..36685e8f7be1171cf260d75646be0dff7f00a472 100644 (file)
@@ -348,7 +348,6 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
                (speed / 1000));
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cur = speed;
 
        result = cpufreq_frequency_table_cpuinfo(policy, speedstep_freqs);
index e1c509aa3054ef5dc7f453c3f665b5dcf1cdfa8e..f2b5a621d27b39e4ece42418719655406b220e17 100644 (file)
@@ -290,7 +290,6 @@ static int speedstep_cpu_init(struct cpufreq_policy *policy)
                (speed / 1000));
 
        /* cpuinfo and default policy values */
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        policy->cur = speed;
 
index 8c6ec7070844d7a7826881ccf15b4ca5079d5654..b8498ea6206800b613f753cc75db7c84e71b9e93 100644 (file)
@@ -321,8 +321,6 @@ acpi_cpufreq_cpu_init (
                            data->acpi_data.states[i].transition_latency * 1000;
                }
        }
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-
        policy->cur = processor_get_freq(data, policy->cpu);
 
        /* table init */
index 0b6e8ee85ab10be1faf5f9d985d3e750deff46bf..c50ad22bf73e6d0cd6085db8aeefa14a8ed7473b 100644 (file)
@@ -107,8 +107,6 @@ static int cbe_cpufreq_cpu_init(struct cpufreq_policy *policy)
                pr_debug("%d: %d\n", i, cbe_freqs[i].frequency);
        }
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-
        /* if DEBUG is enabled set_pmode() measures the latency
         * of a transition */
        policy->cpuinfo.transition_latency = 25000;
index 3ae083851b01043383bda66a1518e737c8144c56..1cfb8b0c8fecd512f6b26564138a9df52b148c17 100644 (file)
@@ -195,8 +195,6 @@ static int pas_cpufreq_cpu_init(struct cpufreq_policy *policy)
                pr_debug("%d: %d\n", i, pas_freqs[i].frequency);
        }
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-
        policy->cpuinfo.transition_latency = get_gizmo_latency();
 
        cur_astate = get_cur_astate(policy->cpu);
index 1fe35dab0e9eb7d519569ef37265956d0b85613d..c04abcc28a7a88060a9cb6be50922c9ef41bd4a9 100644 (file)
@@ -410,7 +410,6 @@ static int pmac_cpufreq_cpu_init(struct cpufreq_policy *policy)
        if (policy->cpu != 0)
                return -ENODEV;
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency      = CPUFREQ_ETERNAL;
        policy->cur = cur_freq;
 
index 00f50298c342aad55c982687e03bddbde0d731cb..4dfb4bc242b5cc2c360530085a36681506a41d10 100644 (file)
@@ -357,7 +357,6 @@ static unsigned int g5_cpufreq_get_speed(unsigned int cpu)
 
 static int g5_cpufreq_cpu_init(struct cpufreq_policy *policy)
 {
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
        policy->cur = g5_cpu_freqs[g5_query_freq()].frequency;
        /* secondary CPUs are tied to the primary one by the
index e61890217c5012b006fa8437975d4fe55a0fe108..71d1c427b9079771ecf2528a02ddf0559aef2232 100644 (file)
@@ -93,7 +93,6 @@ static int sh_cpufreq_cpu_init(struct cpufreq_policy *policy)
        policy->cpuinfo.max_freq = (clk_round_rate(cpuclk, ~0UL) + 500) / 1000;
        policy->cpuinfo.transition_latency = CPUFREQ_ETERNAL;
 
-       policy->governor        = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cur             = sh_cpufreq_get(policy->cpu);
        policy->min             = policy->cpuinfo.min_freq;
        policy->max             = policy->cpuinfo.max_freq;
index 1f83fe6a82d628bfbacf63795799b401d4812903..791c15138f3a4abf3cb368e12041fcd7f304842c 100644 (file)
@@ -326,7 +326,6 @@ static int __init us2e_freq_cpu_init(struct cpufreq_policy *policy)
        table[2].index = 5;
        table[3].frequency = CPUFREQ_TABLE_END;
 
-       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        policy->cpuinfo.transition_latency = 0;
        policy->cur = clock_tick;
 
index 2f6a73c01b718318d583123f66aaa6c622dca6a0..9528bd577365d3c5fb465fee4a7971393e5392fa 100644 (file)
@@ -763,6 +763,8 @@ static int cpufreq_add_dev (struct sys_device * sys_dev)
        init_completion(&policy->kobj_unregister);
        INIT_WORK(&policy->update, handle_update);
 
+       /* Set governor before ->init, so that driver could check it */
+       policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
        /* call driver. From then on the cpufreq must be able
         * to accept all calls to ->verify and ->setpolicy for this CPU
         */