diff options
| author | Dominik Brodowski <linux@brodo.de> | 2003-01-12 22:03:50 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-01-12 22:03:50 -0800 |
| commit | d97c33778dfa512c4aab4a72d3af49aa308c09a8 (patch) | |
| tree | 8db5466d88c67445ba3fa8dbf9fdb4704b42a4e8 /include | |
| parent | 01c1180eca2c62425a2661801122a23d156f1e19 (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.h | 14 |
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); |
