Nishanth Menon <[email protected]> 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 <[email protected]>

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 <[email protected]>
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 <[email protected]>
[[email protected]: changelog edits, and graceful failure mode changes]
Acked-by: Kevin Hilman <[email protected]>
---
 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 <[email protected]>
@@ -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

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to