diff mbox

[PM-WIP_CPUFREQ,v4,2/4] OMAP2+: cpufreq: use OPP library

Message ID 87zklzq2cs.fsf@ti.com (mailing list archive)
State Not Applicable
Delegated to: Kevin Hilman
Headers show

Commit Message

Kevin Hilman June 2, 2011, 10:45 p.m. UTC
Nishanth Menon <nm@ti.com> writes:

> OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
> the cpufreq code has does not use clk_init_cpufreq_table. As a result,
> it is unusuable for OMAP2 and only usable only on platforms using OPP
> library.
>
> So move the compilation for cpufreq only if OPP is available for the
> architecture and deny OMAP2 in multi-OMAP builds until OMAP2 is fixed.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>

I updated this patch slightly, preferring a more generic failure mode,
namely just failing with a warning on init when no OPPs are present.

I tested this on 3430/n900 by simply commenting out the
omap_init_opp_table() for OMAP3.  CPUfreq init fails predictably with

   platform mpu.0: opp_init_cpufreq_table: Device OPP not found (-19)
   platform mpu.0: omap_cpu_init: cpu0: failed creating freq table[-19]

So CPUfreq driver never gets registered.

Updated patch below.  If you're OK with this change, I'll apply it to
pm-wip/cpufreq.

Kevin


From 22f1704e2ec30816e34b3d46a4c61513441fce8d Mon Sep 17 00:00:00 2001
From: Nishanth Menon <nm@ti.com>
Date: Thu, 26 May 2011 19:39:18 -0700
Subject: [PATCH 2/4] OMAP2+: cpufreq: only supports OPP library

OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
the cpufreq code does not currently use clk_init_cpufreq_table. As a
result, it is unusuable for OMAP2 and only usable only on platforms
using OPP library.

Remove the unbalanced clk_exit_cpufreq_table().  Any platforms where
OPPs are not availble will fail on init because a freq table will not
be properly initialized.

Signed-off-by: Nishanth Menon <nm@ti.com>
[khilman@ti.com: changelog edits, and graceful failure mode changes]
Acked-by: Kevin Hilman <khilman@ti.com>
---
 arch/arm/mach-omap2/omap2plus-cpufreq.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

Comments

Nishanth Menon June 2, 2011, 11:14 p.m. UTC | #1
On Thu, Jun 2, 2011 at 17:45, Kevin Hilman <khilman@ti.com> wrote:
> Nishanth Menon <nm@ti.com> writes:
>
>> OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
>> the cpufreq code has does not use clk_init_cpufreq_table. As a result,
>> it is unusuable for OMAP2 and only usable only on platforms using OPP
>> library.
>>
>> So move the compilation for cpufreq only if OPP is available for the
>> architecture and deny OMAP2 in multi-OMAP builds until OMAP2 is fixed.
>>
>> Signed-off-by: Nishanth Menon <nm@ti.com>
>
> I updated this patch slightly, preferring a more generic failure mode,
> namely just failing with a warning on init when no OPPs are present.
>
> I tested this on 3430/n900 by simply commenting out the
> omap_init_opp_table() for OMAP3.  CPUfreq init fails predictably with
>
>   platform mpu.0: opp_init_cpufreq_table: Device OPP not found (-19)
>   platform mpu.0: omap_cpu_init: cpu0: failed creating freq table[-19]
>
> So CPUfreq driver never gets registered.
>
> Updated patch below.  If you're OK with this change, I'll apply it to
> pm-wip/cpufreq.
>
> Kevin
>
>
> From 22f1704e2ec30816e34b3d46a4c61513441fce8d Mon Sep 17 00:00:00 2001
> From: Nishanth Menon <nm@ti.com>
> Date: Thu, 26 May 2011 19:39:18 -0700
> Subject: [PATCH 2/4] OMAP2+: cpufreq: only supports OPP library
>
> OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
> the cpufreq code does not currently use clk_init_cpufreq_table. As a
> result, it is unusuable for OMAP2 and only usable only on platforms
> using OPP library.
>
> Remove the unbalanced clk_exit_cpufreq_table().  Any platforms where
> OPPs are not availble will fail on init because a freq table will not
> be properly initialized.
>
> Signed-off-by: Nishanth Menon <nm@ti.com>
> [khilman@ti.com: changelog edits, and graceful failure mode changes]
> Acked-by: Kevin Hilman <khilman@ti.com>
> ---
>  arch/arm/mach-omap2/omap2plus-cpufreq.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> index acf18e8..3af7cda 100644
> --- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
> +++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
> @@ -1,7 +1,7 @@
>  /*
>  *  OMAP2PLUS cpufreq driver
>  *
> - *  CPU frequency scaling for OMAP
> + *  CPU frequency scaling for OMAP using OPP information
>  *
>  *  Copyright (C) 2005 Nokia Corporation
>  *  Written by Tony Lindgren <tony@atomide.com>
> @@ -203,7 +203,6 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
>
>  static int omap_cpu_exit(struct cpufreq_policy *policy)
>  {
> -       clk_exit_cpufreq_table(&freq_table);
>        clk_put(mpu_clk);
>        return 0;
>  }
> --
> 1.7.4
>
>
Fine with me. thanks for it. it achieves what I needed as well :)

Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/omap2plus-cpufreq.c b/arch/arm/mach-omap2/omap2plus-cpufreq.c
index acf18e8..3af7cda 100644
--- a/arch/arm/mach-omap2/omap2plus-cpufreq.c
+++ b/arch/arm/mach-omap2/omap2plus-cpufreq.c
@@ -1,7 +1,7 @@ 
 /*
  *  OMAP2PLUS cpufreq driver
  *
- *  CPU frequency scaling for OMAP
+ *  CPU frequency scaling for OMAP using OPP information
  *
  *  Copyright (C) 2005 Nokia Corporation
  *  Written by Tony Lindgren <tony@atomide.com>
@@ -203,7 +203,6 @@  static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
 
 static int omap_cpu_exit(struct cpufreq_policy *policy)
 {
-	clk_exit_cpufreq_table(&freq_table);
 	clk_put(mpu_clk);
 	return 0;
 }