smallcms / asus_zenbook_ux3405ma

SSDT Patch to fix missing speakers sound in Linux on Asus Zenbook 14 UX3405MA (2024) and latest BIOS
6 stars 1 forks source link

Still no sound: pxa2xx-spi pxa2xx-spi.3: problem registering SPI controller #4

Closed facugaich closed 1 month ago

facugaich commented 1 month ago

Hi, thanks for all your work. Unfortunately this doesn't seem to be working for me, here's the relevant part in dmesg. I still get no sound from the speakers.

[    0.096375] ACPI: Added _OSI(Module Device)
[    0.096375] ACPI: Added _OSI(Processor Device)
[    0.096375] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.096375] ACPI: Added _OSI(Processor Aggregator Device)
[    0.188245] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.SPI1.SPK1], AE_ALREADY_EXISTS (20230628/dswload2-326)
[    0.188259] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20230628/psobject-220)
[    0.188264] ACPI: Skipping parse of AML opcode: OpcodeName unavailable (0x5B82)
[    0.188268] ACPI BIOS Error (bug): Failure creating named object [\_SB.PC00.SPI1._DSD], AE_ALREADY_EXISTS (20230628/dswload2-326)
[    0.188273] ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20230628/psobject-220)
[    0.208356] ACPI: 23 ACPI AML tables successfully acquired and loaded

BIOS: 305 OS: Debian sid w/ linux 6.8.9-amd64 Secure boot disabled

Hopefully you can find a solution Best

smallcms commented 1 month ago

Hello, @facugaich ! Do you have installed firmware files for cirrus in /lib/firmware/cirrus/ ? https://git.progress-linux.org/packages/graograman-backports/firmware-nonfree/tree/cirrus

facugaich commented 1 month ago

Hello, @facugaich ! Do you have installed firmware files for cirrus in /lib/firmware/cirrus/ ? https://git.progress-linux.org/packages/graograman-backports/firmware-nonfree/tree/cirrus

I didn't, but I have added them and it's still not working. Also, I do not see any kernel logs related to loading or trying to load Cirrus firmware. I do see another kernel error that repeats quite a lot and might be related?

pxa2xx-spi pxa2xx-spi.3: problem registering SPI controller
smallcms commented 1 month ago

Looks, like kernel problem. Here some my logs WITHOUT fix from this repo:

dmesg | grep -E 'CSC3551|hda'

[   55.092729] Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[   55.321305] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[   55.321930] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[   55.349943] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[   55.435685] snd_hda_intel 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if info 0x040100
[   55.435711] snd_hda_intel 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[   55.669149] sof-audio-pci-intel-mtl 0000:00:1f.3: hda codecs found, mask 5
[   55.669154] sof-audio-pci-intel-mtl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[   55.699054] sof-audio-pci-intel-mtl 0000:00:1f.3:  Topology file:     intel/sof-ace-tplg/sof-hda-generic-2ch.tplg
[   55.882992] skl_hda_dsp_generic skl_hda_dsp_generic: ASoC: Parent card not yet available, widget card binding deferred
[   55.915240] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
[   55.918648] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[   55.918652] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[   56.052660] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[   56.053108] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[   56.053111] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
[   56.065985] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 1, CH: L, FW EN: 1, SPKID: -19
[   56.065991] snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   56.068398] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Falling back to default firmware.
[   56.070738] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[   56.070741] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[   56.190553] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[   56.191419] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[   56.191423] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
[   56.210251] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 0, CH: R, FW EN: 1, SPKID: -19
[   56.210258] snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   56.210910] snd_hda_codec_realtek ehdaudio0D0: autoconfig for ALC294: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[   56.210921] snd_hda_codec_realtek ehdaudio0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   56.210926] snd_hda_codec_realtek ehdaudio0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[   56.210929] snd_hda_codec_realtek ehdaudio0D0:    mono: mono_out=0x0
[   56.210932] snd_hda_codec_realtek ehdaudio0D0:    inputs:
[   56.667817] skl_hda_dsp_generic skl_hda_dsp_generic: hda_dsp_hdmi_build_controls: no PCM in topology for HDMI converter 3
[   56.688978] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input13
[   56.689102] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input14
[   56.689193] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input15
[   56.689276] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input16

lspci | grep audio

00:1f.3 Multimedia audio controller: Intel Corporation Meteor Lake-P HD Audio Controller (rev 20)

lsmod | grep -E 'hda|cs35l41'

