> -----Original Message----- > From: linux-omap-owner@xxxxxxxxxxxxxxx > [mailto:linux-omap-owner@xxxxxxxxxxxxxxx] On Behalf Of Roger Quadros > Sent: Tuesday, April 07, 2009 4:49 PM > To: ext Roger Quadros > Cc: Kevin Hilman; linux-omap@xxxxxxxxxxxxxxx > Subject: Re: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set > > The patch fixes the following link errors > > arch/arm/mach-omap2/built-in.o: In function > `omap3_round_to_table_rate': > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:956: > undefined reference to `mpu_opps' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:956: > undefined reference to `dsp_opps' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:956: > undefined reference to `l3_opps' > arch/arm/mach-omap2/built-in.o: In function > `omap2_clk_init_cpufreq_table': > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:719: > undefined reference to `mpu_opps' > arch/arm/mach-omap2/built-in.o: In function `omap3_select_table_rate': > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:1020: > undefined reference to `mpu_opps' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:1020: > undefined reference to `dsp_opps' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:1020: > undefined reference to `l3_opps' > arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_hw': > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c: > 241: undefined > reference to `omap_pm_if_early_init' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/io.c: > 246: undefined > reference to `omap_pm_if_init' > arch/arm/mach-omap2/built-in.o: In function `omap2_clk_init': > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:887: > undefined reference to `mpu_opps' > /home/roger/maemo/linux/linux-roverx/arch/arm/mach-omap2/clock > 34xx.c:887: > undefined reference to `l3_opps' > make: *** [.tmp_vmlinux1] Error 1 > > > ext Roger Quadros wrote: > > From: Roger Quadros <ext-roger.quadros@xxxxxxxxx> > > Date: Tue, 7 Apr 2009 11:10:29 +0300 > > Subject: [PATCH] PM: OMAP: Fix build with CONFIG_OMAP_PM_NONE set > > > > Removes undefined symbol link errors. Required symbols are > defined in > > common.c and omap-pm.h > > > > Signed-off-by: Roger Quadros <ext-roger.quadros@xxxxxxxxx> > > --- > > arch/arm/plat-omap/common.c | 6 ++++++ > > arch/arm/plat-omap/include/mach/omap-pm.h | 15 +++++++++++++++ > > 2 files changed, 21 insertions(+), 0 deletions(-) > > > > diff --git a/arch/arm/plat-omap/common.c > b/arch/arm/plat-omap/common.c > > index 2866612..634ca39 100644 > > --- a/arch/arm/plat-omap/common.c > > +++ b/arch/arm/plat-omap/common.c > > @@ -46,6 +46,12 @@ int omap_bootloader_tag_len; > > struct omap_board_config_kernel *omap_board_config; > > int omap_board_config_size; > > > > +#ifdef CONFIG_OMAP_PM_NONE > > +struct omap_opp *mpu_opps; > > +struct omap_opp *dsp_opps; > > +struct omap_opp *l3_opps; > > +#endif > > + > > #ifdef CONFIG_OMAP_BOOT_TAG > > > > static int __init parse_tag_omap(const struct tag *tag) > > diff --git a/arch/arm/plat-omap/include/mach/omap-pm.h > > b/arch/arm/plat-omap/include/mach/omap-pm.h > > index f0bbd36..6a8499a 100644 > > --- a/arch/arm/plat-omap/include/mach/omap-pm.h > > +++ b/arch/arm/plat-omap/include/mach/omap-pm.h > > @@ -58,9 +58,20 @@ extern struct omap_opp *l3_opps; > > * framework starts. The "_if_" is to avoid name > collisions with the > > * PM idle-loop code. > > */ > > +#ifdef CONFIG_OMAP_PM_NONE > > +static inline int __init omap_pm_if_early_init(struct omap_opp > > *mpu_opp_table, > > + struct omap_opp *dsp_opp_table, > > + struct omap_opp *l3_opp_table) { > > + mpu_opps = 0; > > + dsp_opps = 0; > > + l3_opps = 0; > > + return 0; > > +} > > +#else > > int __init omap_pm_if_early_init(struct omap_opp *mpu_opp_table, > > struct omap_opp *dsp_opp_table, > > struct omap_opp *l3_opp_table); > > +#endif > > [sp] Instead of creating 'dummy' variables ans initializing them to 0; wouldn't it be better to redefine omap_pm_if_early_init() with no arguments under CONFIG_OMAP_PM_NONE. I have not checked in detail; but not sure impact of "return -EINVAL" in resulting from the initializations above. We may just need a clean-up to get all functions where *_opp variables are used. Also, I have not checked if the updated clock infra has any impact to the functions causing compile errors. Best regards, Sanjeev > > /** > > * omap_pm_if_init - OMAP PM init code called after clock fw init > > @@ -68,7 +79,11 @@ int __init omap_pm_if_early_init(struct omap_opp > > *mpu_opp_table, > > * The main initialization code. OPP tables are passed in > here. The > > * "_if_" is to avoid name collisions with the PM idle-loop code. > > */ > > +#ifdef CONFIG_OMAP_PM_NONE > > +static inline int __init omap_pm_if_init(void) { return 0; } > > +#else > > int __init omap_pm_if_init(void); > > +#endif > > > > /** > > * omap_pm_if_exit - OMAP PM exit code > > -- > 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 > > -- 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