[Sound-open-firmware] SoF support for 8086:9d71?

Amadeusz Sławiński amadeuszx.slawinski at linux.intel.com
Tue Dec 15 18:48:25 CET 2020


On 12/15/2020 6:21 PM, Pierre-Louis Bossart wrote:
> 
> 
> On 12/14/20 9:54 PM, Kai-Heng Feng wrote:
>>
>>
>> On Mon, Dec 14, 2020 at 13:33, Pierre-Louis Bossart 
>> <pierre-louis.bossart at linux.intel.com> wrote:
>>>
>>>> On more recent kernels legacy HDA stops working for device 8086:9d71:
>>>> [   47.211381] snd_hda_intel 0000:00:1f.3: DSP detected with PCI 
>>>> class/subclass/prog-if info 0x040100
>>>> [   47.211383] snd_hda_intel 0000:00:1f.3: Digital mics found on 
>>>> Skylake+ platform, using SST driver
>>>>
>>>> However, only legacy HDA supports it:
>>>> 00:1f.3 Multimedia audio controller [0401]: Intel Corporation 
>>>> Sunrise Point-LP HD Audio [8086:9d71] (rev 21)
>>>> ..
>>>>      Kernel modules: snd_hda_intel
>>>>
>>>> Ubuntu kernel doesn't select SND_SOC_INTEL_SKYLAKE, which builds 
>>>> snd-soc-skl, because based on the Kconfig description SOF should 
>>>> support it.
>>>>
>>>> I wonder if SND_SOC_INTEL_SKYLAKE should be select again?
>>>
>>> SOF does not support Skylake and Kabylake, and only the Up2 board for 
>>> APL. I am not sure what you mean by 'recent' kernels since this 
>>> dynamic selection has been in place for a year now?
>>
>> Ubuntu kernel only changed this in 20.10 release.
>>
>>>
>>> At any rate, to make this work again:
>>>
>>> 1. You can select SND_SOC_INTEL_SKYLAKE or alternatively to be more 
>>> accurate:
>>>
>>> SND_SOC_INTEL_SKL
>>> SND_SOC_INTEL_APL
>>> SND_SOC_INTEL_KBL
>>>
>>> There are known issues with Conexant codecs, typically on HP devices, 
>>> only Realtek codecs are supported.
>>
>> Right, so we can't really enable this for generic distros like Ubuntu.
>>
>> Let me think of a more generic solution.
> 
> Re-thinking about this, I actually don't know how this problem occurred:
> the tables are conditionally built so you would only select SST if you 
> had the drivers compiled in.
> 
> see sound/hda/intel-dsp-config.c:
> 
> /* Kabylake-LP */
> #if IS_ENABLED(CONFIG_SND_SOC_INTEL_KBL)
>      {
>          .flags = FLAG_SST,
>          .device = 0x9d71,
>          .dmi_table = (const struct dmi_system_id []) {
>              {
>                  .ident = "Google Chromebooks",
>                  .matches = {
>                      DMI_MATCH(DMI_SYS_VENDOR, "Google"),
>                  }
>              },
>              {}
>          }
>      },
>      {
>          .flags = FLAG_SST | FLAG_SST_ONLY_IF_DMIC,
>          .device = 0x9d71,
>      },
> #endif
> 
> Something's not adding up here.

Seems like you can enable CONFIG_SND_SOC_INTEL_KBL (and all other 
platforms), without enabling CONFIG_SND_SOC_INTEL_SKYLAKE, which enables 
building of snd_soc_skl module... I would say that there is something 
wrong with module dependencies in Kconfig :/
Will look at it tomorrow. In the meantime any chance we can get the 
config which was used, to confirm my suspicion?

Thanks,
Amadeusz


More information about the Alsa-devel mailing list