snd_soc_skl_hda_dsp    24576  6
snd_soc_hdac_hdmi      49152  1 snd_soc_skl_hda_dsp
snd_soc_intel_hda_dsp_common    16384  1 snd_soc_skl_hda_dsp
snd_hda_codec_hdmi    102400  1
snd_hda_codec_realtek   208896  1
snd_hda_codec_generic   135168  1 snd_hda_codec_realtek
snd_sof_intel_hda_common   262144  1 snd_sof_pci_intel_mtl
soundwire_intel        86016  1 snd_sof_intel_hda_common
snd_sof_intel_hda_mlink    40960  2 soundwire_intel,snd_sof_intel_hda_common
snd_sof_intel_hda      28672  1 snd_sof_intel_hda_common
snd_sof_pci            24576  2 snd_sof_pci_intel_mtl,snd_sof_intel_hda_common
snd_sof_xtensa_dsp     16384  1 snd_sof_intel_hda_common
snd_sof               471040  4 snd_sof_pci,snd_sof_intel_hda_common,snd_sof_probes,snd_sof_intel_hda
snd_soc_hdac_hda       28672  1 snd_sof_intel_hda_common
snd_hda_ext_core       36864  5 snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda_mlink,snd_sof_intel_hda
snd_soc_acpi_intel_match   102400  2 snd_sof_pci_intel_mtl,snd_sof_intel_hda_common
snd_soc_acpi           16384  2 snd_soc_acpi_intel_match,snd_sof_intel_hda_common
snd_soc_core          516096  8 soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_probes,snd_soc_dmic,snd_soc_skl_hda_dsp
snd_hda_intel          65536  0
snd_intel_dspcfg       40960  3 snd_hda_intel,snd_sof,snd_sof_intel_hda_common
snd_intel_sdw_acpi     16384  2 snd_sof_intel_hda_common,snd_intel_dspcfg
snd_hda_codec         233472  8 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_intel_hda_dsp_common,snd_soc_hdac_hda,snd_sof_intel_hda,snd_soc_skl_hda_dsp
snd_hda_core          159744  11 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_soc_intel_hda_dsp_common,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_soc_hdac_hda,snd_sof_intel_hda
snd_hwdep              20480  1 snd_hda_codec
snd_hda_scodec_cs35l41_spi    12288  0
regmap_spi             12288  1 snd_hda_scodec_cs35l41_spi
snd_hda_scodec_cs35l41_i2c    12288  0
snd_hda_scodec_cs35l41    69632  2 snd_hda_scodec_cs35l41_i2c,snd_hda_scodec_cs35l41_spi
snd_pcm               208896  13 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hdmi,snd_compress,snd_soc_core,snd_sof_utils,snd_hda_core,snd_pcm_dmaengine
snd_hda_cs_dsp_ctls    20480  1 snd_hda_scodec_cs35l41
cs_dsp                 86016  2 snd_hda_scodec_cs35l41,snd_hda_cs_dsp_ctls
snd_soc_cs35l41_lib    45056  3 snd_hda_scodec_cs35l41_i2c,snd_hda_scodec_cs35l41,snd_hda_scodec_cs35l41_spi
snd                   163840  30 snd_ctl_led,snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_sof,snd_hda_scodec_cs35l41,snd_timer,snd_soc_hdac_hdmi,snd_compress,snd_soc_core,snd_pcm,snd_hda_cs_dsp_ctls

dmesg | grep -E 'spi'

[    2.871059] pxa2xx-spi pxa2xx-spi.3: no DMA channels available, using PIO
[   55.321305] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[   55.321930] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[   55.349943] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[   55.915240] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
[   55.918648] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[   55.918652] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[   56.052660] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[   56.053108] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[   56.053111] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
[   56.065985] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 1, CH: L, FW EN: 1, SPKID: -19
[   56.065991] snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   56.068398] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Falling back to default firmware.
[   56.070738] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[   56.070741] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[   56.190553] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[   56.191419] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[   56.191423] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
[   56.210251] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 0, CH: R, FW EN: 1, SPKID: -19
[   56.210258] snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])

So, looks, your kernel not load module for chip cs35l41.

facugaich commented 1 month ago

@smallcms Thanks again for your support, I finally found the missing kernel module, it was pinctrl_meteorlake!

By the way, using kernel 6.8.9 with that module plus all the firmware I have speakers working even without the fix from this repo! They also work in a Fedore Workstation 40 live cd. Thanks anyways, closing this issue.