You are not logged in.

#1 2022-02-03 10:17:02

nakano
Member
Registered: 2022-02-03
Posts: 4

Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

I have this laptop for almost a year and a half now, and ever since the internal microphone is not working. It started as a general problem with the sound card itself, as no speakers were initially detected either. I found several solutions on the net, such as specifying option 'dmic=0' on the snd_hda_intel module. Currently, I have the following configuration in /etc/modprobe.d/snd_intel_dspcfg.conf

options snd-intel-dspcfg dsp_driver=1

I made many attempts to fix the internal mic, some of the things I tried:

  • Installed sof-firmware

  • Used hdajackretask from alsa-tools to rewire the internal mic in all possible ports (currently in 0x1a based on This post)

  • blacklisted snd_soc_skl and snd_hda_intel modules

  • Probably more things that I don't remember now

I generated a report using the alsa-info.sh, which you can find here: https://alsa-project.org/db/?f=ce74858e … e36440d704

Any help would be more than welcome!

Offline

#2 2022-02-03 10:30:17

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 23,074

Re: Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

On systems requiring the use of sof-firmware, this configuration does indeed inherently disable the mic (the "dmic"=0 parameter refers to this, you disable the digital internal mic and there are some weird wirings as to why you can't do it that way, dsp_driver=1 has the logical same effect as dmic=0 so that is guaranteed to disable the mic) and the disable the use of sof-firmware. If you want this to work this needs to work without that modprobe configuration. if it doesn't work with just sof-firmware (and without the dsp_driver config) alone you need to report a bug to the sof-firmware project on github.

There have been many fixes here so depending on when you last tried this you should definitely test the current sof-firmware state without this modprobe config (... and reboot after adjusting this of course)

FWIW if there's any chance of the hdajackretask manipulations working, you currently have

[   72.223228] snd_hda_codec_conexant hdaudioC0D0: hda-codec: reconfiguring
[   72.223231] snd_hda_codec_conexant hdaudioC0D0: The codec is being used, can't reconfigure.

in the log. For hdajackretask manipulations to be working you  need to free the audio card, i.e. in this case run a

systemctl --user mask pipewire wireplumber --now

before doing the hdajackretask and then restart by running the same command but with unmask instead

But still, properly trying sof-firmware again is probably your best bet.

Last edited by V1del (2022-02-03 10:39:00)

Offline

#3 2022-02-03 11:09:17

nakano
Member
Registered: 2022-02-03
Posts: 4

Re: Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

I had sof-firmware until this morning, when I had my last desperate attempt to fix the mic. I did a hardware probe, from which you can see the audio card here here. Based on this, I noticed that the sof-pci-dev was mentioned only in linux 5.2 to 5.4 (I have 5.16), that's why I 'moved away' from sof.

I tried again now with sof-firmware installed and without the dsp_config config, and the card is not detected at all. This is the result of dmesg --level=err

[    0.284508] ACPI BIOS Error (bug): AE_AML_BUFFER_LIMIT, Field [CAP1] at bit offset/length 64/32 exceeds size of target Buffer (64 bits) (20210930/dsopcode-198)
[    0.284533] ACPI Error: Aborting method \_SB._OSC due to previous error (AE_AML_BUFFER_LIMIT) (20210930/psparse-529)
[   12.412900] snd_soc_skl 0000:00:1f.3: Fallback tplg fw dfw_sst.bin load failed with -2
[   12.412963] snd_soc_skl 0000:00:1f.3: Failed to init topology!
[   12.413001] snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -2
[   12.413069] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: failed to instantiate card -2

Also, I don't think any sof module is being loaded. Here's the result of lsmod|grep snd:

snd_seq_dummy          16384  0
snd_hrtimer            16384  1
snd_seq                90112  7 snd_seq_dummy
snd_seq_device         16384  1 snd_seq
snd_soc_skl_hda_dsp    24576  0
snd_soc_intel_hda_dsp_common    20480  1 snd_soc_skl_hda_dsp
snd_soc_hdac_hdmi      45056  1 snd_soc_skl_hda_dsp
snd_hda_codec_conexant    28672  0
snd_hda_codec_generic    98304  1 snd_hda_codec_conexant
ledtrig_audio          16384  1 snd_hda_codec_generic
snd_soc_skl_ssp_clk    16384  0
snd_soc_dmic           16384  0
snd_soc_skl           221184  1 snd_soc_skl_ssp_clk
snd_soc_hdac_hda       28672  1 snd_soc_skl
snd_hda_ext_core       36864  3 snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_skl
snd_soc_sst_ipc        20480  1 snd_soc_skl
snd_soc_sst_dsp        40960  1 snd_soc_skl
snd_soc_acpi_intel_match    61440  1 snd_soc_skl
snd_soc_acpi           16384  2 snd_soc_acpi_intel_match,snd_soc_skl
snd_soc_core          393216  5 snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_skl,snd_soc_dmic,snd_soc_skl_hda_dsp
snd_compress           28672  1 snd_soc_core
ac97_bus               16384  1 snd_soc_core
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_hda_intel          61440  0
snd_intel_dspcfg       32768  2 snd_hda_intel,snd_soc_skl
snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg
snd_hda_codec         184320  6 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_intel,snd_soc_intel_hda_dsp_common,snd_soc_hdac_hda,snd_soc_skl_hda_dsp
snd_hda_core          118784  9 snd_hda_codec_generic,snd_hda_codec_conexant,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_soc_intel_hda_dsp_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_soc_skl
snd_hwdep              20480  1 snd_hda_codec
snd_pcm               167936  8 snd_hda_intel,snd_hda_codec,snd_soc_hdac_hdmi,snd_compress,snd_soc_core,snd_soc_skl,snd_hda_core,snd_pcm_dmaengine
snd_timer              45056  3 snd_seq,snd_hrtimer,snd_pcm
snd                   126976  15 snd_hda_codec_generic,snd_seq,snd_hda_codec_conexant,snd_seq_device,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_soc_hdac_hdmi,snd_compress,snd_soc_core,snd_pcm,snd_soc_skl_hda_dsp
soundcore              16384  1 snd

Is there a way to force the kernel to load the snd_sof_pci module instead of the snd_soc_skl and snd_hda_intel. From what I understood, one should use one or the other, right?

EDIT:

I thought maybe "dmesg | grep snd" would be more informative. There seems to be some 'errors' that are not reported as errors on dmesg, and don't appear in the previous output:

[   24.479118] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   24.479127] snd_soc_skl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SST driver
[   24.479138] snd_soc_skl 0000:00:1f.3: enabling device (0000 -> 0002)
[   25.065662] snd_soc_skl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[   25.212329] snd_soc_skl 0000:00:1f.3: Direct firmware load for 9d71-INTEL-KBL-2-tplg.bin failed with error -2
[   25.212337] snd_soc_skl 0000:00:1f.3: tplg fw 9d71-INTEL-KBL-2-tplg.bin load failed with -2, trying alternative tplg name skl_hda_dsp_generic-tplg.bin
[   25.212517] snd_soc_skl 0000:00:1f.3: Direct firmware load for skl_hda_dsp_generic-tplg.bin failed with error -2
[   25.212521] snd_soc_skl 0000:00:1f.3: tplg skl_hda_dsp_generic-tplg.bin failed with -2, falling back to dfw_sst.bin
[   25.212552] snd_soc_skl 0000:00:1f.3: Direct firmware load for dfw_sst.bin failed with error -2
[   25.212556] snd_soc_skl 0000:00:1f.3: Fallback tplg fw dfw_sst.bin load failed with -2
[   25.212619] snd_soc_skl 0000:00:1f.3: Failed to init topology!
[   25.212658] snd_soc_skl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -2

