Message ID | 20180404124539.3817101-1-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | x86: olpc: fix inconsistent MFD_CS5535 configuration | expand |
On Wed, 4 Apr 2018, Arnd Bergmann wrote: > This Kconfig warning appeared after a fix to the Kconfig validation. > The GPIO_CS5535 driver depends on the MFD_CS5535 driver, but the former > is selected in places where the latter is not: And why does GPIO_CS5535 not select MFD_CS5535 if it depends on it? Thanks, tglx
On Wed, Apr 4, 2018 at 4:09 PM, Thomas Gleixner <tglx@linutronix.de> wrote: > On Wed, 4 Apr 2018, Arnd Bergmann wrote: > >> This Kconfig warning appeared after a fix to the Kconfig validation. >> The GPIO_CS5535 driver depends on the MFD_CS5535 driver, but the former >> is selected in places where the latter is not: > > And why does GPIO_CS5535 not select MFD_CS5535 if it depends on it? I tried that first and ran into circular dependencies: OLPC_XO1_SCI selects GPIO_CS5535 but depends on OLPC_XO1_PM, which in turn depends on MFD_CS5535. What we could perhaps do is to make OLPC_XO1_PM select MFD_CS5535 instead of depending on it, that way it would be forced to be built-in here. I can run a few more builds on that version if you prefer it. Generally speaking, turning 'depends on' into 'select' tends to cause more problems with circular dependencies than doing it the other way round. Arnd
On Wed, 4 Apr 2018, Arnd Bergmann wrote: > On Wed, Apr 4, 2018 at 4:09 PM, Thomas Gleixner <tglx@linutronix.de> wrote: > > On Wed, 4 Apr 2018, Arnd Bergmann wrote: > > > >> This Kconfig warning appeared after a fix to the Kconfig validation. > >> The GPIO_CS5535 driver depends on the MFD_CS5535 driver, but the former > >> is selected in places where the latter is not: > > > > And why does GPIO_CS5535 not select MFD_CS5535 if it depends on it? > > I tried that first and ran into circular dependencies: OLPC_XO1_SCI selects > GPIO_CS5535 but depends on OLPC_XO1_PM, which in turn depends on > MFD_CS5535. Ok. > > What we could perhaps do is to make OLPC_XO1_PM select MFD_CS5535 > instead of depending on it, that way it would be forced to be built-in here. > I can run a few more builds on that version if you prefer it. > Generally speaking, > turning 'depends on' into 'select' tends to cause more problems with circular > dependencies than doing it the other way round. Fair enough.
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index bf4ddea48e61..ffb2b858e2b1 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2773,11 +2773,9 @@ config OLPC_XO1_RTC config OLPC_XO1_SCI bool "OLPC XO-1 SCI extras" - depends on OLPC && OLPC_XO1_PM + depends on OLPC && OLPC_XO1_PM && GPIO_CS5535=y depends on INPUT=y select POWER_SUPPLY - select GPIO_CS5535 - select MFD_CORE ---help--- Add support for SCI-based features of the OLPC XO-1 laptop: - EC-driven system wakeups
This Kconfig warning appeared after a fix to the Kconfig validation. The GPIO_CS5535 driver depends on the MFD_CS5535 driver, but the former is selected in places where the latter is not: WARNING: unmet direct dependencies detected for GPIO_CS5535 Depends on [m]: GPIOLIB [=y] && (X86 [=y] || MIPS || COMPILE_TEST [=y]) && MFD_CS5535 [=m] Selected by [y]: - OLPC_XO1_SCI [=y] && X86_32 [=y] && OLPC [=y] && OLPC_XO1_PM [=y] && INPUT [=y]=y The warning does seem appropriate, since the GPIO_CS5535 driver won't work unless MFD_CS5535 is also present. However, there is no link time dependency between the two, so this caused no problems during randconfig testing before. This changes the 'select GPIO_CS5535' to 'depends on GPIO_CS5535' to avoid the issue, at the expense of making it harder to configure the driver (one now has to select the dependencies first). The 'select MFD_CORE' part is completely redundant, since we already depend on MFD_CS5535 here, so I'm removing that as well. Ideally, the private symbols exported by that cs5535 gpio driver would just be converted to gpiolib interfaces so we could expletely avoid this dependency. Fixes: f622f8279581 ("kconfig: warn unmet direct dependency of tristate symbols selected by y") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/x86/Kconfig | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) -- 2.9.0