On Thu, Jun 2, 2011 at 17:45, Kevin Hilman <khilman@xxxxxx> wrote: > Nishanth Menon <nm@xxxxxx> 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@xxxxxx> > > 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@xxxxxx> > 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@xxxxxx> > [khilman@xxxxxx: changelog edits, and graceful failure mode changes] > Acked-by: Kevin Hilman <khilman@xxxxxx> > --- > 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@xxxxxxxxxxx> > @@ -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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html