Last edited by nakano (2022-02-03 11:47:52)

Offline

#4 2022-02-03 11:51:27

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 23,074

Re: Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

There's nothing to little you need to manually do here, the kernel will do the correct thing (... it does, it tries to load with snd_soc_skl in this case) which should be correct. Another suggestion I have based on the sst failure is to try

options snd-intel-dspcfg dsp_driver=2

instead of 1.

Other than that, since afaik sof-firmware is absolutely required on this to make the mic work, the best bet you have is reporting a bug to the sof-firmware project: https://github.com/thesofproject/sof/issues

Another thing I've found which reads exactly like the problem we have here but also mentions that this wouldn't work for conexant chips, but may be worth a try: https://gist.github.com/crojewsk/4e6382 … 74211f29cb

Last edited by V1del (2022-02-03 11:55:59)

Offline

#5 2022-02-03 12:01:51

nakano
Member
Registered: 2022-02-03
Posts: 4

Re: Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

Tried the dsp_driver=2, but with the same results.

Also, I've seen the gist you refer to, but since it says that it won't work on Conexant codecs, I didn't even try it.

I will file a bug on thesofproject, and come back with any news.

Thanks for the effort!

Offline

#6 2022-02-03 12:40:00

nakano
Member
Registered: 2022-02-03
Posts: 4

Re: Internal Mic not working on Conexant CX11970 (HP Elitebook 1040 G5)

It seems hopeless...

From reading a closed bug request on the github repo of SOF, and later the documentation on SOF website, it seems that Skylake and KabyLake platforms are not supported by SOF, and they won't be any time soon (something to do with Intel not being willing to cooperate).

Edit: I'm on Kaby Lake

Last edited by nakano (2022-02-03 12:40:35)

Offline

Board footer

Powered by FluxBB