diff mbox series

pinctrl: aspeed: fix unmet dependencies on MFD_SYSCON for PINCTRL_ASPEED

Message ID 20211029212157.14230-1-julianbraha@gmail.com
State Not Applicable, archived
Headers show
Series pinctrl: aspeed: fix unmet dependencies on MFD_SYSCON for PINCTRL_ASPEED | expand

Commit Message

Julian Braha Oct. 29, 2021, 9:21 p.m. UTC
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@gmail.com>
---
 drivers/pinctrl/aspeed/Kconfig | 3 +++
 1 file changed, 3 insertions(+)

Comments

Andrew Jeffery Nov. 2, 2021, 10:46 p.m. UTC | #1
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@gmail.com>

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
diff mbox series

Patch

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