diff options
author | Thomas Renninger <trenn@suse.de> | 2009-07-24 09:25:05 -0400 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2009-09-01 12:45:14 -0400 |
commit | 8aa84ad8d6c740a04386f599694609ee4998e82e (patch) | |
tree | b5bedf4203f038c0f624d3240d9d23dbc9e20e63 /drivers/cpufreq/cpufreq.c | |
parent | 4bfa042cd304aa48cf05cd0a13c2d0794a675c0e (diff) |
[CPUFREQ] Introduce global, not per core: /sys/devices/system/cpu/cpufreq
Currently everything in the cpufreq layer is per core based.
This does not reflect reality, for example ondemand on conservative
governors have global sysfs variables.
Introduce a global cpufreq directory and add the kobject to the governor
struct, so that governors can easily access it.
The directory is initialized in the cpufreq_core_init initcall and thus will
always be created if cpufreq is compiled in, even if no cpufreq driver is
active later.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index bbd5c2164ab6..4da28444b235 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -686,6 +686,9 @@ static struct attribute *default_attrs[] = { | |||
686 | NULL | 686 | NULL |
687 | }; | 687 | }; |
688 | 688 | ||
689 | struct kobject *cpufreq_global_kobject; | ||
690 | EXPORT_SYMBOL(cpufreq_global_kobject); | ||
691 | |||
689 | #define to_policy(k) container_of(k, struct cpufreq_policy, kobj) | 692 | #define to_policy(k) container_of(k, struct cpufreq_policy, kobj) |
690 | #define to_attr(a) container_of(a, struct freq_attr, attr) | 693 | #define to_attr(a) container_of(a, struct freq_attr, attr) |
691 | 694 | ||
@@ -1935,7 +1938,11 @@ static int __init cpufreq_core_init(void) | |||
1935 | per_cpu(policy_cpu, cpu) = -1; | 1938 | per_cpu(policy_cpu, cpu) = -1; |
1936 | init_rwsem(&per_cpu(cpu_policy_rwsem, cpu)); | 1939 | init_rwsem(&per_cpu(cpu_policy_rwsem, cpu)); |
1937 | } | 1940 | } |
1941 | |||
1942 | cpufreq_global_kobject = kobject_create_and_add("cpufreq", | ||
1943 | &cpu_sysdev_class.kset.kobj); | ||
1944 | BUG_ON(!cpufreq_global_kobject); | ||
1945 | |||
1938 | return 0; | 1946 | return 0; |
1939 | } | 1947 | } |
1940 | |||
1941 | core_initcall(cpufreq_core_init); | 1948 | core_initcall(cpufreq_core_init); |