Message ID | 20201115170950.304460-3-krzk@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | clk/sunxi/media: Fix builds with COMMON_CLK and HAVE_LEGACY_CLK | expand |
On 11/15/20 11:09 AM, Krzysztof Kozlowski wrote: > COMMON_CLK is a user-selectable option with its own dependencies. The > most important dependency is !HAVE_LEGACY_CLK. User-selectable drivers > should not select COMMON_CLK because they will create a dependency cycle > and build failures. For example on MIPS a configuration with COMMON_CLK > (selected by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (selected by > SOC_RT305X) is possible: Ah, that makes sense. > > WARNING: unmet direct dependencies detected for COMMON_CLK > Depends on [n]: !HAVE_LEGACY_CLK [=y] > Selected by [y]: > - SND_SUN8I_CODEC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && > (ARCH_SUNXI || COMPILE_TEST [=y]) && OF [=y] && (MACH_SUN8I || ARM64 && ARCH_SUNXI || COMPILE_TEST [=y]) > > /usr/bin/mips-linux-gnu-ld: drivers/clk/clk.o: in function `clk_set_rate': > (.text+0xaeb4): multiple definition of `clk_set_rate'; arch/mips/ralink/clk.o:(.text+0x88): first defined here > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> > --- > arch/arm/mach-sunxi/Kconfig | 1 + > sound/soc/sunxi/Kconfig | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig > index eeadb1a4dcfe..4d9f9b6d329d 100644 > --- a/arch/arm/mach-sunxi/Kconfig > +++ b/arch/arm/mach-sunxi/Kconfig > @@ -4,6 +4,7 @@ menuconfig ARCH_SUNXI > depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 > select ARCH_HAS_RESET_CONTROLLER > select CLKSRC_MMIO > + select COMMON_CLK This is not necessary, since ARCH_SUNXI depends (through ARCH_MULTI_V{5,7}) on ARCH_MULTIPLATFORM, which selects COMMON_CLK already. > select GENERIC_IRQ_CHIP > select GPIOLIB > select PINCTRL > diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig > index 69b9d8515335..ddcaaa98d3cb 100644 > --- a/sound/soc/sunxi/Kconfig > +++ b/sound/soc/sunxi/Kconfig > @@ -14,7 +14,7 @@ config SND_SUN8I_CODEC > tristate "Allwinner SUN8I audio codec" > depends on OF > depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI) || COMPILE_TEST > - select COMMON_CLK > + depends on COMMON_CLK > select REGMAP_MMIO > help > This option enables the digital part of the internal audio codec for > For this file: Reviewed-by: Samuel Holland <samuel@sholland.org> Thanks, Samuel
On Mon, Nov 16, 2020 at 10:36:12PM -0600, Samuel Holland wrote: > On 11/15/20 11:09 AM, Krzysztof Kozlowski wrote: > > COMMON_CLK is a user-selectable option with its own dependencies. The > > most important dependency is !HAVE_LEGACY_CLK. User-selectable drivers > > should not select COMMON_CLK because they will create a dependency cycle > > and build failures. For example on MIPS a configuration with COMMON_CLK > > (selected by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (selected by > > SOC_RT305X) is possible: > > Ah, that makes sense. > > > > > WARNING: unmet direct dependencies detected for COMMON_CLK > > Depends on [n]: !HAVE_LEGACY_CLK [=y] > > Selected by [y]: > > - SND_SUN8I_CODEC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && > > (ARCH_SUNXI || COMPILE_TEST [=y]) && OF [=y] && (MACH_SUN8I || ARM64 && ARCH_SUNXI || COMPILE_TEST [=y]) > > > > /usr/bin/mips-linux-gnu-ld: drivers/clk/clk.o: in function `clk_set_rate': > > (.text+0xaeb4): multiple definition of `clk_set_rate'; arch/mips/ralink/clk.o:(.text+0x88): first defined here > > > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> > > --- > > arch/arm/mach-sunxi/Kconfig | 1 + > > sound/soc/sunxi/Kconfig | 2 +- > > 2 files changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig > > index eeadb1a4dcfe..4d9f9b6d329d 100644 > > --- a/arch/arm/mach-sunxi/Kconfig > > +++ b/arch/arm/mach-sunxi/Kconfig > > @@ -4,6 +4,7 @@ menuconfig ARCH_SUNXI > > depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 > > select ARCH_HAS_RESET_CONTROLLER > > select CLKSRC_MMIO > > + select COMMON_CLK > > This is not necessary, since ARCH_SUNXI depends (through ARCH_MULTI_V{5,7}) on > ARCH_MULTIPLATFORM, which selects COMMON_CLK already. Thanks. I'll send a v2 with changes and your review. Best regards, Krzysztof
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index eeadb1a4dcfe..4d9f9b6d329d 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -4,6 +4,7 @@ menuconfig ARCH_SUNXI depends on ARCH_MULTI_V5 || ARCH_MULTI_V7 select ARCH_HAS_RESET_CONTROLLER select CLKSRC_MMIO + select COMMON_CLK select GENERIC_IRQ_CHIP select GPIOLIB select PINCTRL diff --git a/sound/soc/sunxi/Kconfig b/sound/soc/sunxi/Kconfig index 69b9d8515335..ddcaaa98d3cb 100644 --- a/sound/soc/sunxi/Kconfig +++ b/sound/soc/sunxi/Kconfig @@ -14,7 +14,7 @@ config SND_SUN8I_CODEC tristate "Allwinner SUN8I audio codec" depends on OF depends on MACH_SUN8I || (ARM64 && ARCH_SUNXI) || COMPILE_TEST - select COMMON_CLK + depends on COMMON_CLK select REGMAP_MMIO help This option enables the digital part of the internal audio codec for
COMMON_CLK is a user-selectable option with its own dependencies. The most important dependency is !HAVE_LEGACY_CLK. User-selectable drivers should not select COMMON_CLK because they will create a dependency cycle and build failures. For example on MIPS a configuration with COMMON_CLK (selected by SND_SUN8I_CODEC) and HAVE_LEGACY_CLK (selected by SOC_RT305X) is possible: WARNING: unmet direct dependencies detected for COMMON_CLK Depends on [n]: !HAVE_LEGACY_CLK [=y] Selected by [y]: - SND_SUN8I_CODEC [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && (ARCH_SUNXI || COMPILE_TEST [=y]) && OF [=y] && (MACH_SUN8I || ARM64 && ARCH_SUNXI || COMPILE_TEST [=y]) /usr/bin/mips-linux-gnu-ld: drivers/clk/clk.o: in function `clk_set_rate': (.text+0xaeb4): multiple definition of `clk_set_rate'; arch/mips/ralink/clk.o:(.text+0x88): first defined here Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org> --- arch/arm/mach-sunxi/Kconfig | 1 + sound/soc/sunxi/Kconfig | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-)