[alsa-devel] [PATCH v2 0/2] soundwire: fix Kconfig select/depend issues
0-day/Kbuild starts complaining about missed module dependencies and compilation issues. Since codecs and soc drivers need to be compilable independently, let's fix this using the following model:
SOF_INTEL_XYZ --- select ----> SOUNDWIRE_INTEL ---> select ---- | v SOUNDWIRE_BUS ^ | CODEC_ABC ------- select -----> REGMAP_SOUNDWIRE ---> select ---
The SOUNDWIRE option remains a top-level boolean selector without impact on compilation, as recommended by Linus [1] and done for all Intel ASoC stuff.
[1] https://lkml.org/lkml/2017/11/15/554
Changes since v1: Removed useless depend in REGMAP_SOUNDWIRE (select will ignore dependencies) Reordered patches to avoid circular dependencies with git bisect
Pierre-Louis Bossart (2): soundwire: fix SOUNDWIRE_BUS option regmap: soundwire: fix Kconfig select/depend issue
drivers/base/regmap/Kconfig | 2 +- drivers/soundwire/Kconfig | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
The existing Kconfig can lead to the following warning:
WARNING: unmet direct dependencies detected for REGMAP_SOUNDWIRE Depends on [m]: SOUNDWIRE_BUS [=m] Selected by [y]: - SND_SOC_RT700_SDW [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SOUNDWIRE [=y] Selected by [m]: - SOUNDWIRE_BUS [=m] && SOUNDWIRE [=y]
Remove wrong-way link between SOUNDWIRE_BUS and REGMAP_SOUNDWIRE
SOUNDWIRE_BUS can be selected independendly by the SOC driver (e.g. SOUNDWIRE_INTEL) or the codec driver (via REGMAP_SOUNDWIRE).
Fixes: 6c49b32d3c09 ('soundwire: select REGMAP_SOUNDWIRE') Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com --- drivers/soundwire/Kconfig | 1 - 1 file changed, 1 deletion(-)
diff --git a/drivers/soundwire/Kconfig b/drivers/soundwire/Kconfig index 84876a74874f..d382d80d2fe1 100644 --- a/drivers/soundwire/Kconfig +++ b/drivers/soundwire/Kconfig @@ -18,7 +18,6 @@ comment "SoundWire Devices"
config SOUNDWIRE_BUS tristate - select REGMAP_SOUNDWIRE
config SOUNDWIRE_CADENCE tristate
The mechanism should be
config CODEC_XYX_SDW depends on SOUNDWIRE select REGMAP_SOUNDWIRE
config REGMAP_SOUNDWIRE select SOUNDWIRE_BUS
SOUNDWIRE_BUS can be independently selected by the SOC driver. The SOC driver should not know or care about REGMAP_SOUNDWIRE.
Fixes: 7c22ce6e2184 ('03fc8746f7915b5a391d8227f7e1') Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com --- drivers/base/regmap/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig index 6ad5ef48b61e..c12e3f1fb110 100644 --- a/drivers/base/regmap/Kconfig +++ b/drivers/base/regmap/Kconfig @@ -44,7 +44,7 @@ config REGMAP_IRQ
config REGMAP_SOUNDWIRE tristate - depends on SOUNDWIRE_BUS + select SOUNDWIRE_BUS
config REGMAP_SCCB tristate
On 19-04-19, 14:46, Pierre-Louis Bossart wrote:
The mechanism should be
config CODEC_XYX_SDW depends on SOUNDWIRE select REGMAP_SOUNDWIRE
config REGMAP_SOUNDWIRE select SOUNDWIRE_BUS
SOUNDWIRE_BUS can be independently selected by the SOC driver. The SOC driver should not know or care about REGMAP_SOUNDWIRE.
lgtm, Mark can I have ypu ack so that I can carry the series thru soundwire tree
Thanks
Fixes: 7c22ce6e2184 ('03fc8746f7915b5a391d8227f7e1') Signed-off-by: Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com
drivers/base/regmap/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig index 6ad5ef48b61e..c12e3f1fb110 100644 --- a/drivers/base/regmap/Kconfig +++ b/drivers/base/regmap/Kconfig @@ -44,7 +44,7 @@ config REGMAP_IRQ
config REGMAP_SOUNDWIRE tristate
- depends on SOUNDWIRE_BUS
- select SOUNDWIRE_BUS
config REGMAP_SCCB tristate -- 2.17.1
On Fri, Apr 19, 2019 at 02:46:49PM -0500, Pierre-Louis Bossart wrote:
config REGMAP_SOUNDWIRE tristate
- depends on SOUNDWIRE_BUS
- select SOUNDWIRE_BUS
This now makes _SOUNDWIRE different to all the other bus types; if this is a good change then surely the same thing should be done for all the other bus types. It's also not clear to me that this actually does anything, do selects from symbols that are themselves selected actually do anything?
On 5/2/19 11:39 PM, Mark Brown wrote:
On Fri, Apr 19, 2019 at 02:46:49PM -0500, Pierre-Louis Bossart wrote:
config REGMAP_SOUNDWIRE tristate
- depends on SOUNDWIRE_BUS
- select SOUNDWIRE_BUS
This now makes _SOUNDWIRE different to all the other bus types; if this is a good change then surely the same thing should be done for all the other bus types. It's also not clear to me that this actually does anything, do selects from symbols that are themselves selected actually do anything?
yes, this works, but if you prefer alignment I can follow the SLIMBUS model
config SND_SOC_WCD9335 tristate "WCD9335 Codec" depends on SLIMBUS select REGMAP_SLIMBUS select REGMAP_IRQ
config REGMAP_SLIMBUS tristate depends on SLIMBUS
menuconfig SLIMBUS tristate "SLIMbus support" if SLIMBUS
# SLIMbus controllers config SLIM_QCOM_CTRL ...
As I mentioned it'll compile the bus even if there is no user for it, but it's your call: alignment or optimization.
participants (3)
-
Mark Brown
-
Pierre-Louis Bossart
-
Vinod Koul