DMIC split causes mic to not work on some boards
Opened this issue · 8 comments
Describe the bug
Recently installed MrChromebox FW on an Eldrid (Tigerlake) device, aka HP Chromebook x360. Speakers work well, but the mic is not showing at all. See attached screenshot.
If anyone has help or advice, really appreciate it. I don't mind patching anything (kernel, etc) if need be. Thank you!
Boardname
Eldrid
Logs
attached
debug-logs.tar.gz
I'll add this is Fedora 40. Thanks!
Likely a duplicate of #34
Thanks, I had a look. I was able to select the mic device, but unfortunately the mic is still not functional. What I see now is that when recording, the mic is giving a constant value a bit under 1/2 the way from 0 to positive max. You can see in the screenshot. No matter what noise I make, there is no change to this value.
Any further ideas very appreciated. Thank you!
This issue is most likely due to the way I handle splitting the channels of the internal mic, and I'm not sure what the best way to fix this is.
FYI headphone mic works just fine, so issue only affects internal DMIC (possibly channel mapping).
I'm not sure what the best way to fix this is.
We could try introducing NHLT tables.
[ 15.686049] sof-audio-pci-intel-tgl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 15.686113] sof-audio-pci-intel-tgl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 15.693686] sof-audio-pci-intel-tgl 0000:00:1f.3: use msi interrupt mode
[ 15.718338] sof-audio-pci-intel-tgl 0000:00:1f.3: NHLT table not found
[ 15.718360] sof-audio-pci-intel-tgl 0000:00:1f.3: hda codecs found, mask 4
[ 15.754177] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware paths/files for ipc type 0:
[ 15.754181] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware file: intel/sof/community/sof-tgl.ri
[ 15.754182] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology file: intel/sof-tplg/sof-tgl-max98357a-rt5682.tplg
[ 15.775836] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 15.775839] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 15.775844] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[ 15.884061] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:2:0-57864
[ 15.885493] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 15.967876] sof-audio-pci-intel-tgl 0000:00:1f.3: Topology: ABI 3:22:1 Kernel ABI 3:23:0
[ 15.969529] sof_rt5682 tgl_rt5682_def: ASoC: Parent card not yet available, widget card binding deferred
[ 16.046896] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/tgl_rt5682_def/sound/card0/input9
[ 16.048648] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/tgl_rt5682_def/sound/card0/input10
[ 16.049977] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/tgl_rt5682_def/sound/card0/input11
[ 16.051300] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/tgl_rt5682_def/sound/card0/input12
[ 16.051433] input: sof-rt5682 HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/tgl_rt5682_def/sound/card0/input13
I don't see how NHLT will help us, and it will very likely be a massive pain to even get it working. Anything newer than APL is hardcoded to use a 4 channel DMIC.
We can change that, TGL DSP FW is signed with community keys
Sounds like a lot of work for something that may not even fix our issue, and will most likely not be accepted into upstream.