Re: [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs

From: Lee Jones
Date: Tue Sep 21 2021 - 04:12:02 EST


On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:

> On 20/09/2021 21:03, Will McVicker wrote:
> > This patch series tries to address the issue of ARCH_EXYNOS force selecting
> > a handful of drivers without allowing the vendor to override any of the
> > default configs. This takes away from the flexibilty of compiling a generic
> > kernel with exynos kernel modules. For example, it doesn't allow vendors to
> > modularize these drivers out of the core kernel in order to share a generic
> > kernel image across multiple devices that require device-specific kernel
> > modules.
>
> You do not address the issue in these patches. The problem you describe
> is that drivers are not modules and you are not changing them into modules.

The wording is unfortunate. The reason for this change doesn't have
much to do with kernel modules.

Let's go back in time 18 months or so when Greg KH submitted this [0]
patch, which you Acked. Greg was trying to solve the problem of not
having to enable ARCH_EXYNOS on kernels which are designed to be
platform agnostic (sometimes called Generic Kernels). For some reason
SERIAL_SAMSUNG is the only symbol with these dependencies, so the
solution seemed simple and straight forward at the time.

However, For sound reasons Geert NACKed the patch.

Quoting from [1] he says:

"A generic kernel will include Samsung SoC support, hence
PLAT_SAMSUNG or ARCH_EXYNOS will be enabled."

However, since the entry for ARCH_EXYNOS *insists* on building-in a
bunch of other symbols (via 'select') which will be unused in most
cases, this is not a currently acceptable approach for many Generic
Kernels due to size constraints.

What this patch does is migrates those symbols from being 'select'ed
(always built-in with no recourse) to 'default y'. Where the former
cannot be over-ridden, but the latter can be via a vendor's
defconfig/fragment.

I doubt many (any?) of these symbols can be converted to kernel
modules anyway, as they are required very early on in the boot
sequence.

> > To address this without impacting the existing behavior, this series
> > switches the default config logic for the offending configs to use "default
> > y if ARCH_EXYNOS" versus having ARCH_EXYNOS directly select them. I have
> > verified that these patches do not impact the default aarch64 .config.
>
> Yep, this is what you did but it does not match the described problem.
> You are not solving it but doing something else.
>
> > Will McVicker (4):
> > clk: samsung: change COMMON_CLK_SAMSUNG default config logic
> > soc: samsung: change SOC_SAMSUNG default config logic
> > pinctrl: samsung: change PINCTRL_EXYNOS default config logic
> > rtc: change HAVE_S3C_RTC default config logic

[0] https://lore.kernel.org/lkml/20200220102628.3371996-1-gregkh@xxxxxxxxxxxxxxxxxxx/
[1] https://lore.kernel.org/lkml/CAMuHMdVrVe37JyUNFSf9KRZTcndrvDaZvrVoBxzm_7J2nhg1kg@xxxxxxxxxxxxxx/

--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog