Re: [PATCH] pinctrl: aspeed: fix unmet dependencies on MFD_SYSCON for PINCTRL_ASPEED
From: Andrew Jeffery
Date: Tue Nov 02 2021 - 18:46:54 EST
On Sat, 30 Oct 2021, at 07:51, Julian Braha wrote:
> When PINCTRL_ASPEED_G* is selected,
> and MFD_SYSCON is not selected,
> Kbuild gives the following warnings:
>
> WARNING: unmet direct dependencies detected for PINCTRL_ASPEED
> Depends on [n]: PINCTRL [=y] && (ARCH_ASPEED [=n] || COMPILE_TEST
> [=y]) && OF [=y] && MFD_SYSCON [=n]
> Selected by [y]:
> - PINCTRL_ASPEED_G4 [=y] && PINCTRL [=y] && (MACH_ASPEED_G4 [=n] ||
> COMPILE_TEST [=y]) && OF [=y]
>
> WARNING: unmet direct dependencies detected for PINCTRL_ASPEED
> Depends on [n]: PINCTRL [=y] && (ARCH_ASPEED [=n] || COMPILE_TEST
> [=y]) && OF [=y] && MFD_S>
> Selected by [y]:
> - PINCTRL_ASPEED_G5 [=y] && PINCTRL [=y] && (MACH_ASPEED_G5 [=n] ||
> COMPILE_TEST [=y]) && O>
>
> WARNING: unmet direct dependencies detected for PINCTRL_ASPEED
> Depends on [n]: PINCTRL [=y] && (ARCH_ASPEED [=n] || COMPILE_TEST
> [=y]) && OF [=y] && MFD_S>
> Selected by [y]:
> - PINCTRL_ASPEED_G6 [=y] && PINCTRL [=y] && (MACH_ASPEED_G6 [=n] ||
> COMPILE_TEST [=y]) && O>
>
> This is because PINCTRL_ASPEED_G* selects PINCTRL_ASPEED,
> without selecting or depending on MFD_SYSCON, despite
> PINCTRL_ASPEED depending on MFD_SYSCON.
>
> These unmet dependency bugs were detected by Kismet,
> a static analysis tool for Kconfig. Please advise
> if this is not the appropriate solution.
>
> Signed-off-by: Julian Braha <julianbraha@xxxxxxxxx>
>From a system-level perspective MFD_SYSCON is selected by ARCH_ASPEED,
then the MACH_ASPEED_G* symbols depend on ARCH_ASPEED.
However, that doesn't help the COMPILE_TEST case, so we need some
solution. Since MFD_SYSCON is required by all the relevant drivers and
the aspeed pinctrl core, maybe it would be best just to add as a select to
PINCTRL_ASPEED? Unless there's an argument for depends instead?
Thanks for the patch and report!
Andrew
> ---
> drivers/pinctrl/aspeed/Kconfig | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/pinctrl/aspeed/Kconfig b/drivers/pinctrl/aspeed/Kconfig
> index de8b185c4fee..b0bae6144fc2 100644
> --- a/drivers/pinctrl/aspeed/Kconfig
> +++ b/drivers/pinctrl/aspeed/Kconfig
> @@ -11,6 +11,7 @@ config PINCTRL_ASPEED
> config PINCTRL_ASPEED_G4
> bool "Aspeed G4 SoC pin control"
> depends on (MACH_ASPEED_G4 || COMPILE_TEST) && OF
> + depends on MFD_SYSCON
> select PINCTRL_ASPEED
> help
> Say Y here to enable pin controller support for Aspeed's 4th
> @@ -19,6 +20,7 @@ config PINCTRL_ASPEED_G4
> config PINCTRL_ASPEED_G5
> bool "Aspeed G5 SoC pin control"
> depends on (MACH_ASPEED_G5 || COMPILE_TEST) && OF
> + depends on MFD_SYSCON
> select PINCTRL_ASPEED
> help
> Say Y here to enable pin controller support for Aspeed's 5th
> @@ -27,6 +29,7 @@ config PINCTRL_ASPEED_G5
> config PINCTRL_ASPEED_G6
> bool "Aspeed G6 SoC pin control"
> depends on (MACH_ASPEED_G6 || COMPILE_TEST) && OF
> + depends on MFD_SYSCON
> select PINCTRL_ASPEED
> help
> Say Y here to enable pin controller support for Aspeed's 6th
> --
> 2.30.2