[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 Sound-open-firmware
mailing list