linux
linux copied to clipboard
Internal sound not working with Intel Cannon Lake audio
HP Z-Book 17 G6. Even the internal mic never worked, after upgrading to SuSE 15.3 it also lacks the internal soundcard.
Problem 1: Internal mic doesn't work Problem 2: Internal sound doesn't work anymore
Booting with option snd-intel-dspcfg.dsp_driver=1 let the internal soundcard work again (meanwhile nvidia has solved the cracking up of pulseaudio), but certainly still without the internal microphone.
Meanwhile, together with SuSE, some other kernel versions have been tested an the behavior is always the same. The bug is filed as: https://bugzilla.opensuse.org/show_bug.cgi?id=1196329
Attached the alsa-info and dmesg outputs.
Oh, this is a bad one
[ 23.133070] sof-audio-pci-intel-cnl 0000:00:1f.3: error: cl_dsp_init: timeout HDA_DSP_SRAM_REG_ROM_STATUS read
[ 23.135450] sof-audio-pci-intel-cnl 0000:00:1f.3: ------------[ DSP dump start ]------------
[ 23.137806] sof-audio-pci-intel-cnl 0000:00:1f.3: fw_state: SOF_FW_BOOT_IN_PROGRESS (2)
[ 23.140144] sof-audio-pci-intel-cnl 0000:00:1f.3: extended rom status: 0x6000021 0x0 0x0 0x0 0x0 0x0 0x183011b 0x0
[ 23.142502] sof-audio-pci-intel-cnl 0000:00:1f.3: ------------[ DSP dump end ]------------
[ 23.144934] sof-audio-pci-intel-cnl 0000:00:1f.3: error: dsp init failed after 3 attempts with err: -110
[ 23.147301] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to start DSP
[ 23.149600] sof-audio-pci-intel-cnl 0000:00:1f.3: error: failed to boot DSP firmware -110
[ 23.152510] sof-audio-pci-intel-cnl 0000:00:1f.3: error: sof_probe_work failed err: -110
Can you please add this file sof-dyndbg.conf.txt as /etc/modprobe.d/sof-dyndbg.conf, remove the option "option snd-intel-dspcfg.dsp_driver=1", reboot and attach the results of 'alsa-info'.
Wondering if you are using the latest SOF firmware binaries, and also if the CSE/CSME is enabled in your BIOS, without it we cannot authenticate the firmware and the boot will fail.
See https://thesofproject.github.io/latest/getting_started/intel_debug/suggestions.html for common issues with audio.
Hi I did so. Attached the outputs. infodat4.tar.gz
Are you really using a 5.3 kernel?
5.3.18-150300.59.49-preempt the module name 'sof-audio-pci' also tells me is an older kernel version.
Is there a way you can test with something more recent? In previous logs you used 5.16 , that should tell us what firmware version you are using.
The only question in my mind is that you are on a CoffeeLake device:
[8086:a348]
{ PCI_DEVICE(0x8086, 0xa348), /* CNL-H */
.driver_data = (unsigned long)&cfl_desc},
intel/sof/sof-cfl.ri
and I have a vague memory of some signing issues on those platforms. @lgirdwood @ranj063 @kv2019i does this ring a bell?
infodat5.tar.gz Yes, the 5.3.18-150300.59.49-preempt is the latest default openSuSE Leap 15.3 kernel, that I noprmally use. The other ones, I've tried only on special request from SuSE (like I already wrote). Nevertheless, I repeated this now, certainly with sof debug enabled and have attached the outputs again. Hope, this will help.
Hi Pierre-Louis,
tried again with a newer Kernel and left the results at the bug report.
Am Monday 28 February 2022 schrieb Pierre-Louis Bossart:
Are you really using a 5.3 kernel?
5.3.18-150300.59.49-preempt the module name 'sof-audio-pci' also tells me is an older kernel version.
Is there a way you can test with something more recent? In previous logs you used 5.16 , that should tell us what firmware version you are using.
The only question in my mind is that you are on a CoffeeLake device:
[8086:a348] { PCI_DEVICE(0x8086, 0xa348), /* CNL-H */ .driver_data = (unsigned long)&cfl_desc}, intel/sof/sof-cfl.ri
and I have a vague memory of some signing issues on those platforms. @lgirdwood @ranj063 @kv2019i does this ring a bell?
Thanks @maymic
We have a conceptual bug in our driver that I never realized: We can only get the firmware version if it boots, as a result of the FW_READY notification :-( @ranj063 @kv2019i @ujfalusi @bardliao FYI.
@maymic can you try to follow the symlinks for /lib/firmware/intel/sof/sof-cfl.ri and identify which SOF binary version is used on your platform? Danke!
and I have a vague memory of some signing issues on those platforms. @lgirdwood @ranj063 @kv2019i does this ring a bell?
@plbossart definitely sounds like an authentication failure.
/lib/firmware/intel/sof/sof-cfl.ri -> v1.6.1/intel-signed/sof-cnl-v1.6.1.ri
Thanks @maymic
We have a conceptual bug in our driver that I never realized: We can only get the firmware version if it boots, as a result of the FW_READY notification :-( @ranj063 @kv2019i @ujfalusi @bardliao FYI.
@plbossart, we print the firmware version before it is loaded to the DSP when parsing the ext_manifest, it usually looks like this in dmesg:
[ 181.207295] sof-audio-pci-intel-tgl 0000:00:1f.3: loading firmware
[ 181.207380] sof-audio-pci-intel-tgl 0000:00:1f.3: request_firmware intel/sof/sof-tgl-h.ri successful
[ 181.207381] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 1 size 0x1A0
[ 181.207382] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 6 size 0x20
[ 181.207383] sof-audio-pci-intel-tgl 0000:00:1f.3: FW clock config: HPRO
[ 181.207384] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 5 size 0x20
[ 181.207384] sof-audio-pci-intel-tgl 0000:00:1f.3: ext_man_get_config_data can hold up to 3 config elements
[ 181.207385] sof-audio-pci-intel-tgl 0000:00:1f.3: ext_man_get_config_data get index 0 token 1 val 384
[ 181.207386] sof-audio-pci-intel-tgl 0000:00:1f.3: ext_man_get_config_data get index 1 token 2 val 1
[ 181.207388] sof-audio-pci-intel-tgl 0000:00:1f.3: ext_man_get_config_data get index 2 token 0 val 0
[ 181.207389] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 4 size 0x20
[ 181.207389] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: DBG_ABI 5:3:0
[ 181.207390] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 3 size 0x30
[ 181.207391] sof-audio-pci-intel-tgl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[ 181.207391] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 2 size 0x70
[ 181.207392] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: used compiler GCC 10:2:0 xtensa-cnl-elf used optimization flags -O2
[ 181.207394] sof-audio-pci-intel-tgl 0000:00:1f.3: found sof_ext_man header type 0 size 0x50
[ 181.207395] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:0:0-b7465
[ 181.207396] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:20:1 Kernel ABI 3:18:0
[ 181.207397] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: FW ABI is more recent than kernel
We also print it again after the firmware is booted:
[ 181.298154] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware download successful, booting...
[ 181.306976] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx: 0x70000000
[ 181.306982] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc: DSP is ready 0x70000000 offset 0x81000
[ 181.307079] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware info: version 2:0:0-b7465
[ 181.307082] sof-audio-pci-intel-tgl 0000:00:1f.3: Firmware: ABI 3:20:1 Kernel ABI 3:18:0
[ 181.307084] sof-audio-pci-intel-tgl 0000:00:1f.3: warn: FW ABI is more recent than kernel
[ 181.307136] sof-audio-pci-intel-tgl 0000:00:1f.3: mailbox upstream 0x81000 - size 0x1000
[ 181.307138] sof-audio-pci-intel-tgl 0000:00:1f.3: mailbox downstream 0xa0000 - size 0x2000
[ 181.307140] sof-audio-pci-intel-tgl 0000:00:1f.3: stream region 0xc1000 - size 0x1000
[ 181.307141] sof-audio-pci-intel-tgl 0000:00:1f.3: debug region 0xc0000 - size 0x800
[ 181.307143] sof-audio-pci-intel-tgl 0000:00:1f.3: fw_state change: 2 -> 5
[ 181.307150] sof-audio-pci-intel-tgl 0000:00:1f.3: ipc rx done: 0x70000000
[ 181.307199] sof-audio-pci-intel-tgl 0000:00:1f.3: firmware boot complete
/lib/firmware/intel/sof/sof-cfl.ri -> v1.6.1/intel-signed/sof-cnl-v1.6.1.ri
Oh my, this is ancient.
@maymic Can you retry with an updated version of the firmware, either by upgrading your distribution or installing v2.1 from https://github.com/thesofproject/sof-bin
Hi there, sorry for the long delay, but a new project in a new city consumes some time... Now I've tried with sof fw vers 2.2.1a and the result is the same like before - no mic, no speakers...
@maymic, can you also check the suggestions made in https://github.com/thesofproject/linux/issues/3462#issuecomment-1054417912 and add the sof-dyndbg.conf
so we can see more information, like loaded firmware version.
The kernel version is still on the old side as it is 5.3.18-150300.59.71-preempt
, but it is the kernel for openSUSE Leap 15.3.
15.4 would use 5.14.x, but I think it is possible to get more recent kernel for 15.3 as well: https://doc.opensuse.org/documentation/leap/reference/html/book-reference/cha-tuning-multikernel.html ?
Based on the ROM status code, I second @plbossart that this looks like CSE/CSME related failure.