* [PATCH 2.5] cpufreq: minor cleanups
@ 2002-12-21 20:25 Dominik Brodowski
2002-12-22 21:25 ` Pavel Machek
0 siblings, 1 reply; 3+ messages in thread
From: Dominik Brodowski @ 2002-12-21 20:25 UTC (permalink / raw
To: torvalds; +Cc: linux-kernel, cpufreq
Get rid of CPUFREQ_ALL_CPUS codepaths not used anymore.
Dominik
diff -ruN linux-original/kernel/cpufreq.c linux/kernel/cpufreq.c
--- linux-original/kernel/cpufreq.c 2002-12-21 21:21:57.000000000 +0100
+++ linux/kernel/cpufreq.c 2002-12-21 21:21:46.000000000 +0100
@@ -365,7 +365,7 @@
{
struct cpufreq_policy policy;
down(&cpufreq_driver_sem);
- if (!cpufreq_driver || !cpu_max_freq) {
+ if (!cpufreq_driver || !cpu_max_freq || (cpu > NR_CPUS)) {
up(&cpufreq_driver_sem);
return -EINVAL;
}
@@ -377,7 +377,20 @@
up(&cpufreq_driver_sem);
- return cpufreq_set_policy(&policy);
+ if (policy.cpu == CPUFREQ_ALL_CPUS)
+ {
+ unsigned int i;
+ unsigned int ret = 0;
+ for (i=0; i<NR_CPUS; i++)
+ {
+ policy.cpu = i;
+ if (cpu_online(i))
+ ret |= cpufreq_set_policy(&policy);
+ }
+ return ret;
+ }
+ else
+ return cpufreq_set_policy(&policy);
}
EXPORT_SYMBOL_GPL(cpufreq_set);
@@ -842,7 +855,6 @@
*/
int cpufreq_set_policy(struct cpufreq_policy *policy)
{
- unsigned int i;
int ret;
down(&cpufreq_driver_sem);
@@ -889,24 +901,12 @@
up(&cpufreq_notifier_sem);
- if (policy->cpu == CPUFREQ_ALL_CPUS) {
- for (i=0;i<NR_CPUS;i++) {
- cpufreq_driver->policy[i].min = policy->min;
- cpufreq_driver->policy[i].max = policy->max;
- cpufreq_driver->policy[i].policy = policy->policy;
- }
- } else {
- cpufreq_driver->policy[policy->cpu].min = policy->min;
- cpufreq_driver->policy[policy->cpu].max = policy->max;
- cpufreq_driver->policy[policy->cpu].policy = policy->policy;
- }
+ cpufreq_driver->policy[policy->cpu].min = policy->min;
+ 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++)
- cpu_cur_freq[i] = policy->max;
- } else
- cpu_cur_freq[policy->cpu] = policy->max;
+ cpu_cur_freq[policy->cpu] = policy->max;
#endif
ret = cpufreq_driver->setpolicy(policy);
@@ -920,15 +920,6 @@
/*********************************************************************
- * DYNAMIC CPUFREQ SWITCHING *
- *********************************************************************/
-#ifdef CONFIG_CPU_FREQ_DYNAMIC
-/* TBD */
-#endif /* CONFIG_CPU_FREQ_DYNAMIC */
-
-
-
-/*********************************************************************
* EXTERNALLY AFFECTING FREQUENCY CHANGES *
*********************************************************************/
@@ -973,12 +964,7 @@
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;
+ cpu_cur_freq[freqs->cpu] = freqs->new;
#endif
break;
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2.5] cpufreq: minor cleanups
2002-12-21 20:25 [PATCH 2.5] cpufreq: minor cleanups Dominik Brodowski
@ 2002-12-22 21:25 ` Pavel Machek
2002-12-26 22:07 ` Dominik Brodowski
0 siblings, 1 reply; 3+ messages in thread
From: Pavel Machek @ 2002-12-22 21:25 UTC (permalink / raw
To: Dominik Brodowski; +Cc: torvalds, linux-kernel, cpufreq
Hi!
> Get rid of CPUFREQ_ALL_CPUS codepaths not used anymore.
Get rid of? Seems you are adding it.
> Dominik
>
> diff -ruN linux-original/kernel/cpufreq.c linux/kernel/cpufreq.c
> --- linux-original/kernel/cpufreq.c 2002-12-21 21:21:57.000000000 +0100
> +++ linux/kernel/cpufreq.c 2002-12-21 21:21:46.000000000 +0100
> @@ -365,7 +365,7 @@
> {
> struct cpufreq_policy policy;
> down(&cpufreq_driver_sem);
> - if (!cpufreq_driver || !cpu_max_freq) {
> + if (!cpufreq_driver || !cpu_max_freq || (cpu > NR_CPUS)) {
> up(&cpufreq_driver_sem);
> return -EINVAL;
> }
> @@ -377,7 +377,20 @@
>
> up(&cpufreq_driver_sem);
>
> - return cpufreq_set_policy(&policy);
> + if (policy.cpu == CPUFREQ_ALL_CPUS)
> + {
> + unsigned int i;
> + unsigned int ret = 0;
> + for (i=0; i<NR_CPUS; i++)
> + {
> + policy.cpu = i;
> + if (cpu_online(i))
> + ret |= cpufreq_set_policy(&policy);
> + }
> + return ret;
> + }
> + else
> + return cpufreq_set_policy(&policy);
> }
> EXPORT_SYMBOL_GPL(cpufreq_set);
>
> @@ -842,7 +855,6 @@
> */
> int cpufreq_set_policy(struct cpufreq_policy *policy)
> {
> - unsigned int i;
> int ret;
>
> down(&cpufreq_driver_sem);
> @@ -889,24 +901,12 @@
>
> up(&cpufreq_notifier_sem);
>
> - if (policy->cpu == CPUFREQ_ALL_CPUS) {
> - for (i=0;i<NR_CPUS;i++) {
> - cpufreq_driver->policy[i].min = policy->min;
> - cpufreq_driver->policy[i].max = policy->max;
> - cpufreq_driver->policy[i].policy = policy->policy;
> - }
> - } else {
> - cpufreq_driver->policy[policy->cpu].min = policy->min;
> - cpufreq_driver->policy[policy->cpu].max = policy->max;
> - cpufreq_driver->policy[policy->cpu].policy = policy->policy;
> - }
> + cpufreq_driver->policy[policy->cpu].min = policy->min;
> + 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++)
> - cpu_cur_freq[i] = policy->max;
> - } else
> - cpu_cur_freq[policy->cpu] = policy->max;
> + cpu_cur_freq[policy->cpu] = policy->max;
> #endif
>
> ret = cpufreq_driver->setpolicy(policy);
> @@ -920,15 +920,6 @@
>
>
> /*********************************************************************
> - * DYNAMIC CPUFREQ SWITCHING *
> - *********************************************************************/
> -#ifdef CONFIG_CPU_FREQ_DYNAMIC
> -/* TBD */
> -#endif /* CONFIG_CPU_FREQ_DYNAMIC */
> -
> -
> -
> -/*********************************************************************
> * EXTERNALLY AFFECTING FREQUENCY CHANGES *
> *********************************************************************/
>
> @@ -973,12 +964,7 @@
> 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;
> + cpu_cur_freq[freqs->cpu] = freqs->new;
> #endif
> break;
> }
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
Worst form of spam? Adding advertisment signatures ala sourceforge.net.
What goes next? Inserting advertisment *into* email?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 2.5] cpufreq: minor cleanups
2002-12-22 21:25 ` Pavel Machek
@ 2002-12-26 22:07 ` Dominik Brodowski
0 siblings, 0 replies; 3+ messages in thread
From: Dominik Brodowski @ 2002-12-26 22:07 UTC (permalink / raw
To: Pavel Machek; +Cc: torvalds, linux-kernel, cpufreq
On Sun, Dec 22, 2002 at 10:25:59PM +0100, Pavel Machek wrote:
> Hi!
>
> > Get rid of CPUFREQ_ALL_CPUS codepaths not used anymore.
>
> Get rid of? Seems you are adding it.
Only in cpufreq_set(). If that is called with cpu==CPUFREQ_ALL_CPUS, this
value can't be passed to cpufreq_set_policy any more. So the
cpufreq_set_policy call needs to be iterated over all cpus. The reason for
this is that on some architectures, not all CPUs support the same frequency
ranges.
In all other instances, CPUFREQ_ALL_CPUS is removed by that patch you're
commenting on; will re-send it soon for 2.5.53.
Dominik
> > - return cpufreq_set_policy(&policy);
> > + if (policy.cpu == CPUFREQ_ALL_CPUS)
> > + {
> > + unsigned int i;
> > + unsigned int ret = 0;
> > + for (i=0; i<NR_CPUS; i++)
> > + {
> > + policy.cpu = i;
> > + if (cpu_online(i))
> > + ret |= cpufreq_set_policy(&policy);
> > + }
> > + return ret;
> > + }
> > + else
> > + return cpufreq_set_policy(&policy);
> > }
> > EXPORT_SYMBOL_GPL(cpufreq_set);
> >
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-12-26 22:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-21 20:25 [PATCH 2.5] cpufreq: minor cleanups Dominik Brodowski
2002-12-22 21:25 ` Pavel Machek
2002-12-26 22:07 ` Dominik Brodowski
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.