[PATCH] staging/wilc: fix Kconfig dependencies, second try

Arnd Bergmann arnd at arndb.de
Fri Oct 16 13:45:39 PDT 2015

My first attempt to fix the Kconfig logic for wilc1000 was incomplete,
as it missed the case where SPI is built-in while SDIO is modular
and wilc1000 is configured as built-in in SPI mode (or vice versa),
which would still lead to a link failure.

This works around the problem by adding an intermediate Kconfig
symbol "WILC1000_DRIVER" that controls visibility of the SDIO and
SPI sub-drivers, so we can control the dependencies better.

Signed-off-by: Arnd Bergmann <arnd at arndb.de>
Fixes: 9535ebc5e9cc ("staging/wilc1000: fix Kconfig dependencies")

diff --git a/drivers/staging/wilc1000/Kconfig b/drivers/staging/wilc1000/Kconfig
index 59ccecc316df..ee51b4278088 100644
--- a/drivers/staging/wilc1000/Kconfig
+++ b/drivers/staging/wilc1000/Kconfig
@@ -1,14 +1,16 @@
-config WILC1000
-	tristate "WILC1000 support (WiFi only)"
-	depends on !S390
+config WILC1000_DRIVER
+	bool "WILC1000 support (WiFi only)"
 	depends on CFG80211 && WEXT_CORE && INET
-	depends on MMC || SPI
 	  This module only support IEEE 802.11n WiFi.
+config WILC1000
+	tristate
         prompt "Memory Allocation"
-        depends on WILC1000
@@ -29,12 +31,12 @@ endchoice
 	prompt "Bus Type"
-	depends on WILC1000
 	default WILC1000_SDIO
-	config WILC1000_SDIO
+config WILC1000_SDIO
 	bool "SDIO support"
 	depends on MMC
+	select WILC1000
 	  This module adds support for the SDIO interface of adapters using
 	  WILC1000 chipset. The Atmel WILC1000 SDIO is a full speed interface.
@@ -45,8 +47,9 @@ choice
 	  To use this interface, pin9 (SDIO_SPI_CFG) must be grounded. Select
 	  this if your platform is using the SDIO bus.
-	config WILC1000_SPI
+config WILC1000_SPI
 	depends on SPI
+	select WILC1000
 	bool "SPI support"
 	  This module adds support for the SPI interface of adapters using
@@ -60,7 +63,7 @@ endchoice
 config WILC1000_HW_OOB_INTR
 	bool "Use out of band interrupt"
-	depends on WILC1000 && WILC1000_SDIO
+	depends on WILC1000_SDIO
 	default n
 	  This option enables out-of-band interrupt support for the WILC1000
@@ -68,3 +71,5 @@ config WILC1000_HW_OOB_INTR
 	  mechanism for SDIO host controllers that don't support SDIO interrupt.
 	  Select this option If the SDIO host controller in your platform
 	  doesn't support SDIO time devision interrupt.

More information about the linux-arm-kernel mailing list