Skip to content

[BUG] Failed to use SOF on HP zbook 15 G6 #1985

Closed

Description

@elorriaux

Describe the bug
dmesg reports:
[ 4.122285] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 4.122812] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[ 4.123269] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
[ 4.123798] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
[ 4.124252] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 4.124851] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
[ 4.125485] sof-audio-pci 0000:00:1f.3: error: init i915 and HDMI codec failed
[ 4.126042] sof-audio-pci 0000:00:1f.3: error: failed to probe DSP -19
[ 4.126496] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -19

Impact
Cannot use built-in mic on this laptop

Environment

  1. sof (firmware/topology) and linux (kernel driver).
    • Kernel: 5.5.11 (gentoo-sources patchset)
    • SOF: 1.4.2
  2. Name of the topology file
    • Topology: sof-cnl-v1.4.2.ri
  3. Name of the platform(s) on which the bug is observed.
    • Platform: x86_64

Screenshots or console output
lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3ec4] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) [8086:1901] (rev 07)
00:04.0 Signal processing controller [1180]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem [8086:1903] (rev 07)
00:12.0 Signal processing controller [1180]: Intel Corporation Cannon Lake PCH Thermal Controller [8086:a379] (rev 10)
00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10)
00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10)
00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller #0 [8086:a368] (rev 10)
00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH Serial IO I2C Controller thesofproject/sof#1 [8086:a369] (rev 10)
00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10)
00:17.0 SATA controller [0106]: Intel Corporation Cannon Lake Mobile PCH SATA AHCI Controller [8086:a353] (rev 10)
00:1b.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port thesofproject/sof#17 [8086:a340] (rev f0)
00:1c.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port thesofproject/sof#3 [8086:a33a] (rev f0)
00:1c.4 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port thesofproject/sof#5 [8086:a33c] (rev f0)
00:1d.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port thesofproject/sof#9 [8086:a330] (rev f0)
00:1d.5 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port thesofproject/sof#14 [8086:a335] (rev f0)
00:1f.0 ISA bridge [0601]: Intel Corporation Device [8086:a30e] (rev 10)
00:1f.3 Multimedia audio controller [0401]: Intel Corporation Cannon Lake PCH cAVS [8086:a348] (rev 10)
00:1f.4 SMBus [0c05]: Intel Corporation Cannon Lake PCH SMBus Controller [8086:a323] (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller [8086:a324] (rev 10)
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (7) I219-LM [8086:15bb] (rev 10)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117GLM [Quadro T1000 Mobile] [10de:1fb9] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10fa] (rev a1)
02:00.0 Non-Volatile memory controller [0108]: ADATA Technology Co., Ltd. XPG SX8200 Pro PCIe Gen3x4 M.2 2280 Solid State Drive [1cc1:8201] (rev 03)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader [10ec:525a] (rev 01)
05:00.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06)
06:00.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06)
06:01.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06)
06:02.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06)
06:04.0 PCI bridge [0604]: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] [8086:15ea] (rev 06)
07:00.0 System peripheral [0880]: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] [8086:15eb] (rev 06)
3b:00.0 USB controller [0c03]: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] [8086:15ec] (rev 06)
70:00.0 Non-Volatile memory controller [0108]: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD [15b7:5002]
71:00.0 Network controller [0280]: Intel Corporation Wi-Fi 6 AX200 [8086:2723] (rev 1a)

