linux icon indicating copy to clipboard operation
linux copied to clipboard

[BUG][CML][CHROME] Acer Spin 713-2W Chromebook audio card initilization inconcistency

Open MilkyDeveloper opened this issue 3 years ago • 14 comments

I'm the creator of Breath, a new alternative to MrChromebox's Coreboot that uses the default ChromeOS bootloader, Depthcharge. We have ~160 stars.

We use the same kernel as ChromeOS does, so often SOF/legacy audio driver issues can be solved by jumping around git commits and cherry-picking commits. However, in this case, I'm unsure on whether my user, 1Guardian, is experiencing issues with SOF or a bug with Depthcharge.

They've posted these alsa-info logs: Alsa-Output-Not-Working.txt Alsa-Output-Working.txt

The main discrepancy is this:

Working:

[    4.179797] dmic-codec dmic-codec: No GPIO consumer dmicen found
[    4.184724] snd_hda_codec_hdmi ehdaudio0D2: ASoC: sink widget AIF1TX overwritten
[    4.184727] snd_hda_codec_hdmi ehdaudio0D2: ASoC: source widget AIF1RX overwritten
[    4.200971] input: sof-rt5682 Headset Jack as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input15
[    4.201027] input: sof-rt5682 HDMI/DP,pcm=2 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input16
[    4.201151] input: sof-rt5682 HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input17
[    4.201207] input: sof-rt5682 HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/sof_rt5682/sound/card0/input18

Not working (audio card not initialized):

[    2.597083] Bluetooth: btintel_download_fw() hci0: Found device firmware: intel/ibt-19-0-4.sfi
[    2.610863] pci 0000:00:1f.3: attach allowed to drvr snd_soc_skl [internal device]
[    2.610884] snd_soc_skl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    2.638169] pci 0000:00:1f.3: attach allowed to drvr sof-audio-pci-intel-cnl [internal device]
[    2.638186] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[    2.638299] sof-audio-pci-intel-cnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[    2.638381] sof-audio-pci-intel-cnl 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops)
[    2.644764] sof-audio-pci-intel-cnl 0000:00:1f.3: use msi interrupt mode
[    2.653850] sof-audio-pci-intel-cnl 0000:00:1f.3: codec #2 probe error, ret: -2
[    2.653999] sof-audio-pci-intel-cnl 0000:00:1f.3: no hda codecs found!
[    2.657088] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:1:1-3964a
[    2.657089] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:21:0 Kernel ABI 3:18:0
[    2.657090] sof-audio-pci-intel-cnl 0000:00:1f.3: warn: FW ABI is more recent than kernel
[    2.657094] sof-audio-pci-intel-cnl 0000:00:1f.3: unknown sof_ext_man header type 3 size 0x30
[    2.825805] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware info: version 2:1:1-3964a
[    2.825807] sof-audio-pci-intel-cnl 0000:00:1f.3: Firmware: ABI 3:21:0 Kernel ABI 3:18:0
[    2.825808] sof-audio-pci-intel-cnl 0000:00:1f.3: warn: FW ABI is more recent than kernel

which results in:

!!Aplay/Arecord output
!!--------------------

APLAY

aplay: device_list:274: no soundcards found...

So, is this a SOF issue, or is there an issue with the rt5682 initilization preformed from Depthcharge?

Unrelated, but also, we're the only people to have legacy, non-HDA Intel SKL/KBL da7219_max98357a audio consistently working on ALSA, but some issue with PulseAudio or the Maxim driver causes this to happen.

Thanks for any help!

MilkyDeveloper avatar Apr 28 '22 01:04 MilkyDeveloper

@MilkyDeveloper I can't help you if you don't provide the difference between the 'working' and 'not working' configurations, I'd need at least a hint of what is different to comment on what leads to the card probe failure.

plbossart avatar Apr 28 '22 13:04 plbossart

@plbossart I can provide you with the outputs. What do you need? On hand, I only have the outputs of Alsa when it's correctly initialized vs when it fails to do so. If you need the output of anything else, let me know.

Alsa-Output-Working.txt Alsa-Output-Not-Working.txt

1Guardian avatar Apr 28 '22 19:04 1Guardian

@plbossart Speaking on behalf of 1Guardian, I believe the audio card randomly just doesn't initialize from Depthcharge and the chromebook needs a power cycle for audio to work again. However, I'm not sure if this is indeed a Coreboot issue or something with SOF.

MilkyDeveloper avatar Apr 28 '22 20:04 MilkyDeveloper

@1Guardian You'd have to enable dynamic debug by copying this file sof-dyndbg.conf.txt as /etc/modprobe.d/sof-dyndbg.txt and provide the dmesg log when you don't see an audio card created.

plbossart avatar Apr 28 '22 20:04 plbossart

Here you go @plbossart sof-dmesg-dynamic-debug-enabled.txt

1Guardian avatar Apr 28 '22 20:04 1Guardian

@1Guardian this didn't seem to take effect, can you please double-check the settings?

plbossart avatar Apr 28 '22 21:04 plbossart

@plbossart The file "sof-dyndbg.conf.txt" was copied to /etc/modprobe.d/soft-dynbg.txt, and then dmesg was run. Is there anything else like setting a different log level that needs to happen to enable dynamic debugging?

1Guardian avatar Apr 28 '22 21:04 1Guardian

sorry, typo. you need to copy it as /etc/modprobe.d/soft-dynbg.conf, the correct extension is required.

plbossart avatar Apr 28 '22 21:04 plbossart

@plbossart Changed it, and ran it again sof-dmesg-dynamic-debug-enabled.txt

1Guardian avatar Apr 28 '22 21:04 1Guardian

Can't help you if you make a conscious decision to disable the only thing I can rely on to help...

[    3.241035] dyndbg param is supported only in CONFIG_DYNAMIC_DEBUG builds

plbossart avatar Apr 28 '22 21:04 plbossart

I have no idea how to enable that... would that be something that has to be enabled at kernel compile, or can I enable it after the fact?

1Guardian avatar Apr 28 '22 21:04 1Guardian

Mb, this is my fault and has to do with recompiling the kernel. I’m compiling it now with dyndbg. Sorry @plbossart.

MilkyDeveloper avatar Apr 28 '22 21:04 MilkyDeveloper

@1Guardian just run bash updatekernel.sh on the PC you built Breath with and then post the dmesg. Sorry for any trouble!

MilkyDeveloper avatar May 02 '22 13:05 MilkyDeveloper

Looks like the same problem I had. The module dependency/ordering is broken. I fixed it with:

softdep snd_sof_pci_intel_icl pre: snd_hda_codec_hdmi

as a module option in one of the files in /etc/modprobe.d/

Yet I do not know the source of the problem (didn't analyzed it).

hede5562 avatar May 12 '22 10:05 hede5562