All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [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.