lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 20 Nov 2020 19:39:23 +0900
From:   Chanwoo Choi <cw00.choi@...sung.com>
To:     Krzysztof Kozlowski <krzk@...nel.org>,
        Sylwester Nawrocki <s.nawrocki@...sung.com>,
        Tomasz Figa <tomasz.figa@...il.com>,
        Michael Turquette <mturquette@...libre.com>,
        Stephen Boyd <sboyd@...nel.org>,
        linux-samsung-soc@...r.kernel.org, linux-clk@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] clk: samsung: allow compile testing of Exynos, S3C64xx
 and S5Pv210

On 11/20/20 1:45 AM, Krzysztof Kozlowski wrote:
> So far all Exynos, S3C64xx and S5Pv210 clock units were selected by
> respective SOC/ARCH Kconfig option.  On a kernel built for selected
> SoCs, this allowed to build only limited set of matching clock drivers.
> However compile testing was not possible in such case as Makefile object
> depent on SOC/ARCH option.
> 
> Add separate Kconfig options for each of them to be able to compile
> test.
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@...nel.org>
> ---
>  drivers/clk/samsung/Kconfig  | 67 ++++++++++++++++++++++++++++++++++--
>  drivers/clk/samsung/Makefile | 22 ++++++------
>  include/linux/clk/samsung.h  |  4 +--
>  3 files changed, 78 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/clk/samsung/Kconfig b/drivers/clk/samsung/Kconfig
> index 7e9c186e57ef..0441c4f73ac9 100644
> --- a/drivers/clk/samsung/Kconfig
> +++ b/drivers/clk/samsung/Kconfig
> @@ -2,10 +2,73 @@
>  # Recent Exynos platforms should just select COMMON_CLK_SAMSUNG:
>  config COMMON_CLK_SAMSUNG
>  	bool "Samsung Exynos clock controller support" if COMPILE_TEST
> -	# Clocks on ARM64 SoCs (e.g. Exynos5433, Exynos7) are chosen by
> -	# EXYNOS_ARM64_COMMON_CLK to avoid building them on ARMv7:
> +	select S3C64XX_COMMON_CLK if ARM && ARCH_S3C64XX
> +	select S5PV210_COMMON_CLK if ARM && ARCH_S5PV210
> +	select EXYNOS_3250_COMMON_CLK if ARM && SOC_EXYNOS3250
> +	select EXYNOS_4_COMMON_CLK if ARM && ARCH_EXYNOS4
> +	select EXYNOS_5250_COMMON_CLK if ARM && SOC_EXYNOS5250
> +	select EXYNOS_5260_COMMON_CLK if ARM && SOC_EXYNOS5260
> +	select EXYNOS_5410_COMMON_CLK if ARM && SOC_EXYNOS5410
> +	select EXYNOS_5420_COMMON_CLK if ARM && SOC_EXYNOS5420
>  	select EXYNOS_ARM64_COMMON_CLK if ARM64 && ARCH_EXYNOS
>  
> +config S3C64XX_COMMON_CLK
> +	bool "Samsung S3C64xx clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung S3C64xx SoCs.
> +	  Choose Y here only if you build for this SoC.
> +
> +config S5PV210_COMMON_CLK
> +	bool "Samsung S5Pv210 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung S5Pv210 SoCs.
> +	  Choose Y here only if you build for this SoC.
> +
> +config EXYNOS_3250_COMMON_CLK
> +	bool "Samsung Exynos3250 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos3250 SoCs. Choose Y here only if you build for this SoC.
> +
> +config EXYNOS_4_COMMON_CLK
> +	bool "Samsung Exynos4 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos4212 and Exynos4412 SoCs. Choose Y here only if you build for
> +	  this SoC.
> +
> +config EXYNOS_5250_COMMON_CLK
> +	bool "Samsung Exynos5250 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos5250 SoCs. Choose Y here only if you build for this SoC.
> +
> +config EXYNOS_5260_COMMON_CLK
> +	bool "Samsung Exynos5260 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos5260 SoCs. Choose Y here only if you build for this SoC.
> +
> +config EXYNOS_5410_COMMON_CLK
> +	bool "Samsung Exynos5410 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos5410 SoCs. Choose Y here only if you build for this SoC.
> +
> +config EXYNOS_5420_COMMON_CLK
> +	bool "Samsung Exynos5420 clock controller support" if COMPILE_TEST
> +	depends on COMMON_CLK_SAMSUNG
> +	help
> +	  Support for the clock controller present on the Samsung
> +	  Exynos5420 SoCs. Choose Y here only if you build for this SoC.
> +
>  config EXYNOS_ARM64_COMMON_CLK
>  	bool "Samsung Exynos ARMv8-family clock controller support" if COMPILE_TEST
>  	depends on COMMON_CLK_SAMSUNG
> diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
> index 6891b087acff..028b2e27a37e 100644
> --- a/drivers/clk/samsung/Makefile
> +++ b/drivers/clk/samsung/Makefile
> @@ -4,15 +4,15 @@
>  #
>  
>  obj-$(CONFIG_COMMON_CLK)	+= clk.o clk-pll.o clk-cpu.o
> -obj-$(CONFIG_SOC_EXYNOS3250)	+= clk-exynos3250.o
> -obj-$(CONFIG_ARCH_EXYNOS4)	+= clk-exynos4.o
> -obj-$(CONFIG_ARCH_EXYNOS4)	+= clk-exynos4412-isp.o
> -obj-$(CONFIG_SOC_EXYNOS5250)	+= clk-exynos5250.o
> -obj-$(CONFIG_SOC_EXYNOS5250)	+= clk-exynos5-subcmu.o
> -obj-$(CONFIG_SOC_EXYNOS5260)	+= clk-exynos5260.o
> -obj-$(CONFIG_SOC_EXYNOS5410)	+= clk-exynos5410.o
> -obj-$(CONFIG_SOC_EXYNOS5420)	+= clk-exynos5420.o
> -obj-$(CONFIG_SOC_EXYNOS5420)	+= clk-exynos5-subcmu.o
> +obj-$(CONFIG_EXYNOS_3250_COMMON_CLK)	+= clk-exynos3250.o
> +obj-$(CONFIG_EXYNOS_4_COMMON_CLK)	+= clk-exynos4.o
> +obj-$(CONFIG_EXYNOS_4_COMMON_CLK)	+= clk-exynos4412-isp.o
> +obj-$(CONFIG_EXYNOS_5250_COMMON_CLK)	+= clk-exynos5250.o
> +obj-$(CONFIG_EXYNOS_5250_COMMON_CLK)	+= clk-exynos5-subcmu.o
> +obj-$(CONFIG_EXYNOS_5260_COMMON_CLK)	+= clk-exynos5260.o
> +obj-$(CONFIG_EXYNOS_5410_COMMON_CLK)	+= clk-exynos5410.o
> +obj-$(CONFIG_EXYNOS_5420_COMMON_CLK)	+= clk-exynos5420.o
> +obj-$(CONFIG_EXYNOS_5420_COMMON_CLK)	+= clk-exynos5-subcmu.o
>  obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos5433.o
>  obj-$(CONFIG_EXYNOS_AUDSS_CLK_CON) += clk-exynos-audss.o
>  obj-$(CONFIG_EXYNOS_CLKOUT)	+= clk-exynos-clkout.o
> @@ -21,5 +21,5 @@ obj-$(CONFIG_S3C2410_COMMON_CLK)+= clk-s3c2410.o
>  obj-$(CONFIG_S3C2410_COMMON_DCLK)+= clk-s3c2410-dclk.o
>  obj-$(CONFIG_S3C2412_COMMON_CLK)+= clk-s3c2412.o
>  obj-$(CONFIG_S3C2443_COMMON_CLK)+= clk-s3c2443.o
> -obj-$(CONFIG_ARCH_S3C64XX)	+= clk-s3c64xx.o
> -obj-$(CONFIG_ARCH_S5PV210)	+= clk-s5pv210.o clk-s5pv210-audss.o
> +obj-$(CONFIG_S3C64XX_COMMON_CLK)	+= clk-s3c64xx.o
> +obj-$(CONFIG_S5PV210_COMMON_CLK)	+= clk-s5pv210.o clk-s5pv210-audss.o
> diff --git a/include/linux/clk/samsung.h b/include/linux/clk/samsung.h
> index 79097e365f7f..38b774001712 100644
> --- a/include/linux/clk/samsung.h
> +++ b/include/linux/clk/samsung.h
> @@ -10,7 +10,7 @@
>  
>  struct device_node;
>  
> -#ifdef CONFIG_ARCH_S3C64XX
> +#ifdef CONFIG_S3C64XX_COMMON_CLK
>  void s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f,
>  		      unsigned long xusbxti_f, bool s3c6400,
>  		      void __iomem *base);
> @@ -19,7 +19,7 @@ static inline void s3c64xx_clk_init(struct device_node *np,
>  				    unsigned long xtal_f,
>  				    unsigned long xusbxti_f,
>  				    bool s3c6400, void __iomem *base) { }
> -#endif /* CONFIG_ARCH_S3C64XX */
> +#endif /* CONFIG_S3C64XX_COMMON_CLK */
>  
>  #ifdef CONFIG_S3C2410_COMMON_CLK
>  void s3c2410_common_clk_init(struct device_node *np, unsigned long xti_f,
> 

It looks good to me for compile testing. Thanks.

Acked-by: Chanwoo Choi <cw00.choi@...sung.com>

-- 
Best Regards,
Chanwoo Choi
Samsung Electronics

Powered by blists - more mailing lists