summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDominik Brodowski <linux@brodo.de>2003-01-12 22:03:50 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2003-01-12 22:03:50 -0800
commitd97c33778dfa512c4aab4a72d3af49aa308c09a8 (patch)
tree8db5466d88c67445ba3fa8dbf9fdb4704b42a4e8 /include
parent01c1180eca2c62425a2661801122a23d156f1e19 (diff)
[PATCH] cpufreq: per-CPU initialization
Allow for per-CPU initialization of CPUfreq. Therefore, it's not necessary any longer to kmalloc the per-CPU policy struct. To use this, cpufreq_driver->policy has to be set to NULL. Of course, cpufreq_driver->init is needed then, which is the appropriate function for CPU initialization. cpufreq_driver->exit is available for cleanup. All existing drivers continue to work without any changes, just for clarity ->init and ->exit are set to NULL, and the names accordingly.
Diffstat (limited to 'include')
-rw-r--r--include/linux/cpufreq.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index 12c59ed7d695..9226268ef4ef 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -109,19 +109,29 @@ static inline unsigned long cpufreq_scale(unsigned long old, u_int div, u_int mu
* CPUFREQ DRIVER INTERFACE *
*********************************************************************/
+#define CPUFREQ_NAME_LEN 16
+
struct cpufreq_driver {
/* needed by all drivers */
int (*verify) (struct cpufreq_policy *policy);
int (*setpolicy) (struct cpufreq_policy *policy);
struct cpufreq_policy *policy;
+ char name[CPUFREQ_NAME_LEN];
+ /* optional, for the moment */
+ int (*init) (struct cpufreq_policy *policy);
+ int (*exit) (struct cpufreq_policy *policy);
/* 2.4. compatible API */
#ifdef CONFIG_CPU_FREQ_24_API
unsigned int cpu_cur_freq[NR_CPUS];
#endif
};
-int cpufreq_register(struct cpufreq_driver *driver_data);
-int cpufreq_unregister(void);
+int cpufreq_register_driver(struct cpufreq_driver *driver_data);
+int cpufreq_unregister_driver(struct cpufreq_driver *driver_data);
+/* deprecated */
+#define cpufreq_register(x) cpufreq_register_driver(x)
+#define cpufreq_unregister(x) cpufreq_unregister_driver(NULL)
+
void cpufreq_notify_transition(struct cpufreq_freqs *freqs, unsigned int state);