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