Messages in this thread | | | Subject | Re: [PATCH] ASoC: skl: always select SND_SOC_HDAC_HDA | From | Pierre-Louis Bossart <> | Date | Fri, 2 Nov 2018 09:56:52 -0500 |
| |
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.
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.
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > sound/soc/intel/Kconfig | 1 + > sound/soc/intel/skylake/skl.c | 2 -- > 2 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/sound/soc/intel/Kconfig b/sound/soc/intel/Kconfig > index 0caa1f4eb94d..c21ce7624af1 100644 > --- a/sound/soc/intel/Kconfig > +++ b/sound/soc/intel/Kconfig > @@ -109,6 +109,7 @@ config SND_SOC_INTEL_SKYLAKE > depends on PCI && ACPI > select SND_HDA_EXT_CORE > select SND_HDA_DSP_LOADER > + select SND_SOC_HDAC_HDA > select SND_SOC_TOPOLOGY > select SND_SOC_INTEL_SST > select SND_SOC_ACPI_INTEL_MATCH > diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c > index 29225623b4b4..1069ee265ce5 100644 > --- a/sound/soc/intel/skylake/skl.c > +++ b/sound/soc/intel/skylake/skl.c > @@ -870,9 +870,7 @@ static int skl_create(struct pci_dev *pci, > hbus = skl_to_hbus(skl); > bus = skl_to_bus(skl); > > -#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDA) > ext_ops = snd_soc_hdac_hda_get_ops(); > -#endif > snd_hdac_ext_bus_init(bus, &pci->dev, &bus_core_ops, io_ops, ext_ops); > bus->use_posbuf = 1; > skl->pci = pci;
| |