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@xxxxxxxxxxxxxxx> 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