Subject: [PATCH v3 01/10] ARM: cygnus: fix link failures when CONFIG_COMMON_CLK_IPROC is disabled

From: [email-masked] (Jon Mason)
Date: Thu, 15 Oct 2015 17:08:11 -0400

On Thu, Oct 15, 2015 at 01:28:50PM -0700, Scott Branden wrote:
> Jon,
> 
> One question below for others to comment on.
> 
> On 15-10-15 12:48 PM, Jon Mason wrote:
> >From: Arnd Bergmann <[email-masked]>
> >
> >When CONFIG_CYGNUS is set but CONFIG_COMMON_CLK_IPROC is disabled, the
> >following link failures are caused:
> >
> >drivers/built-in.o: In function `cygnus_armpll_init':
> >:(.init.text+0x1d290): undefined reference to `iproc_armpll_setup'
> >drivers/built-in.o: In function `cygnus_genpll_clk_init':
> >:(.init.text+0x1d2c4): undefined reference to `iproc_pll_clk_setup'
> >drivers/built-in.o: In function `cygnus_lcpll0_clk_init':
> >:(.init.text+0x1d304): undefined reference to `iproc_pll_clk_setup'
> >drivers/built-in.o: In function `cygnus_mipipll_clk_init':
> >:(.init.text+0x1d344): undefined reference to `iproc_pll_clk_setup'
> >drivers/built-in.o: In function `cygnus_asiu_init':
> >:(.init.text+0x1d370): undefined reference to `iproc_asiu_setup'
> >
> >It is fixed it by always selecting COMMON_CLK_IPROC from
> >ARCH_BCM_IPROC, and making COMMON_CLK_IPROC a silent option (thus
> >preventing it from being erroneously disabled by a user).
> >
> >Signed-off-by: Arnd Bergmann <[email-masked]>
> >Signed-off-by: Jon Mason <[email-masked]>
> >---
> >  arch/arm/mach-bcm/Kconfig | 2 +-
> >  drivers/clk/bcm/Kconfig   | 4 +---
> >  2 files changed, 2 insertions(+), 4 deletions(-)
> >
> >diff --git a/arch/arm/mach-bcm/Kconfig b/arch/arm/mach-bcm/Kconfig
> >index 1319c3c..84bd265 100644
> >--- a/arch/arm/mach-bcm/Kconfig
> >+++ b/arch/arm/mach-bcm/Kconfig
> >@@ -14,7 +14,7 @@ config ARCH_BCM_IPROC
> >  	select HAVE_ARM_SCU if SMP
> >  	select HAVE_ARM_TWD if SMP
> >  	select ARM_GLOBAL_TIMER
> >-
> >+	select COMMON_CLK_IPROC
> >  	select CLKSRC_MMIO
> >  	select ARCH_REQUIRE_GPIOLIB
> >  	select ARM_AMBA
> >diff --git a/drivers/clk/bcm/Kconfig b/drivers/clk/bcm/Kconfig
> >index 88febf5..46ee475 100644
> >--- a/drivers/clk/bcm/Kconfig
> >+++ b/drivers/clk/bcm/Kconfig
> >@@ -9,10 +9,8 @@ config CLK_BCM_KONA
> >  	  in the BCM281xx and BCM21664 families.
> >
> >  config COMMON_CLK_IPROC
> >-	bool "Broadcom iProc clock support"
> >-	depends on ARCH_BCM_IPROC
> >+	bool
> >  	depends on COMMON_CLK
> Should these depends on remain?  I think COMMON_CLK_IPROC won't work
> without them.

The ones that were removed were not necessary (as ARCH_BCM_IPROC now
selects it).  I left the "depends on COMMON_CLK" in the off chance
that the dependency chain gets broken some how (as ARCH_BCM_IPROC is
not selecting COMMON_CLK directly, but it is being selected by
ARCH_MULTIPLATFORM).

Thanks,
Jon

> >-	default ARCH_BCM_IPROC
> >  	help
> >  	  Enable common clock framework support for Broadcom SoCs
> >  	  based on the iProc architecture
> >
>