On 11/2/18, Pierre-Louis Bossart pierre-louis.bossart@linux.intel.com wrote:
On 11/2/18 6:24 AM, Arnd Bergmann wrote:
The skylake sound support is written to work both with or without CONFIG_SND_SOC_HDAC_HDA, and uses an #ifdef to decide whether it should link against that. However, this fails with SND_SOC_ALL_CODECS=m or SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m when the Skylake support itself is built-in, with this link error:
sound/soc/intel/skylake/skl.o: In function `skl_probe': skl.c:(.text+0x56c): undefined reference to `snd_soc_hdac_hda_get_ops'
Using an explicit 'select' here simplifies the logic and prevents it from happening, at the cost of always including the compile time dependency.
Thanks Arnd for the report. I don't quite agree with the proposal, this should be similar to HDAC_HDMI which is not selected by default, and there's no reason to force the support for HDAudio when the vast majority of Skylake+ devices which enable this driver don't have any HDaudio codec.
Sure, feel free to treat this patch as a bug report and come up with a better fix.
Also the code is skl.c is already conditional, so this function should not be required.
Do you have a config that fails, I'd like to look at this further.
https://pastebin.com/4iYPGxkU is what first triggered this.
Arnd