Message ID | 1392690905-16839-1-git-send-email-shawn.guo@linaro.org |
---|---|
State | Accepted |
Commit | 28a9f3b078c545064dcf4b46d2c6917554d1642e |
Headers | show |
On Tue, Feb 25, 2014 at 08:46:03PM +0100, Arnd Bergmann wrote: > On Tuesday 18 February 2014, Shawn Guo wrote: > > When building a kernel image with only CONFIG_CPU_IDLE but no CONFIG_PM, > > we will get the following link error. > > > > I seem to need more changes on top of this, to allow building with neither > CPU_IDLE nor PM enabled. Can you verify that? The error is only seen on the linux-next, and partially caused by the resolution for the conflict between this patch and the ones I queued for 3.15. I'm rebasing my imx-soc-3.15 branch to 3.14-rc4, so that the conflict can be solved on my branch in a cleaner way, which will help fix the error here. So hopefully, in the next build of linux-next, the error will disappear. Shawn > > Arnd > > commit 6a434aea44d8a250f8ee2205be9bc429b140b663 > Author: Arnd Bergmann <arnd@arndb.de> > Date: Mon Feb 24 22:19:50 2014 +0100 > > ARM: imx: more CONFIG_PM fixes > > This lets us build the imx code in more configurations. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h > index a3fcd9c..a367675 100644 > --- a/arch/arm/mach-imx/common.h > +++ b/arch/arm/mach-imx/common.h > @@ -147,15 +147,13 @@ int imx_cpu_kill(unsigned int cpu); > > void imx6q_pm_init(void); > void imx6q_pm_set_ccm_base(void __iomem *base); > -#ifdef CONFIG_PM > -void imx6_suspend(void __iomem *ocram_vbase); > void imx6dl_pm_init(void); > void imx6sl_pm_init(void); > +#ifdef CONFIG_PM > +void imx6_suspend(void __iomem *ocram_vbase); > void imx5_pm_init(void); > #else > static inline void imx6_suspend(void __iomem *ocram_vbase) {} > -static inline void imx6dl_pm_init(void) {} > -static inline void imx6sl_pm_init(void) {} > static inline void imx5_pm_init(void) {} > #endif > > diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c > index bb69943..5fea999 100644 > --- a/arch/arm/mach-imx/pm-imx6q.c > +++ b/arch/arm/mach-imx/pm-imx6q.c > @@ -521,10 +521,12 @@ static void __init imx6_pm_common_init(const struct imx6_pm_socdata > > WARN_ON(!ccm_base); > > - ret = imx6q_ocram_suspend_init(socdata); > - if (ret) > - pr_warn("%s: failed to initialize ocram suspend %d!\n", > - __func__, ret); > + if (IS_ENABLED(CONFIG_ARM_CPU_SUSPEND)) { > + ret = imx6q_ocram_suspend_init(socdata); > + if (ret) > + pr_warn("%s: failed to initialize ocram suspend %d!\n", > + __func__, ret); > + } > > /* > * This is for SW workaround step #1 of ERR007265, see comments
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index befcaf5..ec41964 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -101,11 +101,9 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o obj-$(CONFIG_SOC_IMX6Q) += clk-imx6q.o mach-imx6q.o obj-$(CONFIG_SOC_IMX6SL) += clk-imx6sl.o mach-imx6sl.o -ifeq ($(CONFIG_PM),y) obj-$(CONFIG_SOC_IMX6Q) += pm-imx6q.o headsmp.o # i.MX6SL reuses i.MX6Q code obj-$(CONFIG_SOC_IMX6SL) += pm-imx6q.o headsmp.o -endif # i.MX5 based machines obj-$(CONFIG_MACH_MX51_BABBAGE) += mach-mx51_babbage.o diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h index 59c3b9b..baf439d 100644 --- a/arch/arm/mach-imx/common.h +++ b/arch/arm/mach-imx/common.h @@ -144,13 +144,11 @@ void imx6q_set_chicken_bit(void); void imx_cpu_die(unsigned int cpu); int imx_cpu_kill(unsigned int cpu); -#ifdef CONFIG_PM void imx6q_pm_init(void); void imx6q_pm_set_ccm_base(void __iomem *base); +#ifdef CONFIG_PM void imx5_pm_init(void); #else -static inline void imx6q_pm_init(void) {} -static inline void imx6q_pm_set_ccm_base(void __iomem *base) {} static inline void imx5_pm_init(void) {} #endif