diff options
| author | Dominik Brodowski <linux@brodo.de> | 2002-11-03 19:47:49 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-03 19:47:49 -0800 |
| commit | 8d04df4d8f729f1b882d211332dbe15f672b19a8 (patch) | |
| tree | b34dbcf4915c7c32db62f9a1482f2e883f1b6cab /kernel | |
| parent | 5370f2ff116982cd477937eb26b1b47fcf07c6ab (diff) | |
[PATCH] cpufreq: /proc/sys/cpu and /proc/cpufreq can be used simultaneously
Both the /proc/sys/cpu/ and /proc/cpufreq interface can safely be
enabled in the same kernel. This simplifies the transition to the newer
interface. Only minor updates are needed in order to allow this to be
done.
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cpufreq.c | 33 |
1 files changed, 11 insertions, 22 deletions
diff --git a/kernel/cpufreq.c b/kernel/cpufreq.c index ca94129ac8cb..f93c394b5a66 100644 --- a/kernel/cpufreq.c +++ b/kernel/cpufreq.c @@ -4,7 +4,7 @@ * Copyright (C) 2001 Russell King * (C) 2002 Dominik Brodowski <linux@brodo.de> * - * $Id: cpufreq.c,v 1.43 2002/09/21 09:05:29 db Exp $ + * $Id: cpufreq.c,v 1.45 2002/10/08 14:54:23 db Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -21,13 +21,10 @@ #include <linux/interrupt.h> #include <linux/spinlock.h> #include <linux/ctype.h> +#include <linux/proc_fs.h> #include <asm/uaccess.h> -#ifdef CONFIG_CPU_FREQ_26_API -#include <linux/proc_fs.h> -#endif - #ifdef CONFIG_CPU_FREQ_24_API #include <linux/sysctl.h> #endif @@ -200,7 +197,6 @@ static int __init cpufreq_setup(char *str) __setup("cpufreq=", cpufreq_setup); -#ifdef CONFIG_CPU_FREQ_26_API #ifdef CONFIG_PROC_FS /** @@ -335,7 +331,6 @@ static void cpufreq_proc_exit (void) return; } #endif /* CONFIG_PROC_FS */ -#endif /* CONFIG_CPU_FREQ_26_API */ @@ -344,10 +339,6 @@ static void cpufreq_proc_exit (void) *********************************************************************/ #ifdef CONFIG_CPU_FREQ_24_API -/* NOTE #1: when you use this API, you may not use any other calls, - * except cpufreq_[un]register_notifier, of course. - */ - /** * cpufreq_set - set the CPU frequency * @freq: target frequency in kHz @@ -879,7 +870,7 @@ int cpufreq_set_policy(struct cpufreq_policy *policy) cpufreq_driver->policy[policy->cpu].max = policy->max; cpufreq_driver->policy[policy->cpu].policy = policy->policy; } - + #ifdef CONFIG_CPU_FREQ_24_API if (policy->cpu == CPUFREQ_ALL_CPUS) { for (i=0;i<NR_CPUS;i++) @@ -945,6 +936,14 @@ void cpufreq_notify_transition(struct cpufreq_freqs *freqs, unsigned int state) case CPUFREQ_POSTCHANGE: adjust_jiffies(CPUFREQ_POSTCHANGE, freqs); notifier_call_chain(&cpufreq_transition_notifier_list, CPUFREQ_POSTCHANGE, freqs); +#ifdef CONFIG_CPU_FREQ_24_API + if (freqs->cpu == CPUFREQ_ALL_CPUS) { + int i; + for (i=0;i<NR_CPUS;i++) + cpu_cur_freq[i] = freqs->new; + } else + cpu_cur_freq[freqs->cpu] = freqs->new; +#endif break; } up(&cpufreq_notifier_sem); @@ -992,9 +991,7 @@ int cpufreq_register(struct cpufreq_driver *driver_data) ret = cpufreq_set_policy(&default_policy); -#ifdef CONFIG_CPU_FREQ_26_API cpufreq_proc_init(); -#endif #ifdef CONFIG_CPU_FREQ_24_API down(&cpufreq_driver_sem); @@ -1042,9 +1039,7 @@ int cpufreq_unregister(void) up(&cpufreq_driver_sem); -#ifdef CONFIG_CPU_FREQ_26_API cpufreq_proc_exit(); -#endif #ifdef CONFIG_CPU_FREQ_24_API cpufreq_sysctl_exit(); @@ -1086,13 +1081,7 @@ int cpufreq_restore(void) policy.cpu = i; up(&cpufreq_driver_sem); -#ifdef CONFIG_CPU_FREQ_26_API cpufreq_set_policy(&policy); -#endif - -#ifdef CONFIG_CPU_FREQ_24_API - cpufreq_set(cpu_cur_freq[i], i); -#endif } return 0; |
