diff mbox

cpufreq: OMAP: remove loops_per_jiffy recalculate for smp

Message ID 1346981022-28011-1-git-send-email-shawn.guo@linaro.org (mailing list archive)
State New, archived
Headers show

Commit Message

Shawn Guo Sept. 7, 2012, 1:23 a.m. UTC
From: Richard Zhao <richard.zhao@freescale.com>

With ARM smp common code recalculating loops_per_jiffy in a cpufreq
transiton notifier call, the loops_per_jiffy recalculate in omap-cpufreq
driver becomes redundant.  Remove it.

Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
---
 drivers/cpufreq/omap-cpufreq.c |   35 -----------------------------------
 1 files changed, 0 insertions(+), 35 deletions(-)

Comments

Rafael Wysocki Sept. 7, 2012, 7:15 p.m. UTC | #1
On Friday, September 07, 2012, Shawn Guo wrote:
> From: Richard Zhao <richard.zhao@freescale.com>
> 
> With ARM smp common code recalculating loops_per_jiffy in a cpufreq
> transiton notifier call, the loops_per_jiffy recalculate in omap-cpufreq
> driver becomes redundant.  Remove it.
> 
> Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>

I suppose that Kevin is going to handle this, right?

Kevin, if you want me to pull new material for v3.7, it's about time to get
it ready.

Thanks,
Rafael


> ---
>  drivers/cpufreq/omap-cpufreq.c |   35 -----------------------------------
>  1 files changed, 0 insertions(+), 35 deletions(-)
> 
> diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
> index 17fa04d..83a78ad 100644
> --- a/drivers/cpufreq/omap-cpufreq.c
> +++ b/drivers/cpufreq/omap-cpufreq.c
> @@ -40,16 +40,6 @@
>  /* OPP tolerance in percentage */
>  #define	OPP_TOLERANCE	4
>  
> -#ifdef CONFIG_SMP
> -struct lpj_info {
> -	unsigned long	ref;
> -	unsigned int	freq;
> -};
> -
> -static DEFINE_PER_CPU(struct lpj_info, lpj_ref);
> -static struct lpj_info global_lpj_ref;
> -#endif
> -
>  static struct cpufreq_frequency_table *freq_table;
>  static atomic_t freq_table_users = ATOMIC_INIT(0);
>  static struct clk *mpu_clk;
> @@ -161,31 +151,6 @@ static int omap_target(struct cpufreq_policy *policy,
>  	}
>  
>  	freqs.new = omap_getspeed(policy->cpu);
> -#ifdef CONFIG_SMP
> -	/*
> -	 * Note that loops_per_jiffy is not updated on SMP systems in
> -	 * cpufreq driver. So, update the per-CPU loops_per_jiffy value
> -	 * on frequency transition. We need to update all dependent CPUs.
> -	 */
> -	for_each_cpu(i, policy->cpus) {
> -		struct lpj_info *lpj = &per_cpu(lpj_ref, i);
> -		if (!lpj->freq) {
> -			lpj->ref = per_cpu(cpu_data, i).loops_per_jiffy;
> -			lpj->freq = freqs.old;
> -		}
> -
> -		per_cpu(cpu_data, i).loops_per_jiffy =
> -			cpufreq_scale(lpj->ref, lpj->freq, freqs.new);
> -	}
> -
> -	/* And don't forget to adjust the global one */
> -	if (!global_lpj_ref.freq) {
> -		global_lpj_ref.ref = loops_per_jiffy;
> -		global_lpj_ref.freq = freqs.old;
> -	}
> -	loops_per_jiffy = cpufreq_scale(global_lpj_ref.ref, global_lpj_ref.freq,
> -					freqs.new);
> -#endif
>  
>  done:
>  	/* notifiers */
>
Kevin Hilman Sept. 14, 2012, 2:21 p.m. UTC | #2
"Rafael J. Wysocki" <rjw@sisk.pl> writes:

> On Friday, September 07, 2012, Shawn Guo wrote:
>> From: Richard Zhao <richard.zhao@freescale.com>
>> 
>> With ARM smp common code recalculating loops_per_jiffy in a cpufreq
>> transiton notifier call, the loops_per_jiffy recalculate in omap-cpufreq
>> driver becomes redundant.  Remove it.
>> 
>> Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
>> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
>> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
>
> I suppose that Kevin is going to handle this, right?

