The mixture of depends and select is often more confusing, so IMO, weWe have this ("strange") lines over the drivers:That's what I normally use, but I could not figure this one out.
config BAR
depends on FOO || FOO=n
which guarantees that FOO will be not module when BAR is built-in.
One problem is that SND_SOC_ALL_CODECS selects
SND_SOC_HDAC_HDA, and SND_SOC_ALL_CODECS itself
may be =m, causing the failure for
SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=y.
It might work with a separate dummy symbol:
config SND_SOC_HDAC_HDA_FORCE
tristate
depends on SND_SOC_ALL_CODECS != n
default SND_SOC_INTEL_SKYLAKE
select SND_SOC_HDAC_HDA
This would make SND_SOC_HDAC_HDA built-in even
with SND_SOC_ALL_CODECS=m and
SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=n
It seems a bit ugly, and would need some testing.
should align with only select as Pierre's suggestion, in this
particular case.