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@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:
- 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.