Re: [alsa-devel] [PATCH 0/2] soundwire: fix Kconfig select/depend issues

From: Pierre-Louis Bossart
Date: Fri Apr 12 2019 - 10:56:26 EST



Removing SOUNDWIRE_BUS Kconfig did clean it up and made it bit more
align with others

Good point, but no. This is intentional and follows the Kconfig pattern
pattern described by Takashi at https://lkml.org/lkml/2017/11/17/47

yes, this SOUNDWIRE is overkill for now, but let's assume there is a second
non-intel implementation (which I understand as very likely given all the
threads on ARM64 support). In that case you'd really want a top-level
selector option that has no actual compilation impact - not used in any
Makefile or code - but enables the sub-options and let users/distros select
the platforms they care about.

I don't understand what you're saying here - what is the intended
difference between SOUNDWIRE and SOUNDWIRE_BUS? Having the separate
option for _INTEL for your controller makes sense but otherwise the
normal pattern for a bus would be that you'd have the root config
option for the bus (which would enable the core code for the bus) and
then everything else is hidden behind that.

I was thinking of this pattern:

config SOUNDWIRE
bool "SoundWire support"

if SOUNDWIRE

config SOUNDWIRE_INTEL
tristate "SoundWire for Intel"
select SOUNDWIRE_BUS

config SOUNDWIRE_XYZ_ARM64
tristate "SoundWire for XYZ platform"
select SOUNDWIRE_BUS

config SOUNDWIRE_BUS
tristate

endif

One could argue that SOUNDWIRE could select SOUNDWIRE_BUS directly, or merge the two, but then you could have a configuration where the bus is included with no actual users. Not to mention that the intent of the top-level selector is typically to have no impact on compilation as recommended by Linus.