On Wed, Apr 20, 2022 at 2:13 PM Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote:
On 20/04/2022 14:10, Arnd Bergmann wrote:
On Wed, Apr 20, 2022 at 1:55 PM Krzysztof Kozlowski krzysztof.kozlowski@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]
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.
I don't think OF is the problem here, because the error is in missing GPIOLIB.
You are correct that the added dependency is not the solution for the original problem. What I meant is that by dropping the dependency on OF_GPIO, you create a new problem for compile-testing without CONFIG_OF. Adding back the OF dependency avoids the regression.
The platform selects Samsung pinctrl but it does not select GPIOLIB. Possible fixes are:
- Do not select Samsung pinctrl from the platform (but have some
default), so on compile test build it might not work. 2. Select GPIOLIB from the platform (ARMv7 Exynos does it). 3. Select GPIOLIB from here - this is current proposal.
Agreed, either 2. or 3. is fine, as long as you keep the CONFIG_OF dependency.
Arnd