Activity

  1. plbossart commented on Mar 25, 2020

    @plbossart
    Member

    @elorriaux that looks like a known issue where an external NVIDIA GPU is used, the log is similar to #1658

    @kv2019i I think you fixed this with #1731, but can it be back-ported to 5.5-stable?

  2. elorriaux commented on Mar 25, 2020

    @elorriaux
    Author

    @plbossart thanks Pierre for the quick answer. Actually you're wright my IT disabled the intel graphics card, I did not pay attention to that. If I reactivate it I can go through that error but my X server does not work anymore, and my other distro does not boot anymore. So I will probably have to

    I was also wrong regarding the firmware, the next error is that sof-cfl.ri is missing.

  3. kv2019i commented on Mar 25, 2020

    @kv2019i
    Collaborator

    @plbossart Ack, this is fixed by upstream commit "ASoC: SOF: Intel: hda: allow operation without i915 gfx" . This is currently not queued even for 5.6, so only in 5.7 queue. Mark wasn't happy recently with the volume of changes to 5.5, so not sure if this is accepted. There is going to be a fair amount of patches, so maybe this is still worth it.

    UPDATE: @plbossart I'll try the patches on top of 5.5.y and if seems good, I'll send a mail to alsa-devel about this. Not 100% what's the Mark preferred process to pick up older patches for stable, but I'll follow what Jaroslav did (the most recent example I could find).

  4. kv2019i commented on Mar 25, 2020

    @kv2019i
    Collaborator

    @plbossart @elorriaux Hmm, backport to 5.5.y is not really straightforward. A minimum set requires many more patches than the one mentioned. I backported three patches, but then realized that the upstream fix depends on the refactored machine selection code (in 5.5.y, bus probe is done after machine driver selection, so the upstream logic to ignore lack of i915 won't work). Backport to 5.5.y within limits of stable kernel rules (all patches need to be in upstream, <100 lines), does not seem feasible.

  5. plbossart commented on Mar 25, 2020

    @plbossart
    Member

    @kv2019i I think we need to start thinking about a 5.5 SOF branch, it'd still be useful for a number of people who have non-functional devices. You can argue that 5.6 is just around the corner though but some distros will stick with 5.5. Some will even stick with 5.4 LTS.

  6. elorriaux commented on Apr 2, 2020

    @elorriaux
    Author

    Hi, I tried to configure bumblebee to keep intel built-in grapĥics card enabled and it solves my initial error, I can go further but it fails to load the firmware (I symlinked sof-cfl.ri tp sof-cfl.ri):

    dmesg | grep audio
    [ 4.130562] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
    [ 4.131228] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
    [ 4.131839] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
    [ 4.132512] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
    [ 4.134776] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
    [ 4.135454] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
    [ 4.136682] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops 0xffffffffa069a3c0)
    [ 4.147497] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
    [ 4.148610] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
    [ 4.151704] sof-audio-pci 0000:00:1f.3: Direct firmware load for intel/sof/sof-cfl.ri failed with error -2
    [ 4.152441] sof-audio-pci 0000:00:1f.3: error: request firmware intel/sof/sof-cfl.ri failed err: -2
    [ 4.153791] sof-audio-pci 0000:00:1f.3: error: failed to load DSP firmware -2
    [ 4.153953] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -2

    ls /lib/firmware/intel/sof/sof-cfl.ri -alrt
    lrwxrwxrwx 1 root root 10 Apr 2 20:33 /lib/firmware/intel/sof/sof-cfl.ri -> sof-cnl.ri

    (firmware version 1.4.2)

  7. plbossart commented on Apr 2, 2020

    @plbossart
    Member

    @elorriaux you sure about the symlink? If the file was in the right location it'd be a different error...

  8. elorriaux commented on Apr 2, 2020

    @elorriaux
    Author

    @plbossart That's the first thing I checked. You are confirming that I should continue to check in that direction.

    I guess that read permission on cof-cnl.ri should be sufficient?

    I simply took sof-cnl-v1.4.2.ri from https://github.com/thesofproject/sof/releases and copied it to /lib/firmware/intel/sof/sof-cnl.ri and then created a sof-cfl.ri symlink. I'll try to copy it directly with the right name without symlink.

  9. plbossart commented on Apr 2, 2020

    @plbossart
    Member

    @elorriaux try to use the go.sh script, it does all the symlinks for you

  10. elorriaux commented on Apr 2, 2020

    @elorriaux
    Author

    Reinstalled all the firmwares with the go.sh script, not exactly the same error msg:

    dmesg | grep audio
    [ 4.114546] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
    [ 4.115214] sof-audio-pci 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
    [ 4.115821] sof-audio-pci 0000:00:1f.3: enabling device (0000 -> 0002)
    [ 4.116463] sof-audio-pci 0000:00:1f.3: warning: No matching ASoC machine driver found
    [ 4.117060] sof-audio-pci 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
    [ 4.117753] sof-audio-pci 0000:00:1f.3: use msi interrupt mode
    [ 4.118752] sof-audio-pci 0000:00:1f.3: bound 0000:00:02.0 (ops 0xffffffff90a9a3c0)
    [ 4.128847] sof-audio-pci 0000:00:1f.3: hda codecs found, mask 5
    [ 4.129424] sof-audio-pci 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
    [ 4.131533] sof-audio-pci 0000:00:1f.3: error: codec #0 probe error, ret: -2
    [ 4.132544] sof-audio-pci 0000:00:1f.3: Direct firmware load for intel/sof/sof-cfl.ri failed with error -2
    [ 4.133668] sof-audio-pci 0000:00:1f.3: error: request firmware intel/sof/sof-cfl.ri failed err: -2
    [ 4.134939] sof-audio-pci 0000:00:1f.3: error: failed to load DSP firmware -2
    [ 4.135094] sof-audio-pci 0000:00:1f.3: error: sof_probe_work failed err: -2

  11. lgirdwood commented on Apr 3, 2020

    @lgirdwood
    Member

    @elorriaux what was the script output ? You will need to run as root/sudo as it will be installing files under /lib/firmware (or wherever your distro places system firmware)

  12. elorriaux commented on Apr 3, 2020

    @elorriaux
    Author

    everything was done with root account.

    ./go.sh
    Installing Intel firmware and topology v1.4.2 to lib/firmware/intel
    Done installing Intel firmware and topology v1.4.2

    ls -alrt /lib/firmware/intel/sof
    total 12
    drwxr-xr-x 4 root root 4096 Apr 3 15:43 v1.4.2
    lrwxrwxrwx 1 root root 24 Apr 3 15:43 sof-bdw.ri -> v1.4.2/sof-bdw-v1.4.2.ri
    lrwxrwxrwx 1 root root 24 Apr 3 15:43 sof-cht.ri -> v1.4.2/sof-cht-v1.4.2.ri
    lrwxrwxrwx 1 root root 24 Apr 3 15:43 sof-byt.ri -> v1.4.2/sof-byt-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-apl.ri -> v1.4.2/intel-signed/sof-apl-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-glk.ri -> v1.4.2/intel-signed/sof-apl-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-cnl.ri -> v1.4.2/intel-signed/sof-cnl-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-cfl.ri -> v1.4.2/intel-signed/sof-cnl-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-cml.ri -> v1.4.2/intel-signed/sof-cnl-v1.4.2.ri
    lrwxrwxrwx 1 root root 37 Apr 3 15:43 sof-icl.ri -> v1.4.2/intel-signed/sof-icl-v1.4.2.ri

    If you pay attention on dmesg logs, the usage of the script to install firmware causes one additional line compared to the firmware install I did manually:

    [ 4.131533] sof-audio-pci 0000:00:1f.3: error: codec #0 probe error, ret: -2

  13. elorriaux commented on Apr 3, 2020

    @elorriaux
    Author

    Forgot to add a listing to the directory where the link is pointing at:

    ls -alrt /lib/firmware/intel/sof/v1.4.2/intel-signed/
    total 844
    -rw-r--r-- 1 root root 286720 Apr 3 15:43 sof-cnl-v1.4.2.ri
    -rw-r--r-- 1 root root 282624 Apr 3 15:43 sof-apl-v1.4.2.ri
    drwxr-xr-x 2 root root 4096 Apr 3 15:43 .
    -rw-r--r-- 1 root root 286720 Apr 3 15:43 sof-icl-v1.4.2.ri
    drwxr-xr-x 4 root root 4096 Apr 3 15:43 ..

  14. paulstelian97 commented on Apr 3, 2020

    @paulstelian97

    4 seconds, which means early boot... Do you have an initramfs? It's possible you may need to add the /lib/firmware/intel/sof and /lib/firmware/intel/sof-tplg folders inside the initramfs.

    root ignores read/write permissions and so should the kernel module itself.

  15. 88 remaining items

  16. elorriaux commented on May 4, 2020

    @elorriaux
    Author

    @dzikages555 : stop compiling and searching, just wait for signed binaries of sof 1.5 ;) You cannot go really further at the moment.

  17. kv2019i commented on May 4, 2020

    @kv2019i
    Collaborator

    @elorriaux wrote:

    @dzikages555 : stop compiling and searching, just wait for signed binaries of sof 1.5 ;) You cannot go really further at the moment.

    Ack on that. I'm afraid @dzikages555 you hit one more issue. We have a fix coming in FW, but you'll have to wait until release of the signed firmware. See #1985 (comment) for the history.

  18. kv2019i commented on May 13, 2020

    @kv2019i
    Collaborator

    @elorriaux @dzikages555 and others, signed v1.5 firmware is now available for testing:
    https://github.com/thesofproject/sof-bin/tree/stable-v1.5

  19. elorriaux commented on May 13, 2020

    @elorriaux
    Author

    @kv2019i test in progress, no freeze so far. Should I keep these lines?

    #options snd_sof_intel_hda_common codec_mask=0x1
    #options snd_sof_intel_hda_common use_common_hdmi=Y

    I currently have discrete GPU disabled, I also have to test if everything is OK once I will re-enable it.

  20. kv2019i commented on May 13, 2020

    @kv2019i
    Collaborator

    @elorriaux wrote:

    @kv2019i test in progress, no freeze so far. Should I keep these lines?

    #options snd_sof_intel_hda_common codec_mask=0x1
    #options snd_sof_intel_hda_common use_common_hdmi=Y

    Thanks for the quick test and good to hear the results so far.

    As for the parameters, if HDMI is working, you can keep them commented out.

    I currently have discrete GPU disabled, I also have to test if everything is OK once
    I will re-enable it.

    Ack, it should work much the same way with discrete GPU enabled. HDMI audio will not go via SOF anymore, but that should be it.

  21. elorriaux commented on May 13, 2020

    @elorriaux
    Author

    @kv2019i seems to work with discrete GPU too

  22. kv2019i commented on May 15, 2020

    @kv2019i
    Collaborator

    Thank you @elorriaux for testing once more. I'll go ahead and close this bug now.

  23. elorriaux commented on May 15, 2020

    @elorriaux
    Author

    @kv2019i Actually not fully tested, I don't know what I did exactly when I tried with discrete GPU, but nvidia drivers do not work with 5.7 kernels yet, so difficult to conclude. The patch I've tried do not allow me to get my X server working with nvidia and 5.7 kernel.

    I can only confirm that it works with intel GPU

  24. dzikages555 commented on May 16, 2020

    @dzikages555

    @kv2019i I can confirm it works. Thank you guys!

    My setup is:

    • linux-5.7-rc3
    • patched nvidia-440.82
    • sof firmware 1.5 (had to copy go.sh from 1.4.2 branch and change version)
    • updated hdmi.conf
    • using discrete GPU (HP does not allow me to use integrated GPU).
    • HP OMEN 17-cb0xxx

    Digital microphone is working. Headphones and speakers are working. No freezes with v1.5 firmware.
    Sometimes pulse audio (?) gets crazy when I unplug my headphones and tries to play sound via nvidia/HDMI instead of my laptop speakers, but that's a minor and unrelated issue.

  25. elorriaux commented on Jul 30, 2020

    @elorriaux
    Author

    Small feedback, everything seems to work without freezes.

    The only issue concerns the digital mic level, it works but it's almost impossible to hear anything unless I push the speaker level to the maximum, and the sound level is still very very low. I remember in the early tests with SOF 1.4 that I was able to record and listen correctly to my voice when testing the mic. Does anybody has an idea where this issue can come from ?

    I'm still using SOF 1.5, haven't tried 1.5.1 yet, I don't know if it can change something.

  26. juimonen commented on Jul 30, 2020

    @juimonen

    @elorriaux we had "amplifying" eq on the dmic path, then it was removed (for some reason), and then we put it back....
    I don't recall now was this just some thing we messed up or there was some higher purpose. Automatic level testing with physical dmic devices is little bit hairy and we try to improve on that.

    So you might have this time-wise "middle ground" topology without the amplification, or then there is just some volume component in low volume in the dmic path.

    You should be able to load newer/older topologies without signing, so if you have time, you could try out the latest corresponding topology for your platform from sof repositories. So you could just copy over the old topology and see what happens.

  27. elorriaux commented on Jul 30, 2020

    @elorriaux
    Author

    @juimonen thanks for the answer, I've just updated to 1.5.1 and it looks like to work fine !

  28. elorriaux commented on Jun 10, 2021

    @elorriaux
    Author

    Hello,

    I don't know if I should continue this thread or open another one. There is still a small glitch on my system, from time to time, without being able to identify the root cause, my speaker stops working. I've never been able to find a way to get back the sound when it happens, I just know that the mic is still working as people can still hear me during meetings.

    The only way to get back the speaker working correctly is to shut down the machine (reboot does not solve anything).

    For a long time I was running kernel 5.7.7 and SOF 1.5.1. I've updated my kernel to 5.10.27 and SOF 1.6.1 and the problem persists.

    This is quite difficult to investigate since I don't have anything in dmesg and that it occurs randomly, the laptop can work for days without any trouble...

    Are there similar experiences / issues? I could not find any info in issues.

  29. plbossart commented on Jun 10, 2021

    @plbossart
    Member

    Hello,

    I don't know if I should continue this thread or open another one. There is still a small glitch on my system, from time to time, without being able to identify the root cause, my speaker stops working. I've never been able to find a way to get back the sound when it happens, I just know that the mic is still working as people can still hear me during meetings.

    The only way to get back the speaker working correctly is to shut down the machine (reboot does not solve anything).

    For a long time I was running kernel 5.7.7 and SOF 1.5.1. I've updated my kernel to 5.10.27 and SOF 1.6.1 and the problem persists.

    This is quite difficult to investigate since I don't have anything in dmesg and that it occurs randomly, the laptop can work for days without any trouble...

    Are there similar experiences / issues? I could not find any info in issues.

    this should be added as a new issue @elorriaux

    The fact that the speakers don't work but the mic does makes me think there is a codec configuration issue or something. When SOF fails it typically fails big. Also we reset the DSP and re-download the firmware on each suspend-resume or reboot, so requiring a power cycle looks like a problem on the amplifier side.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Dual GFX CardsBoth Intel integrated GPU and external GFX card are present.HDAApplies to HD-Audio bus for codec connectionWHLApplies to WhiskeyLake platformbugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions