[PATCH] pinctrl: samsung: fix missing GPIOLIB on ARM64 Exynos config

Arnd Bergmann arnd at arndb.de
Wed Apr 20 05:10:03 PDT 2022


On Wed, Apr 20, 2022 at 1:55 PM Krzysztof Kozlowski
<krzysztof.kozlowski at linaro.org> wrote:
>
> The Samsung pinctrl drivers depend on OF_GPIO, which is part of GPIOLIB.
> ARMv7 Exynos platform selects GPIOLIB and Samsung pinctrl drivers. ARMv8
> Exynos selects only the latter leading to possible wrong configuration
> on ARMv8 build:
>
>   WARNING: unmet direct dependencies detected for PINCTRL_EXYNOS
>     Depends on [n]: PINCTRL [=y] && OF_GPIO [=n] && (ARCH_EXYNOS [=y] || ARCH_S5PV210 || COMPILE_TEST [=y])
>     Selected by [y]:
>     - ARCH_EXYNOS [=y]
>
> Reported-by: Necip Fazil Yildiran <fazilyildiran at gmail.com>
> Fixes: eed6b3eb20b9 ("arm64: Split out platform options to separate Kconfig")
> Cc: <stable at vger.kernel.org>
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski at linaro.org>
>

This does not look like a correct fix:

> diff --git a/drivers/pinctrl/samsung/Kconfig b/drivers/pinctrl/samsung/Kconfig
> index dfd805e76862..c852fd1dd284 100644
> --- a/drivers/pinctrl/samsung/Kconfig
> +++ b/drivers/pinctrl/samsung/Kconfig
> @@ -4,13 +4,13 @@
>  #
>  config PINCTRL_SAMSUNG
>         bool
> -       depends on OF_GPIO
> +       select GPIOLIB
> +       select OF_GPIO
>         select PINMUX
>         select PINCONF

OF_GPIO is an automatic symbol that is always enabled when both
GPIOLIB and OF are enabled. Selecting it from somewhere else cannot
really work at all. I see we have a few other instances and should probably
fix those as well.

>  config PINCTRL_EXYNOS
>         bool "Pinctrl common driver part for Samsung Exynos SoCs"
> -       depends on OF_GPIO
>         depends on ARCH_EXYNOS || ARCH_S5PV210 || COMPILE_TEST
>         select PINCTRL_SAMSUNG
>         select PINCTRL_EXYNOS_ARM if ARM && (ARCH_EXYNOS || ARCH_S5PV210)


The problem here is that PINCTRL_EXYNOS and the others can be built for
compile-testing without CONFIG_OF on non-arm machines.

I think the correct dependency line would be

      depends on ARCH_EXYNOS || ARCH_S5PV210 || (COMPILE_TEST && OF)

which guarantees that OF_GPIO is also enabled.

    Arnd



More information about the linux-arm-kernel mailing list