diff options
| author | Dave Jones <davej@redhat.com> | 2004-12-28 16:51:32 -0500 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2004-12-28 16:51:32 -0500 |
| commit | 2dc200fe05e824b4f24eb2748ff7d6dd6d22377d (patch) | |
| tree | 4e410ff87173b9b35032e1a28a070f20de144e1d | |
| parent | 53d36e36182c1873dfb7db67359913246aaffc54 (diff) | |
[CPUFREQ] cpufreq stat output in sysfs
From: "Zou, Nanhai" <nanhai.zou@intel.com>
Export cpufreq transition information for drivers using the freq-table helpers
via sysfs.
Two minor updates from Dominik Brodowski:
s/translation/transition
Kconfig re-ordering
Signed-off-by: Dave Jones <davej@redhat.com>
| -rw-r--r-- | drivers/cpufreq/Kconfig | 16 | ||||
| -rw-r--r-- | drivers/cpufreq/Makefile | 2 | ||||
| -rw-r--r-- | drivers/cpufreq/cpufreq.c | 6 | ||||
| -rw-r--r-- | drivers/cpufreq/freq_table.c | 5 | ||||
| -rw-r--r-- | include/linux/cpufreq.h | 5 |
5 files changed, 32 insertions, 2 deletions
diff --git a/drivers/cpufreq/Kconfig b/drivers/cpufreq/Kconfig index aa8eaca6e2ea..85efbc791dfc 100644 --- a/drivers/cpufreq/Kconfig +++ b/drivers/cpufreq/Kconfig @@ -27,6 +27,22 @@ config CPU_FREQ_DEBUG 2 to activate CPUfreq drivers debugging, and 4 to activate CPUfreq governor debugging +config CPU_FREQ_STAT + tristate "CPU frequency translation statistics" + depends on CPU_FREQ && CPU_FREQ_TABLE + default y + help + This driver exports CPU frequency statistics information through sysfs + file system + +config CPU_FREQ_STAT_DETAILS + bool "CPU frequency translation statistics details" + depends on CPU_FREQ && CPU_FREQ_STAT + default n + help + This will show detail CPU frequency translation table in sysfs file + system + config CPU_FREQ_PROC_INTF tristate "/proc/cpufreq interface (deprecated)" depends on CPU_FREQ && PROC_FS diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile index 50291abb4863..8e08fbf765da 100644 --- a/drivers/cpufreq/Makefile +++ b/drivers/cpufreq/Makefile @@ -1,5 +1,7 @@ # CPUfreq core obj-$(CONFIG_CPU_FREQ) += cpufreq.o +# CPUfreq stats +obj-$(CONFIG_CPU_FREQ_STAT) += cpufreq_stats.o # CPUfreq governors obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 5a4ff6fe8d57..39c89fd23b67 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -63,7 +63,7 @@ static DECLARE_RWSEM (cpufreq_notifier_rwsem); static LIST_HEAD(cpufreq_governor_list); static DECLARE_MUTEX (cpufreq_governor_sem); -static struct cpufreq_policy * cpufreq_cpu_get(unsigned int cpu) +struct cpufreq_policy * cpufreq_cpu_get(unsigned int cpu) { struct cpufreq_policy *data; unsigned long flags; @@ -102,12 +102,14 @@ static struct cpufreq_policy * cpufreq_cpu_get(unsigned int cpu) err_out: return NULL; } +EXPORT_SYMBOL_GPL(cpufreq_cpu_get); -static void cpufreq_cpu_put(struct cpufreq_policy *data) +void cpufreq_cpu_put(struct cpufreq_policy *data) { kobject_put(&data->kobj); module_put(cpufreq_driver->owner); } +EXPORT_SYMBOL_GPL(cpufreq_cpu_put); /********************************************************************* diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c index 22e2ba6b14d4..ba460bdea60f 100644 --- a/drivers/cpufreq/freq_table.c +++ b/drivers/cpufreq/freq_table.c @@ -214,6 +214,11 @@ void cpufreq_frequency_table_put_attr(unsigned int cpu) } EXPORT_SYMBOL_GPL(cpufreq_frequency_table_put_attr); +struct cpufreq_frequency_table *cpufreq_frequency_get_table(unsigned int cpu) +{ + return show_table[cpu]; +} +EXPORT_SYMBOL_GPL(cpufreq_frequency_get_table); MODULE_AUTHOR ("Dominik Brodowski <linux@brodo.de>"); MODULE_DESCRIPTION ("CPUfreq frequency table helpers"); diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 060cf3bba586..2128a3de8070 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -351,6 +351,11 @@ int cpufreq_frequency_table_target(struct cpufreq_policy *policy, unsigned int relation, unsigned int *index); +/* the following 3 funtions are for cpufreq core use only */ +struct cpufreq_frequency_table *cpufreq_frequency_get_table(unsigned int cpu); +struct cpufreq_policy *cpufreq_cpu_get(unsigned int cpu); +void cpufreq_cpu_put (struct cpufreq_policy *data); + /* the following are really really optional */ extern struct freq_attr cpufreq_freq_attr_scaling_available_freqs; |
