Skip to content

[BUG] NO SOUND for GeminiLake with ES8336 #3336

Closed

Description

@MisteryX

NO SOUND, but i can listen the flutter on sound card initialization

Environment
* Kernel: 5.16.0-rc5/5.15.7 (with ASoC-Intel-machine-driver-updates and 3107 patches included)
* SOF: c40c7bf (sof-bin tag v1.9.3)
* Platform: x86-amd64

$ lspci -nn | grep audio
00:0e.0 Multimedia audio controller [0401]: Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06)
$ sudo dmesg | grep audio
[    5.528121] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
[    5.534437] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if 0x040100
[    5.549016] sof-audio-pci-intel-apl 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    5.589478] sof-audio-pci-intel-apl 0000:00:0e.0: use msi interrupt mode
[    5.653265] sof-audio-pci-intel-apl 0000:00:0e.0: hda codecs found, mask 4
[    5.656918] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 1:9:3-a9780
[    5.656925] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:20:0 Kernel ABI 3:18:0
[    5.656928] sof-audio-pci-intel-apl 0000:00:0e.0: warn: FW ABI is more recent than kernel
[    5.656937] sof-audio-pci-intel-apl 0000:00:0e.0: unknown sof_ext_man header type 3 size 0x30
[    5.696304] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 1:9:3-a9780
[    5.696312] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:20:0 Kernel ABI 3:18:0
[    5.696316] sof-audio-pci-intel-apl 0000:00:0e.0: warn: FW ABI is more recent than kernel
[    5.721934] sof-audio-pci-intel-apl 0000:00:0e.0: Topology: ABI 3:20:0 Kernel ABI 3:18:0
[    5.721939] sof-audio-pci-intel-apl 0000:00:0e.0: warn: topology ABI is more recent than kernel
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sofessx8336 [sof-essx8336], device 0: ES8336 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 5: HDMI 1 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 6: HDMI 2 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: sofessx8336 [sof-essx8336], device 7: HDMI 3 (*) []
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Activity

  1. changed the title [-][BUG][/-] [+][BUG] NO SOUND for Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06)[/+] on Dec 14, 2021
  2. plbossart commented on Dec 14, 2021

    @plbossart
    Member

    That's a GLK device, which should be handled already.
    soc/sof/intel/pci-apl.c: { PCI_DEVICE(0x8086, 0x3198), /* GeminiLake */

    can you try using

    speaker-test -Dhw:0:0 -c2 -r48000 (you can use -t sine as well)
    and try to set the volume with alsamixer to set "DAC" to 100

    also try with headphones to see if you see any difference.

  3. changed the title [-][BUG] NO SOUND for Intel Corporation Celeron/Pentium Silver Processor High Definition Audio [8086:3198] (rev 06)[/-] [+][BUG] NO SOUND for GeminiLake with ES8336[/+] on Dec 14, 2021
  4. added
    codecCodec HW or driver restriction
    GLKApplies to Gemini Lake
    on Dec 14, 2021
  5. MisteryX commented on Dec 14, 2021

    @MisteryX
    Author

    DAC have been already at 100%, still no sound

    $ speaker-test -Dhw:0:0 -c2 -r48000
    
    speaker-test 1.2.5.1
    
    Playback device is hw:0:0
    Stream parameters are 48000Hz, S16_LE, 2 channels
    Using 16 octaves of pink noise
    ALSA lib confmisc.c:165:(snd_config_get_card) Cannot get card index for 0:0
    Playback open error: -19,No such device
    
  6. MisteryX commented on Dec 14, 2021

    @MisteryX
    Author

    Headphones have already tested - no sound, only flutter.

  7. plbossart commented on Dec 14, 2021

    @plbossart
    Member

    speaker-test -Dhw:0,0 -c2 -r48000 (comma, not . as show above).

    This may be a case of the wrong I2S being used. we assumed it was SSP2 but it could very well be wrong. You could try with the recommendations made for CometLake devices using the same codec device
    #3248

    Trial and error it is until we figure out a way to detect what the hardware is (#3337)

  8. MisteryX commented on Dec 14, 2021

    @MisteryX
    Author

    Tested
    options snd-soc-sof-es8336 quirk=0x30 (with SSP0 topology)
    options snd-soc-sof-es8336 quirk=0x31 (with SSP1 topology)
    options snd-soc-sof-es8336 quirk=0x32 (with SSP2 topology)
    And only SSP2 topology forces sound device creation, but unfortunately no sound output still

  9. plbossart commented on Dec 14, 2021

    @plbossart
    Member

    can you install acpica-tools and attach the NHLT information (dump.bin.gz)

    sudo acpidump > dump.bin
    gzip dump.bin

  10. MisteryX commented on Dec 15, 2021

    @MisteryX
    Author
  11. plbossart commented on Dec 15, 2021

    @plbossart
    Member

    this is good information @MisteryX, it looks like this device uses SSP0 instead of SSP2 for other GLK devices. There is no PDM DMIC listed.

    nhlt.dsl.txt

    so what you'd need to do is use this

    options snd-soc-sof-es8336 quirk=0x00
    or
    options snd-soc-sof-es8336 quirk=0x10

    explanations: SSP0, no DMIC, GLK or TGL quirks for the speaker GPIO.

    Please try this topology file:
    sof-glk-es8336-ssp0.tplg.gz copied as /lib/firmware/inte/sof-tplg/sof-glk-es8336.tplg

    Also add this file
    sof-dyndbg.conf.txt as /etc/modprobe.d/sof-dyndbg.conf

    And attach full results of 'dmesg' and 'alsa-info'.

    This is painful but it shouldn't be too hard to figure out.

  12. plbossart commented on Dec 16, 2021

    @plbossart
    Member

    @MisteryX so the logs show you have a card created, no dmic on capture.

    There's something odd with this

    [8.824265] sof-essx8336 sof-essx8336: quirk SSP2

    that tells me the quirk override didn't work?

    'modinfo snd_soc_sof_es8336' should show you the value, if it's -1 then the quirk override didn't work...

  13. 187 remaining items

  14. ejmarkow commented on Nov 21, 2022

    @ejmarkow

    It was previously mentioned that either 1) Hardware failure, or 2) Bus is not correctly loaded.

    Now that I have shown that ESSX8336 is actually showing up in the directory for i2c-5, which represents bus #5 [i2c-5 i2c Synopsys DesignWare I2C adapter I2C adapter], isn't it loading correctly?

    However, there are no addresses for 0x10 & 0x11 appearing, only "blank".

  15. ejmarkow commented on Nov 23, 2022

    @ejmarkow

    Since there is no way that I'm aware of in Linux to determine with certainty whether my PC experienced hardware failure or not (with sound), perhaps the only solution is to backup all of my partitions, remove Debian Linux, and install MS Windows to see if the sound/audio will work properly using the Everest-based ES8316 driver/codec. Then I'll know for sure whether the issue is with the Linux driver, or the hardware itself.

    Or, I can just use a USB or Bluetooth solution for my audio on Linux and see how that works.

  16. andreaconsole commented on Nov 23, 2022

    @andreaconsole

    I was about to suggest the first option, but I don't know if it is something you can say here :D
    For the second option, I am so far an happy user of a cheap usb soud card (still hoping to hear the sound coming from my amd-based laptop's speakers one day, though).

  17. ejmarkow commented on Nov 23, 2022

    @ejmarkow

    @andreaconsole, when I open PAVC (Pulse Audio Volume Control) and play something on Youtube for example, the graphical audio indicators are moving left/right. Does this indicate my audio chip (the hardware) is in good condition? I don't know.

    But testing audio on MS Windows does seem like the only sure way to determine precisely where the issue is, not that I want to use that OS. I would only be doing this for test purposes, and then move back to Linux using a USB (or Bluetooth) audio solution.

    What really bothers me is that audio was working fine, until it suddenly stopped. However, there always was this strange popping / clicking sound prior to using audio, as if there was a conflict somewhere. I'm also questioning, on this relatively new PC, why would audio suddenly fail (the hardware, if it's that) while everything else is working fine?

  18. andreaconsole commented on Nov 23, 2022

    @andreaconsole

    I don't think there is anything strange in some component failing without prejudice to the rest of the system. In that case it is probably the consequence of poor quality check. Try Windows and let us know! The story of your tests is very interesting.

  19. ejmarkow commented on Nov 23, 2022

    @ejmarkow

    Here is another item I notice: When audio was working on my physical speakers (which are attached via jack & line), PAVC indicated that it was via "Headphones" while it indicated "Speakers (unplugged)". Now, without audio working, PAVC indicates "Speakers" as working, but "Headphones (unplugged)".

  20. ejmarkow commented on Nov 24, 2022

    @ejmarkow

    @plbossart @yangxiaohua2009 @jwrdegoede

    Fantastic news: Sound works again!

    How it was fixed:

    There is a 'reset hole' on my mini-pc which I gave a try as a long shot solution before I reinstalled any OS or took other drastic measures. I thought, maybe resetting UEFI (bringing it back to factory default settings) due to possible corruption would help. So, I disconnected the power source, inserted and held down a safety pin for over 10 seconds, took it out, reconnected the power and this fixed it. Unbelievable. If anyone ever runs into the same issue (sudden loss of audio/sound and getting a slew of driver errors in dmesg), try this solution before doing anything else.

    Now I'm wondering, how did UEFI on my PC ever become corrupt? I guess it happens.

    Thank you all so much for your time and assistance. I'm quite happy right now!

  21. ejmarkow commented on May 29, 2023

    @ejmarkow

    Hi,

    The ES8336 audio driver and sound has been working nicely up until the following Linux kernel commit :

    6.4.0-rc2-git-4927cb9

    This followed the sound commit of:
    Merge tag 'sound-6.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

    However, after compiling and upgrading to Linux Kernel 6.4.0-rc3-git-49572d5 (link), the ES8336 audio driver is no longer detected and sound does not work. This broke after the following sound commit:

    Merge tag 'sound-6.4-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound

    I realize, from what I have read, not much work is being done any longer to maintain sound driver ES8336. Despite this, would it be possible to at least salvage what was working in the last kernel commit I have shown? Something in between these two sound commits (only a matter of days) broke this sound driver.

    Thanks, I appreciate any help.

  22. plbossart commented on May 30, 2023

    @plbossart
    Member

    @ejmarkow it's almost impossible to diagnose what a merge commit did.

    It's likely a codec driver change. Try reverting one of those commits:

    9abcd24002bf ASoC: Switch i2c drivers back to use .probe()
    2cc3fdcddc86 ASoC: es8316: Don't use ranges based register lookup for a single register
    39db65a0a17b ASoC: es8316: Handle optional IRQ assignment
    
  23. ejmarkow commented on May 30, 2023

    @ejmarkow

    I'll do that, revert each listed commit individually. For commit 9abcd24002bf, I'll revert the es8316 portion of it, as that is the only relevant part of a large group of patches. Any suggestion as to which commit to revert first (the most likely possible fix)? Thank you!

    Please note, the dates of those commits, respectively, are:
    2023-05-08
    2023-04-20
    2023-03-28

    I'll post the result(s) when done.

  24. ejmarkow commented on May 30, 2023

    @ejmarkow

    I should mention, using the kernel [6.4.0-rc2-git-4927cb9] with es8336 working I get the following errors in dmesg, but audio is still working in this kernel despite those errors:

    sof-audio-pci-intel-apl 0000:00:0e.0: ipc tx error for 0x60010000 (msg/reply size: 108/20): -5
    sof-audio-pci-intel-apl 0000:00:0e.0: HW params ipc failed for stream 1
    sof-audio-pci-intel-apl 0000:00:0e.0: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:0e.0: -5
     HDMI 2: ASoC: error at __soc_pcm_hw_params on HDMI 2: -5
     HDMI 2: ASoC: error at dpcm_fe_dai_hw_params on HDMI 2: -5
    
    ... and it repeats multiple times
    

    Full dmesg output is attached in dmesg.txt.

    dmesg.txt

  25. yangxiaohua2009 commented on May 31, 2023

    @yangxiaohua2009

    @ejmarkow I tested the lastest commit and everything works fine on my side.
    6_4.log

    $ git log --oneline
    8b817fded42d (HEAD, mirror/master) Merge tag 'trace-v6.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
    7a6c8e512fa0 Merge tag 'v6.4-p3' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
    ac2263b588df Revert "module: error out early on concurrent load of the same module file"
    a2d910f02231 tracing: Have function_graph selftest call cond_resched()
    ac9d2cb1d5f8 tracing: Only make selftest conditionals affect the global_trace
    a3ae76d7ff78 tracing: Make tracing_selftest_running/delete nops when not used
    9da705d432a0 tracing: Have tracer selftests call cond_resched() before running
    e8352cf5778c tracing: Move setting of tracing_selftest_running out of register_tracer()
    e338142b39cf Merge tag 'phy-fixes-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy
    dca389eb958f Merge tag 'dmaengine-fix-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine
    7877cb91f108 (tag: v6.4-rc4) Linux 6.4-rc4
    

    The IPC error suggests that this is an Intel sof firmware error and not a codec driver/kernel source code error.

  26. ejmarkow commented on Jun 11, 2023

    @ejmarkow

    @yangxiaohua2009 Thank you for your information. What I did was, instead of reversing any commits, I patiently waited until near the end of 6.4.0-rc5 kernel since you stated rc4 was working, and compiled 6.4.0-rc5-git-022ce88, which is currently running.

    Sound and the driver work again for this kernel, but does not for the previously mentioned rc3 kernel.

    Sound works, the driver is detected, however, I'm still getting those errors in dmesg as I had shown for the rc2 kernel.

    Sample:

    [   11.044478] sof-audio-pci-intel-apl 0000:00:0e.0: ipc tx error for 0x60010000 (msg/reply size: 108/20): -5
    [   11.044493] sof-audio-pci-intel-apl 0000:00:0e.0: HW params ipc failed for stream 1
    [   11.044496] sof-audio-pci-intel-apl 0000:00:0e.0: ASoC: error at snd_soc_pcm_component_hw_params on 0000:00:0e.0: -5
    [   11.044519]  HDMI 2: ASoC: error at __soc_pcm_hw_params on HDMI 2: -5
    [   11.044532]  HDMI 2: ASoC: error at dpcm_fe_dai_hw_params on HDMI 2: -5
    

    Attached is the full dmesg output for this rc5 kernel. Thank you again.

    dmesg.txt

  27. yangxiaohua2009 commented on Jun 13, 2023

    @yangxiaohua2009

    @ejmarkow Again the dmesg ipc tx error means there is something wrong with the intel firmware with HDA/HDMI controler and thus have no relationship with the codec. I recommand that you keep things as they are since the sound is now working. Or you may try upgrading intel sof firmware to remove the errors. Thanks.

  28. ejmarkow commented on Jun 13, 2023

    @ejmarkow

    @yangxiaohua2009, regarding Intel SOF Firmware, my system has the latest package & version installed, v2.2.5. What more can I upgrade to?

    According to this link, 2.2.5 is the latest, from May 12, 2023.

    # apt list --installed | grep -i firmware-sof
    firmware-sof-signed/unstable,now 2.2.5-1 all [installed]
    
    # apt info firmware-sof-signed
    Package: firmware-sof-signed
    Version: 2.2.5-1
    Priority: optional
    Section: non-free-firmware/kernel
    Source: firmware-sof
    Maintainer: Mark Pearson <mpearson-lenovo@squebb.ca>
    Installed-Size: 18.3 MB
    Homepage: https://github.com/thesofproject/sof-bin
    Download-Size: 613 kB
    APT-Manual-Installed: yes
    APT-Sources: http://deb.debian.org/debian unstable/non-free-firmware amd64 Packages
    Description: Intel SOF firmware - signed
     Provides the Intel SOF audio firmware and topology needed for audio
     functionality on some Intel system.
     .
     This package contains the pre-built and signed binaries.
    
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

    Communityend-user or distro-reported issuesGLKApplies to Gemini LakecodecCodec HW or driver restrictioncodec ES8336

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions