diff mbox series

x86: olpc: fix inconsistent MFD_CS5535 configuration

Message ID 20180404124539.3817101-1-arnd@arndb.de
State New
Headers show
Series x86: olpc: fix inconsistent MFD_CS5535 configuration | expand

Commit Message

Arnd Bergmann April 4, 2018, 12:44 p.m. UTC
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

Comments

Thomas Gleixner April 4, 2018, 2:09 p.m. UTC | #1
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
Arnd Bergmann April 4, 2018, 2:29 p.m. UTC | #2
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
Thomas Gleixner April 4, 2018, 2:32 p.m. UTC | #3
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 mbox series

Patch

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