Normally, yes, but I'm a bit behind, still catching up from some time
off.

> Kevin, if you want me to pull new material for v3.7, it's about time to get
> it ready.

Rafael, feel free to add this one to your pm-cpufreq branch with

Acked-by: Kevin Hilman <khilman@ti.com>

Also, we have one other OMAP CPUfreq change that needs to go via the
OMAP tree with some corresponding clock changes:

  http://marc.info/?l=linux-omap&m=134740995111966&w=2

Can you ack that one?

Thanks,

Kevin
Rafael Wysocki Sept. 14, 2012, 7:01 p.m. UTC | #3
On Friday, September 14, 2012, Kevin Hilman wrote:
> "Rafael J. Wysocki" <rjw@sisk.pl> writes:
> 
> > On Friday, September 07, 2012, Shawn Guo wrote:
> >> From: Richard Zhao <richard.zhao@freescale.com>
> >> 
> >> With ARM smp common code recalculating loops_per_jiffy in a cpufreq
> >> transiton notifier call, the loops_per_jiffy recalculate in omap-cpufreq
> >> driver becomes redundant.  Remove it.
> >> 
> >> Signed-off-by: Richard Zhao <richard.zhao@freescale.com>
> >> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> >> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> >
> > I suppose that Kevin is going to handle this, right?
> 
> Normally, yes, but I'm a bit behind, still catching up from some time
> off.
> 
> > Kevin, if you want me to pull new material for v3.7, it's about time to get
> > it ready.
> 
> Rafael, feel free to add this one to your pm-cpufreq branch with
> 
> Acked-by: Kevin Hilman <khilman@ti.com>

I'll take it, thanks!

> Also, we have one other OMAP CPUfreq change that needs to go via the
> OMAP tree with some corresponding clock changes:
> 
>   http://marc.info/?l=linux-omap&m=134740995111966&w=2
> 
> Can you ack that one?

Sure, please consider as ACKed by me in case I can't find the original message.

Thanks,
Rafael
diff mbox

Patch

diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
index 17fa04d..83a78ad 100644
--- a/drivers/cpufreq/omap-cpufreq.c
+++ b/drivers/cpufreq/omap-cpufreq.c
@@ -40,16 +40,6 @@ 
 /* OPP tolerance in percentage */
 #define	OPP_TOLERANCE	4
 
-#ifdef CONFIG_SMP
-struct lpj_info {
-	unsigned long	ref;
-	unsigned int	freq;
-};
-
-static DEFINE_PER_CPU(struct lpj_info, lpj_ref);
-static struct lpj_info global_lpj_ref;
-#endif
-
 static struct cpufreq_frequency_table *freq_table;
 static atomic_t freq_table_users = ATOMIC_INIT(0);
 static struct clk *mpu_clk;
@@ -161,31 +151,6 @@  static int omap_target(struct cpufreq_policy *policy,
 	}
 
 	freqs.new = omap_getspeed(policy->cpu);
-#ifdef CONFIG_SMP
-	/*
-	 * Note that loops_per_jiffy is not updated on SMP systems in
-	 * cpufreq driver. So, update the per-CPU loops_per_jiffy value
-	 * on frequency transition. We need to update all dependent CPUs.
-	 */
-	for_each_cpu(i, policy->cpus) {
-		struct lpj_info *lpj = &per_cpu(lpj_ref, i);
-		if (!lpj->freq) {
-			lpj->ref = per_cpu(cpu_data, i).loops_per_jiffy;
-			lpj->freq = freqs.old;
-		}
-
-		per_cpu(cpu_data, i).loops_per_jiffy =
-			cpufreq_scale(lpj->ref, lpj->freq, freqs.new);
-	}
-
-	/* And don't forget to adjust the global one */
-	if (!global_lpj_ref.freq) {
-		global_lpj_ref.ref = loops_per_jiffy;
-		global_lpj_ref.freq = freqs.old;
-	}
-	loops_per_jiffy = cpufreq_scale(global_lpj_ref.ref, global_lpj_ref.freq,
-					freqs.new);
-#endif
 
 done:
 	/* notifiers */