[PATCH] ARM: imx6: build pm-imx6q.c independently of CONFIG_PM

Christian Gmeiner christian.gmeiner at gmail.com
Sun Feb 16 09:12:38 EST 2014


2014-02-16 9:26 GMT+01:00 Shawn Guo <shawn.guo at linaro.org>:
> When building a kernel image with only CONFIG_CPU_IDLE but no CONFIG_PM,
> we will get the following link error.
>
>   LD      init/built-in.o
> arch/arm/mach-imx/built-in.o: In function `imx6q_enter_wait':
> platform-spi_imx.c:(.text+0x25c0): undefined reference to `imx6q_set_lpm'
> platform-spi_imx.c:(.text+0x25d4): undefined reference to `imx6q_set_lpm'
> arch/arm/mach-imx/built-in.o: In function `imx6q_cpuidle_init':
> platform-spi_imx.c:(.init.text+0x75d4): undefined reference to `imx6q_set_chicken_bit'
> make[1]: *** [vmlinux] Error 1
>
> Since pm-imx6q.c has been a collection of library functions that access
> CCM low-power registers used by not only suspend but also cpuidle and
> other drivers, let's build pm-imx6q.c independently of CONFIG_PM to fix
> above error.
>
> Reported-by: Lucas Stach <l.stach at pengutronix.de>
> Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
> Cc: stable at vger.kernel.org
> ---
>  arch/arm/mach-imx/Makefile |    2 --
>  arch/arm/mach-imx/common.h |    4 +---
>  2 files changed, 1 insertion(+), 5 deletions(-)
>
> 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
>
> --
> 1.7.9.5
>

Looks good - I hit the same issue a few days ago.

Acked-by: Christian Gmeiner <christian.gmeiner at gmail.com>

--
Christian Gmeiner, MSc

https://soundcloud.com/christian-gmeiner



More information about the linux-arm-kernel mailing list