Skip to content

Instantly share code, notes, and snippets.

@lamperez
Last active May 8, 2024 16:55
Show Gist options
  • Star 50 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save lamperez/862763881c0e1c812392b5574727f6ff to your computer and use it in GitHub Desktop.
Save lamperez/862763881c0e1c812392b5574727f6ff to your computer and use it in GitHub Desktop.
CS35L41 amplifiers in an ASUS Zenbook on linux

Asus Zenbook UX3402 speakers on Linux

Important

THIS IS NOW OBSOLETE WITH KERNEL VERSIONS ≥ 6.7.0

A recent announcement in the kernel mail list by Cirrus developers will solve the problem described here. Therefore, the proposed solutions will be soon obsolete. See this comment (thanks, @flukejones, for the tip).

I got the speakers working on my Asus Zenbook 14 OLED UX3402, the one with Intel CPU and the two CS35L41 audio amplifiers connected over SPI (not the UM3402YA, with AMD and I²C). The amplifiers are supported by the snd_hda_scodec_cs35l41 module in recent kernel versions, but they require some model-specific configuration paramaters, that should be provided by the BIOS, via ACPI. Of course, they are missing. It seems that the Windows drivers have those parameters somehow hardcoded, instead of using ACPI (bad idea, but who am I to criticise). Since Asus has been nasty and refused/was not able to update the BIOS with the missing data, I have patched the ACPI tables myself.

Warning

As stated by Cirrus developers, if you try this there is a non-zero (low, I hope) possibility of blowing your speakers. Take into account that this procedure is not just configuring your box, it is hardware-level hacking with very scarce information about the hardware (thank you, ASUS, and thank you, Cirrus, for not publishing the CS35L41 datasheet and making it only available by request). Additionally, You should know how to work with DSDT or SSDT files (I have a brief guide here) and how to recover from a non booting system. You are on your own. You have been warned.

Note

I have used the patch for some months, and everything seems OK. As you can see, the most recent versions do not require electrical parameters to be specified, just providing the functions of several GPIO pins, that are already present in the original BIOS, and the behavior associated to them. I am almost sure that the patch is totally safe.

My BIOS is the most recent one (version 310). I have added two _DSD objects in the SSDT file (ssdt_csc3551.dsl, or its already assembled version, ssdt_csc3551.aml):

  • One inside the SPK1 device, providing the missing "cirrus,dev-index" and other properties, just like the I2C models. You can also provide these properties by patching the kernel module (the linux/sound/pci/hda/cs35l41_hda.c file).

  • Another one, after the SPK1 device, with the chip select GPIOs, "cs-gpios", required by the SPI bus (the somehow simpler I²C bus does not use chip select pins, but addresses). Without this _DSD object, only one amplifier can be addressed and activated. In this case, the driver refuses to load even for this single working amplifier.

Obsolete: DSDT patch

Instead of applying a SSDT file, you may patch the full DSDT dissassembled DSDT file (dsdt.dsl). This was my original solution (thanks to @thor2002ro for pointing to the simpler, nicer SSDT solution, see the comment, especially if you use grub). The patch is available for reference, just apply the SSDT file.

Obsolete: internal boost

I keep the old, original patch, that produced AMP short error messages when the volume was high enough, for reference. Please try first the simpler patch with external boost, that seems to work without flaws (thanks to @bdandy, see the comment).

Boot log

Output from journalctl -b -g CSC3551 --output short-monotonic after the old patch:

[5.358062] zenbook kernel: Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[5.643640] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[5.680302] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[5.996217] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
[5.996608] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[5.996611] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[6.069598] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[6.070173] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: 0: ID cd v29.78.0 XM@94 YM@e
[6.070185] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: 1: ID f20b v0.1.0 XM@17c YM@0
[6.070192] zenbook kernel: cs35l41-hda spi1-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
[6.083485] zenbook kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi1-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[6.083899] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Falling back to default firmware.
[6.083962] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[6.083966] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.wmfw: Fri 24 Jun 2022 14:55:56 GMT Daylight Time
[6.145224] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[6.145817] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: 0: ID cd v29.78.0 XM@94 YM@e
[6.145828] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: 1: ID f20b v0.1.0 XM@17c YM@0
[6.145834] zenbook kernel: cs35l41-hda spi1-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
[6.161484] zenbook kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi1-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])

The "Falling back to default firmware" disappears if spk-id-gpios are provided (the block is commented in the patch). As a result, a different firmware is loaded, resulting in very low volume and strong distortion. If the new patch is used, that uses external boost, the sound is correct, and the log is

[0.004000] zenbook kernel: ACPI: Table Upgrade: install [SSDT-CUSTOM- CSC3551]
[0.004000] zenbook kernel: ACPI: SSDT 0x00000000368FD000 0001A0 (v01 CUSTOM CSC3551  00000001 INTL 20200925)
[5.607253] zenbook kernel: Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[5.906936] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[5.907354] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[5.938136] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[6.239406] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[6.239415] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431e02.wmfw: Fri 27 Aug 2021 14:58:19 W. Europe Daylight Time
[6.313109] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.43.1, 2 algorithms
[6.313524] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: 0: ID cd v29.63.1 XM@94 YM@e
[6.313530] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: 1: ID f20b v0.1.0 XM@176 YM@0
[6.313535] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: C:\Users\tyang\Desktop\Product Setting\SmartAMP\ASUS\ASUS_Zenbook\UX3402\Tuning Release\220304\ASUS_UX3402_L_tuning_IDYC_ReDc_PICL_RTL_0304.bin
[6.337211] zenbook kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi1-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[6.337534] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[6.337540] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431e02.wmfw: Fri 27 Aug 2021 14:58:19 W. Europe Daylight Time
[6.399070] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.43.1, 2 algorithms
[6.399612] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: 0: ID cd v29.63.1 XM@94 YM@e
[6.399623] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: 1: ID f20b v0.1.0 XM@176 YM@0
[6.399629] zenbook kernel: cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: C:\Users\tyang\Desktop\Product Setting\SmartAMP\ASUS\ASUS_Zenbook\UX3402\Tuning Release\220304\ASUS_UX3402_R_tuning_IDYC_ReDc_PICL_RTL_0304.bin
[6.427637] zenbook kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi1-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
--- dsdt.dsl.old 2023-03-26 01:06:48.845795666 +0100
+++ dsdt.dsl 2023-03-26 12:00:45.643851841 +0200
@@ -18,7 +18,7 @@
* Compiler ID "INTL"
* Compiler Version 0x20200717 (538969879)
*/
-DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009)
+DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x0107200A)
{
/*
* iASL Warning: There were 233 external control methods found during
@@ -90642,7 +90642,48 @@
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
}
+
+ Name (_DSD, Package () // _DSD: Device-Specific Data
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package () { "cirrus,dev-index", Package () { Zero, One }},
+ Package () { "reset-gpios", Package () {
+ SPK1, One, Zero, Zero,
+ SPK1, One, Zero, Zero,
+ } },
+ // Package () { "spk-id-gpios", Package () {
+ // SPK1, 0x02, Zero, Zero,
+ // SPK1, 0x02, Zero, Zero,
+ // } },
+ Package () { "cirrus,speaker-position", Package () { Zero, One } },
+ Package () { "cirrus,gpio1-func", Package () { Zero, Zero } },
+ Package () { "cirrus,gpio2-func", Package () { 0x02, 0x02 } },
+ // boost-type: 0 internal, 1 external
+ Package () { "cirrus,boost-type", Package () { Zero, Zero } },
+ // boost-peak-milliamp: 1600 to 4500, increments of 50 mA
+ Package () { "cirrus,boost-peak-milliamp", Package () { 4500, 4500 } },
+ // boost-ind-nanohenry: 1000 | 1200 | 1500 | 2200 nH
+ Package () { "cirrus,boost-ind-nanohenry", Package () { 1000, 1000 } },
+ // boost-cap-microfarad: rounded to the nearest integer
+ Package () { "cirrus,boost-cap-microfarad", Package () { 24, 24 } },
+ },
+ })
}
+
+ Name (_DSD, Package ()
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package () { "cs-gpios", Package () {
+ Zero, // Native CS
+ SPK1, Zero, Zero, Zero // GPIO CS
+ } }
+ }
+ })
+
}
Scope (_SB.PC00.LPCB)
--- dsdt.dsl.old 2023-03-26 01:06:48.845795666 +0100
+++ dsdt.dsl 2023-03-26 12:00:45.643851841 +0200
@@ -18,7 +18,7 @@
* Compiler ID "INTL"
* Compiler Version 0x20200717 (538969879)
*/
-DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x01072009)
+DefinitionBlock ("", "DSDT", 2, "_ASUS_", "Notebook", 0x0107200A)
{
/*
* iASL Warning: There were 233 external control methods found during
@@ -90642,7 +90642,43 @@
Method (_DIS, 0, NotSerialized) // _DIS: Disable Device
{
}
+
+ Name (_DSD, Package () // _DSD: Device-Specific Data
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package () { "cirrus,dev-index", Package () { Zero, One }},
+ Package () { "reset-gpios", Package () {
+ SPK1, One, Zero, Zero,
+ SPK1, One, Zero, Zero,
+ } },
+ Package () { "spk-id-gpios", Package () {
+ SPK1, 0x02, Zero, Zero,
+ SPK1, 0x02, Zero, Zero,
+ } },
+ Package () { "cirrus,speaker-position", Package () { Zero, One } },
+ // gpioX-func: 0 not used, 1 VPSK_SWITCH, 2: INTERRUPT, 3: SYNC
+ Package () { "cirrus,gpio1-func", Package () { One, One } },
+ Package () { "cirrus,gpio2-func", Package () { 0x02, 0x02 } },
+ // boost-type: 0 internal, 1 external
+ Package () { "cirrus,boost-type", Package () { One, One } },
+ },
+ })
}
+
+ Name (_DSD, Package ()
+ {
+ ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
+ Package ()
+ {
+ Package () { "cs-gpios", Package () {
+ Zero, // Native CS
+ SPK1, Zero, Zero, Zero // GPIO CS
+ } }
+ }
+ })
+
}
Scope (_SB.PC00.LPCB)
DefinitionBlock ("", "SSDT", 1, "CUSTOM", "CSC3551", 0x00000001)
{
External (_SB_.PC00.SPI0, DeviceObj)
External (_SB_.PC00.SPI0.SPK1, DeviceObj)
Scope (_SB.PC00.SPI0.SPK1)
{
Name (_DSD, Package ()
{
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package ()
{
Package () { "cirrus,dev-index", Package () { Zero, One }},
Package () { "reset-gpios", Package () {
SPK1, One, Zero, Zero,
SPK1, One, Zero, Zero
} },
Package () { "spk-id-gpios", Package () {
SPK1, 0x02, Zero, Zero,
SPK1, 0x02, Zero, Zero
} },
Package () { "cirrus,speaker-position", Package () { Zero, One } },
// gpioX-func: 0 not used, 1 VPSK_SWITCH, 2: INTERRUPT, 3: SYNC
Package () { "cirrus,gpio1-func", Package () { One, One } },
Package () { "cirrus,gpio2-func", Package () { 0x02, 0x02 } },
// boost-type: 0 internal, 1 external
Package () { "cirrus,boost-type", Package () { One, One } }
}
})
}
Scope (_SB.PC00.SPI0)
{
Name (_DSD, Package ()
{
ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
Package ()
{
Package () { "cs-gpios", Package () {
Zero, // Native CS
SPK1, Zero, Zero, Zero // GPIO CS
} }
}
})
}
}
@alex-spataru
Copy link

@flukejones Thank you very much for the announcement! I just updated my repo/guide for UX7602ZM laptops with the information that you provided. 😄

@lamperez
Copy link
Author

@flukejones I will put a warning with this info at the top of the gist file. Thanks for the announcement.

@grounshelter
Copy link

I have an ASUS UM3504DA-DS76 with a Ryzen 7 and no audio in Linux Mint. Can I patch to add sound now or can I obtain the mentioned upstream patches soon?

@flukejones
Copy link

List of 2023 ROG laptops wit fixed sound in 6.7:

ASUS GX650PY/PZ/PV/PU/PYV/PZV/PIV/PVVA
Asus GA402X/GA402NA
ASUS GU604VI/VC/VE/VG/VJ/VQ/VU/VV/VY/VZA
ASUS GU603VQ/VU/VV/VJ/VIA
ASUS GV601VV/VU/VJ/VQ/VIA
ASUS G614JY/JZ/JGA
ASUS G513PI/PU/PVA
ASUS G733PY/PZ/PZV/PYVA
ASUS GV302XA/XJ/XQ/XU/XV/XIA
ASUS GZ301VV/VQ/VU/VJ/VA/VC/VE/VVC/VQC/VUC/VJC/VEC/VCCA
ASUS GV301QHA
ASUS GU603ZI/ZJ/ZQ/ZU/ZVA
ASUS GU603A
Asus G73JwA
ASUS G614JVR/JIRA
ASUS GU603A
ASUS ROG Strix G15A
ASUS G614JU/JV/JIA
ASUS G634JY/JZ/JI/JGA
ASUS G814JU/JV/JIA
ASUS G814JY/JZ/JGA
ASUS G834JY/JZ/JI/JGA
ASUS G713PI/PU/PV/PVNA
ASUS G614JZRA
ASUS G814JVR/JIRA
ASUS G814JZRA
ASUS G834JYR/JZRA
ASUS G634JYR/JZRA

putting this here as this thread comes up in many searches.

@BillOTei
Copy link

great news!

@sarfarazahmad89
Copy link

Do you guys have any opinion on when they/Cirrus will do this for Lenovo laptops? I wonder if the push came from Asus for them/Cirrus to do this.

@sarfarazahmad89
Copy link

@dorian-cruveiller this works for Slim7 16APH8 but I think you figured that out already.

@staropram
Copy link

Excellent news. I notice they also added support for my model. I suppose this shows that making noise about this stuff works. I don't mean in a kind of "complaints" way, but more that if the open source developers at cirrus and elsewhere can see that people really want this stuff to work, it will motivate them to work on these issues and helps to prioritise their time. That's what I imagine anyway. Thanks to all who have made this possible!

@flukejones
Copy link

@staropram I definitely made some waves to get this done and the asus rog laptop support is a direct result of me requesting help from an asus contact, and making some efforts in lkml. But the overall result here is due to it being a cross-vendor issue

@staropram
Copy link

@flukejones Thank you very much for your efforts Luke in getting this working, you've served us all, Merry Christmas!

What's the reason this happened in the first place? Why didn't asus put the DSD data in the bios? Is it deliberate collusion with MS to make it more difficult to use Linux on these new machines? Or perhaps they just think, oh having all these different ACPI tables is annoying, let's just do it in software?

Also, why do you think people like cirrus are so shady about just sharing the spec sheet? Or are they generally open? Some of this kind of closed-ness seems pointless because presumably their competitors can easily figure out what they are doing anyway?

@dorian-cruveiller
Copy link

HI, i have another laptop using this chip and is connected in I2C. Everything works great except when rebooting, i have the the following error:

Failed waiting for OTP_BOOT_DONE: -121

I tried to change reset-gpios like this:

Package () { "reset-gpios", Package () {
    SPKR, One, Zero, Zero,
    SPKR, One, Zero, Zero
} },

I also tried 0x02 and 0x03 but none of these work when rebooting.

Any help would be very appreciated.

@socketpair
Copy link

socketpair commented Jan 6, 2024

YAY!
UX3402ZA.310
Sound works! Just upgraded to Fedora 39 (and upgraded to the latest kernel within + all packages), and did nothing!

Did not upgrade BIOS (vendor did not make update).

Kernel 6.6.8-200.fc39.x86_64
linux-firmware-20231211-1.fc39.noarch

$ dmesg | grep  cs
[108004.282525] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[108004.282533] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431e02.wmfw: Fri 27 Aug 2021 14:58:19 W. Europe Daylight Time
[108004.423081] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.43.1, 2 algorithms
[108004.425027] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot-10431e02-spkid1-l0.bin: v0.43.1
[108004.425029] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: C:\Users\tyang\Desktop\Product Setting\SmartAMP\ASUS\ASUS_Zenbook\UX3402\Tuning Release\220304\ASUS_UX3402_L_tuning_IDYC_ReDc_PICL_RTL_0304.bin

Before:

$ journalctl -b -1 | fgrep cs35
дек 20 08:12:28 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Failed property cirrus,dev-index: -22
дек 20 08:12:28 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
дек 20 08:12:28 asus kernel: cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.0 failed with error -22
дек 20 08:12:28 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Failed property cirrus,dev-index: -22
дек 20 08:12:28 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: error -EINVAL: Platform not supported
дек 20 08:12:28 asus kernel: cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.1 failed with error -22

Even more before:

$ journalctl -b -5 | fgrep cs35
ноя 27 17:07:44 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Error: ACPI _DSD Properties are missing for HID CSC3551.
ноя 27 17:07:44 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
ноя 27 17:07:44 asus kernel: cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.0 failed with error -22
ноя 27 17:07:44 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Error: ACPI _DSD Properties are missing for HID CSC3551.
ноя 27 17:07:44 asus kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: error -EINVAL: Platform not supported
ноя 27 17:07:44 asus kernel: cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.1 failed with error -22

@socketpair
Copy link

But by feelings, volume is not enough. I don't have Windows, so I can not compare. I know everything this is about amplifier and some secret coefficients.

@dabendji2000
Copy link

dabendji2000 commented Jan 6, 2024

@socketpair I had the same issue on my Zenbook UM3402YAR - meaning that when I finally was able to get the sound working (and that was only yesterday after three months of trial and error) the sound was lower than it should be normally. The solution was to grab the files from my windows partition and to rename them into the linux naming convention for my soundcard by using the rename script and then to copy them to /lib/firmware/cirrus directory.
After restart I was able to get the sound on Nobara 39 as it should be.

Since you do not have windows you need to get the files from either someone else who has the same machine as you do and has windows installed or from the Realtek website.

@socketpair
Copy link

socketpair commented Jan 6, 2024

Sometimes (I don't know, what triggers) the following happens:

[533077.684431] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 256 bytes from 2800608: -16
[534920.946475] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 256 bytes from 2800608: -16
[536684.320479] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 256 bytes from 2800608: -16

@kenzoi
Copy link

kenzoi commented Jan 6, 2024

Thanks all for this valuable information resources.

I have a Zenbook UX3402VA without patches since audio is a non-essential to my work and I was waiting for a native BIOS or kernel solution. So when I saw the news I got very excited about the new kernel patches of Kernel 6.7, but sadly testing the latest kernel-6.7.0-0.rc8 using Fedora Rawhide I don't have sound yet on this model.

I'm not sure because I'm not very familiar with low level code or C, but as others have mentioned the possibility, apparently this model is missing on cs35l41_config_table and cs35l41_prop_model_table on kernel > sound > pci > hda > cs35l41_hda_property.c. I used this command lspci -vn which gave me the subsystem id 1043:16a3, which is not included. (I'm assuming that the number at that table are subsystem ids of course)

I didn't have the knowledge or time to get what values should have the cs35l41_config_table.
I'll try to learn more about, but due of my lack of knowledge on this matter I may fallback to a LTS kernel + dsd patching until someone get a solution or continue living without sound.

@Da-Viper
Copy link

Da-Viper commented Jan 8, 2024

@dorian-cruveiller did this work for Lenovo slim 7 16aph8 ?

@phaserblast
Copy link

To those suffering the low audio volume issue with the new 6.7 kernel fix, this is what worked for me. All I needed to do was create two symlinks to a file in /lib/firmware/cirrus/cs35l41 (my machine is a GV302XA, id 1043:1533). Note that both of these links point to the same file:

ln -s /lib/firmware/cirrus/cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw /lib/firmware/cirrus/cs35l41-dsp1-spk-prot-10431533.wmfw
ln -s /lib/firmware/cirrus/cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw /lib/firmware/cirrus/cs35l41-dsp1-spk-cali-10431533.wmfw

Ensure your links contain the machine ID in the file name. I think the Cirrus kernel module looks for these files, and if it doesn't find them you get the dreaded "Falling back to default firmware" note in dmesg. With the symlinks, I don't get the "default firmware" message anymore and the volume can get much louder!

@Dertosh
Copy link

Dertosh commented Jan 8, 2024

Thanks to you all I got sound working on UM3504DA (Asus Zenbook 15 OLED)!

My dsl file looks like this:

DefinitionBlock ("", "SSDT", 1, "CUSTOM", "CS3551", 0x0000300A)
{

    External (_SB_.I2CB, DeviceObj)
    External (_SB_.I2CB.SPKR, DeviceObj)

    Scope (_SB.I2CB.SPKR)
    {
        Method (_DSD, 0, NotSerialized)  // _DSD: Device Specific Data
        {
            Return (Package ()
                {
                    ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
                    Package ()
                    {
                        Package () { "cirrus,dev-index", Package () { 0x0040, 0x0041 }},
                        Package () { "reset-gpios", Package () {
                           SPKR, One, Zero, Zero,
                           SPKR, One, Zero, Zero
                        } },
                        Package () { "spk-id-gpios", Package () {
                             SPKR, 0x02, Zero, Zero,
                             SPKR, 0x02, Zero, Zero,
                        } },
                        Package () { "cirrus,speaker-position", Package () { Zero, One } },
                        Package () { "cirrus,gpio1-func", Package () { One, One } },
                        Package () { "cirrus,gpio2-func", Package () { 0x02, 0x02 } },
                        // boost-type: 0 internal, 1 external
                        Package () { "cirrus,boost-type", Package () { One, One } },
                        // boost-peak-milliamp: 1600 to 4500, increments of 50 mA
                        //Package () { "cirrus,boost-peak-milliamp",  Package () { 3000, 3000 } },
                        // boost-ind-nanohenry: 1000 | 1200 | 1500 | 2200 nH
                        //Package () { "cirrus,boost-ind-nanohenry",  Package () { 1000, 1000 } },
                        // boost-cap-microfarad: rounded to the nearest integer
                        //Package () { "cirrus,boost-cap-microfarad", Package () { 15, 15 } },
                    }
                }) /* \_SB.I2CB.SPKR._DSD */
        }
    }

    Scope (_SB.I2CB)
    {
        Method (_DSD, 0, NotSerialized)  // _DSD: Device Specific Data
        {
            Return (Package ()
                {
                    ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
                    Package ()
                    {
                        Package () { "cs-gpios", Package () { 
                            Zero,                    // Native CS
                            SPKR, Zero, Zero, Zero   // GPIO CS
                        } }
                    }
                }) /* \_SB.I2CB.SPKR._DSD */
        }
    }
}

I had to add SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS UM3504DA", ALC287_FIXUP_CS35L41_I2C_2), to static const struct snd_pci_quirk alc269_fixup_tbl at line 9500 in file sound/pci/hda/patch_realtek.c and compile linux 6.6.2 kernel (never did it before).

In 6.7 there's ALC294_FIXUP_CS35L41_I2C_2 which appears to do the same as ALC287_FIXUP_CS35L41_I2C_2. UM3504 has ALC294 by the way.

Is there anything I can do to make SND_PCI_QUIRK(0x1043, 0x18d3, "ASUS UM3504DA", ALC294_FIXUP_CS35L41_I2C_2), appear in source code of the linux kernel so that I never have to compile it again?

Thank you, it's work for me! ASUSTeK COMPUTER INC. Zenbook 15 UM3504DA_UM3504DA Linux 6.6.8-2-MANJARO

@SergioASantosF
Copy link

First of all, I would like to thank everyone who made this happen, without your time diving in to solve this issue, this solution would not be possible!! I installed EndeavourOS today and on the kernel version it was on when installed (6.6.10), the sound didn't work without a patch. However, after compiling the latest version of the mainline kernel 6.7.0, and rebooting, the sound worked without any modifications, natively.

I used this laptop - UX3402ZA (Bios 310) throughout the year with Windows, and the times I tested the patches on Linux, the sound only came from one side, it was low, but it was already a path towards a solution, which made me very happy. However, using it like that made me go back to Windows to avoid damaging the speaker and wait, until I could extract 100% from the laptop (which isn't very cheap here in Brazil).

But now, after this kernel update, the sound is loud, not as loud as Windows, which could reach a level where it distorted the sound, sometimes losing quality. But on Linux, it's loud and at a level where the sound is perfect, it doesn’t distort, meaning, it's at an ideal maximum sound level for the speakers.

Again, many thanks to everyone involved who made it happen, now it's just a matter of waiting as the distros update their kernel and soon it will be resolved for most of the machines we use.

THANK YOU!

@plamen-kolev
Copy link

Thanks all for this valuable information resources.

I have a Zenbook UX3402VA without patches since audio is a non-essential to my work and I was waiting for a native BIOS or kernel solution. So when I saw the news I got very excited about the new kernel patches of Kernel 6.7, but sadly testing the latest kernel-6.7.0-0.rc8 using Fedora Rawhide I don't have sound yet on this model.

I'm not sure because I'm not very familiar with low level code or C, but as others have mentioned the possibility, apparently this model is missing on cs35l41_config_table and cs35l41_prop_model_table on kernel > sound > pci > hda > cs35l41_hda_property.c. I used this command lspci -vn which gave me the subsystem id 1043:16a3, which is not included. (I'm assuming that the number at that table are subsystem ids of course)

I didn't have the knowledge or time to get what values should have the cs35l41_config_table. I'll try to learn more about, but due of my lack of knowledge on this matter I may fallback to a LTS kernel + dsd patching until someone get a solution or continue living without sound.

Sad to hear, hope someone tackles this in the near future

@anthonyryan1
Copy link

anthonyryan1 commented Jan 10, 2024

Also no luck with the ASUS UM3402Y on kernel 6.7 with all the cs35l41 options enabled in the kernel, apparently more tinkering needed.

(Interestingly, in spite of the physical label on the device listing UM3402Y, the software internally says UM3402YA. I suspect those are the same model.)

@AlexeyPashnin1
Copy link

AlexeyPashnin1 commented Jan 11, 2024

@staropram Hi! It's me, the guy who doesn't have anything working. After the system stopped booting, I got upset and put the laptop in the pantry. But now I have made one more attempt to fix the sound before abandoning the laptop altogether.

Following the instructions and your advice, I tried to install kernel versions 6.6.11 and 6.7, but it didn't help. The sound is still only in the headphones.

Tell me, please, is there any other chance or way that I can try? So far, this thread is the only clue for me, because I tried everything else on the Internet and it didn't help.

Here are the outputs that you asked me earlier:

$ inxi -MA

Machine:
Type: Laptop System: ASUSTeK product: Zenbook UX3402VA_UX3402VA v: 1.0
serial:
Mobo: ASUSTeK model: UX3402VA v: 1.0 serial:
UEFI: American Megatrends LLC. v: UX3402VA.302 date: 05/23/2023
Audio:
Device-1: Intel Raptor Lake-P/U/H cAVS driver: sof-audio-pci-intel-tgl
API: ALSA v: k6.5.0-14-generic status: kernel-api
Server-1: PipeWire v: 0.3.79 status: active

sudo dmesg | grep CSC

[ 2.045365] Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[ 2.677091] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Error: ACPI _DSD Properties are missing for HID CSC3551.
[ 2.677107] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
[ 2.677115] cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.0 failed with error -22
[ 2.677616] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Error: ACPI _DSD Properties are missing for HID CSC3551.
[ 2.677620] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: error -EINVAL: Platform not supported
[ 2.677623] cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.1 failed with error -22

uname -a

Linux alex 6.5.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:59:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

I would appreciate any help. Thank you!

@lamperez
Copy link
Author

lamperez commented Jan 11, 2024

@AlexeyPashnin1 Not exactly a solution to your problem, but for reference: if you want to check if your laptop model is supported in the latest kernel version, first get the vendor and model ID:

udevadm info /sys/bus/pci/devices/0000:00:00.0 | grep PCI_SUBSYS_ID

That gives me (Asus Zenbook UX3402ZA)

E: PCI_SUBSYS_ID=1043:1E02

Then, just look for the ID in the kernel source, here and here, without the colon.

Also, I suppose that these are the places to patch the kernel to support a model that is not yet included.

@kenzoi
Copy link

kenzoi commented Jan 12, 2024

Yesterday I took some time to read again the new kernel tables, the working SSDT patch published here for the Asus Zenbook UX3402VA and those instructions at asus-linux.org, downloaded the latest kernel source and made a patch adding the a new entry for UX3402VA model and now the audio is working correctly, I have been using it all day and I didn't detected any problem.

I didn't know how to find the nanohenry, microfarad, and milliamp values, but then I read these are just for the models that have the INTERNAL boost_type, then we just need to leave these values as 0. So for this model the entry is really the same as the UX3402ZA just changing the vendor and model ID.

I've just submitted the patch to the maintainer list.
Thank you all very much! Thank you @lamperez ! I'm really happy that I finally have the audio working.

Edit: the table must be sorted by SSID.

diff --git a/sound/pci/hda/cs35l41_hda_property.c b/sound/pci/hda/cs35l41_hda_property.c
index c1afb721b4c6..9ec5773e580e 100644
--- a/sound/pci/hda/cs35l41_hda_property.c
+++ b/sound/pci/hda/cs35l41_hda_property.c
@@ -54,6 +54,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
 	{ "10431533", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
 	{ "10431573", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
 	{ "10431663", SPI, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, -1, 0, 1000, 4500, 24 },
+	{ "104316A3", SPI, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
 	{ "104316D3", SPI, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
 	{ "104316F3", SPI, 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 0, 0, 0 },
 	{ "104317F3", I2C, 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
@@ -358,6 +359,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
 	{ "CSC3551", "10431533", generic_dsd_config },
 	{ "CSC3551", "10431573", generic_dsd_config },
 	{ "CSC3551", "10431663", generic_dsd_config },
+	{ "CSC3551", "104316A3", generic_dsd_config },
 	{ "CSC3551", "104316D3", generic_dsd_config },
 	{ "CSC3551", "104316F3", generic_dsd_config },
 	{ "CSC3551", "104317F3", generic_dsd_config },
-- 
2.43.0

@lamperez
Copy link
Author

@kenzoi you are welcome. Glad to be helpful.

@AlexeyPashnin1
Copy link

@lamperez Hi! I get this output
PCI_SUBSYS_ID=1043:16A3

and it seems that the model isn't supported
104316A3

It's a pity. I didn't think that in 2024 the operating system might not support sound.

Anyway, thanks for the help!
cc @staropram

@kenzoi
Copy link

kenzoi commented Jan 13, 2024

@AlexeyPashnin1 we have the same model, check my last comment if you want to try a patch for the kernel 6.7, it's just 2 lines.
The patch was already submitted, such small change I hope won't take much time to get merged into mainline.

@lamperez
Copy link
Author

AlexeyPashnin1: It is not the operative system, it is the vendor the one to blame.

@AlexeyPashnin1
Copy link

@kenzoi Hi! Thank you, but still no luck. But it may very well be that I'm not doing something completely, because when I execute a command uname -a, I get this output

Linux alex 6.5.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Tue Nov 14 14:59:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Where the 6.5.0-14-generic version is indicated and not the 6.7.

I've downloaded the archive from https://kernel.org/ and and installed it according to the instructions https://itsfoss.com/compile-linux-kernel/.

It's probably important to note that I only got to the line make -j$(nproc) 2>&1 | tee log

Did I miss any mandatory actions that caused the kernel not to update?

@AlexeyPashnin1
Copy link

@lamperez well, I got Ubuntu from ubuntu.com, so the vendor is official :)

@lamperez
Copy link
Author

@AlexeyPashnin1 How funny, haha. The computer vendor, the one that builds and sells hardware without its specifications, or following the standards.

@AlexeyPashnin1
Copy link

@lamperez sorry, I didn't know Asus didn't follow the standards

@lamperez
Copy link
Author

@AlexPashnin1 Just read the thread from the beginning, the amplifier parameters are not provided anywhere by ASUS. The almost 30 years old standard way to describe a PC hardware configuration exposed to an operative system is the ACPI, that means "Advanced Configuration and Power Interface". And ASUS just keeps a hole in some of the vital configuration, that we have to guess and patch at boot, or alternatively it must be hardcoded in the kernel module (or Windows driver), something that is done several years after the hardware is in the market. Not very standard, if you ask me.

@AlexeyPashnin1
Copy link

@lamperez well, then I chose the wrong vendor and wasn't ready to edit the kernel to adjust the sound :) Now I will keep this in mind when choosing the next laptop.

Thank you, anyway, for your time.

@Mikchel
Copy link

Mikchel commented Jan 15, 2024

Alexey, you are right. It was surprise for me that quite expensive ASUS ROG laptop has so strange sound problems. That was very surprise for me. And i won't suggest anybody to get ASUS's laptops. Quite bad commercial for big company.

@FrankKipf
Copy link

Keep in mind, that Lenovo Legion series - highend gaming laptop like Asus ROG - suffers the same problem. They use the same Cirruslogic-chips and Lenovo has like Asus "forgotten" to provide the infos via ACPI / Bios. I can't tell you how much this f.... me up.

@BuenGenio
Copy link

Could any of this be re-used to enable the second pair of bass speakers on a Dell XPS 15 9530, which also uses the same chip?
Thanks!

@alexVinarskis
Copy link

alexVinarskis commented Jan 16, 2024

Could any of this be re-used to enable the second pair of bass speakers on a Dell XPS 15 9530, which also uses the same chip?
Thanks!

TL:DR; already done, coming in 6.8

Me and some other community members did it, but even though we submitted the patch, Cirrus changed their framework, and right after added their own support for xps 9530. They also just merged firmware/tuning files few days back. XPS 9530 also has a firmware bug which caps SPI speed, and thus firmware loading wouldve take ~3mins. I made a patch and it got accepted, should be coming in 6.8

Edit: most of development happened here on discord server

@isle9
Copy link

isle9 commented Jan 20, 2024

I've just submitted the patch to the maintainer list.

@kenzoi Any idea when this will be available?

@Raymo111
Copy link

Fixed on UM3504 as well, at long last!!

@Mikchel
Copy link

Mikchel commented Jan 21, 2024

Hi,
I have strange sound conflict on ROG 713PV 2023 with Firefox browser. When i visit page which wants to play DRM content (same time VLC is playing some of mp3 track) , i have additional noise on speakers. As soon i close such web page noise is disappear.
Does anybody have similar problems? Can anybody suggest what i have to do to fix that?

@isle9
Copy link

isle9 commented Jan 21, 2024

  • remove the dsd patching

  • remove /boot/grub2/grubenv if it exists

Why do we need to do these two things if the patches will override them anyways? @flukejones

@isle9
Copy link

isle9 commented Jan 21, 2024

just found that link up in a comment regarding low volume:

latin-1/um5302ta#8 (comment)

ATM I have no opprtunity to check. Does it work for you to do the steps as mentioned there..?


$ cd /tmp
$ git clone https://gitlab.com/asus-linux/firmware
$ cd firmware
$ sudo cp -r cirrus /lib/firmware/

Did you end up checking? Doesn't seem to work for me.

@bkonkle
Copy link

bkonkle commented Jan 25, 2024

I can confirm that this patch is obsolete with Linux Kernel >= 6.7. I'm running Ubuntu 23.10 (dual-boot with Windows 11) with a ROG Strix G18 laptop (G814JZ) and the latest nvidia-driver-545 installed (and I've also tested with nvidia-driver-535). I used the mainline GUI/CLI tool to install Kernel 6.7.2. I followed the instructions here to sign my kernel for Secure Boot, and I was then able to boot successfully! 🚀 The built-in laptop audio works flawlessly for me now, and my NVidia card is working smoothly and supporting my Samsung Thunderbolt display nicely.

Thank you, Cirrus open source!

@DemikGit
Copy link

Did you end up checking? Doesn't seem to work for me.

It works for me, thx = )

@kenzoi
Copy link

kenzoi commented Jan 27, 2024

Any idea when this will be available?

@isle9 I've resubmitted today because of a small difference related to the latest branch. I think this (UX3402VA model)
will be available on Linux 6.8

@HARDWELL9191
Copy link

HARDWELL9191 commented Jan 30, 2024

I have got my speakers working on my UX3402VA on Ubuntu with the 6.7.2 mainline kernel and applying the ssdt patch, but the volume is way too low and that's why I've also downloaded the firmware using this guide: Firmware. The volume is still way too low. This is the ID for the device: E: PCI_SUBSYS_ID=1043:16A3
Any fix for this on my device?
Edit: It seems to still be falling back to default firmware.

[    3.896842] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[    3.906683] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[    3.944156] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[    5.313758] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
[    5.314678] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[    5.314685] UbuntuTop kernel: 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
[    5.388399] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[    5.389088] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[    5.389098] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings>
[    5.404412] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 104316A3, BST: 1, VSPK: 1, CH: L, FW EN: 1, SPKID: 0
[    5.404423] UbuntuTop kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[    5.404707] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Falling back to default firmware.
[    5.405036] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[    5.405039] UbuntuTop kernel: 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
[    5.467265] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[    5.468338] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[    5.468347] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings>
[    5.490012] UbuntuTop kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 104316A3, BST: 1, VSPK: 1, CH: R, FW EN: 1, SPKID: 0
[    5.490026] UbuntuTop kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])```

@kenzoi
Copy link

kenzoi commented Jan 30, 2024

@HARDWELL9191 the ssdt patch is an older solution, from before the recent kernel rework.
But to be honest I don't know if this impact the volume somehow, I think not since the values in the ssdt patch and kernel table probably are the same.

I've created this basic instruction on how I applied the kernel patch on linux 6.7.2 using Fedora.
The patch was accepted today by one of the sound.git maintainers. I hope that soon we won't need it anymore.

@HARDWELL9191
Copy link

HARDWELL9191 commented Jan 31, 2024

@kenzoi I checked using this guide if my device was actually in the kernel and it wasn't so I suppose that's why my sound didn't work until I applied the SSDT patch, but the volume with the patch is still too low and falls back to default firmware. Idk why, maybe someone can tell me if there's a fix for this without building a kernel myself. Otherwise I'll just wait for the 6.8 kernel to come out ;)

@lonk42
Copy link

lonk42 commented Feb 16, 2024

Has anyone managed to get something working on the UM3402YA yet? Neither kernel 6.7.4 or any combination of the patches here I've tried have done the trick so far.

@joezhouchenye
Copy link

Has anyone managed to get something working on the UM3402YA yet? Neither kernel 6.7.4 or any combination of the patches here I've tried have done the trick so far.

You may be in trouble with the reset_gpio field, I am using ROG STRIX though. I have a similar patch for my laptop. It worked before, but it suddenly had misfunctions today.

It turns out that the BIOS setting of the boot logo sound is causing this problem (I changed it today).

If the boot logo sound is enabled, the reset-gpios filed should be

Package () { "reset-gpios", Package () {
	SPK1, One, Zero, Zero,
	SPK1, One, Zero, Zero,
} },

If disabled, the field should be

Package () { "reset-gpios", Package () {
	SPK1, Zero, Zero, Zero,
	SPK1, Zero, Zero, Zero,
} },

@slayerjain
Copy link

slayerjain commented Feb 26, 2024

@kenzoi as per torvalds/linux@c16dfab, this patch should be released in the v6.8-rc6. I tried installing this on my UX3405MA and had no luck.

In my case, the audio works but the volume is really low (compared to windows), like speech is barely audible - like 20% of windows volume. There was no difference in installing v6.8-rc6 and v6.7.x

[    6.172395] fedora kernel: Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[    6.441606] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[    6.441834] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[    6.475276] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[    7.011838] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: Falling back to default firmware.
[    7.015348] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware version: 3
[    7.015353] fedora kernel: 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
[    7.146892] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[    7.148120] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[    7.148125] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\in>
[    7.161724] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 1, CH: L, FW EN: 1, SPKID: -19
[    7.161731] fedora kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[    7.164371] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: Falling back to default firmware.
[    7.166774] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
[    7.166777] fedora kernel: 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
[    7.284208] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: Firmware: 400a4 vendor: 0x2 v0.58.0, 2 algorithms
[    7.285221] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: cirrus/cs35l41-dsp1-spk-prot.bin: v0.58.0
[    7.285231] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\in>
[    7.300136] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 10431A63, BST: 1, VSPK: 0, CH: R, FW EN: 1, SPKID: -19
[    7.300146] fedora kernel: snd_hda_codec_realtek ehdaudio0D0: bound spi0-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[  321.135983] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 256 bytes from 2800620: -16
[  667.964185] fedora kernel: cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 256 bytes from 2800620: -16

@saaska-kim
Copy link

@lonk42 I have sound working on UM3402YA with kernel 6.7 using this SSDT file.

@lonk42
Copy link

lonk42 commented Mar 4, 2024

@lonk42 I have sound working on UM3402YA with kernel 6.7 using this SSDT file.

Awesome that one works!

@tholden92
Copy link

Following. Have the same problem with UX3405MA and default firmware error. Running the 6.8-rc7 kernel.

@tiaga
Copy link

tiaga commented Mar 8, 2024

As a workaround for Linux Mint 21.3 and Asus Zenbook 14 UX3402VA I've installed 6.7.7 kernel from Zabbly repo. However, microphone on my wire headset stopped working (no sound can be detected) on that kernel. Is there any workaround for that?

@isle9
Copy link

isle9 commented Mar 13, 2024

@kenzoi Still the same issue with default firmware fallback error and low sound on 6.8...

@slayerjain
Copy link

On a fresh installation, are we supposed to do any extra step (like SSDT patching) apart from installing linux 6.8 kernel?

@HARDWELL9191
Copy link

HARDWELL9191 commented Mar 19, 2024

@slayerjain @kenzoi Yep I've been having the volume issue as well. With both the ssdt patch before and in the 6.8 rc6 kernel now as well on my UX3402VA. It falls back to default firmware for some reason. Max volume on linux is like being at 20% on windows and if you try going past that with pavucontrol, the sound just gets distorted af. Hopefully someone can find a fix for this so we can actually get solid sound out of our laptops. It's literally the only thing that's holding me back from permanently switching to linux on my laptop and just remove my dual boot. I need me some good music sometimes ;)

@steffengy
Copy link

steffengy commented Apr 3, 2024

For 10431A63 - UX3405MA.304
@tholden92 @slayerjain and whoever else with one might want to test.
The following patch/hack works for me
and also confirmed different firmware being loaded / fallback messages fixed.

[ 11.160796] cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: C:\Users\tyang\Desktop\Product Setting\SmartAMP\ASUS\ASUS_Zenbook\2023Projects\UX3405MA\Tuning_release\06082023\UX3405UM_19p5dB_Mock_NM_Lch_finish_ID_6p83_US_Xmax0p65.bin

For context: In bios version 304 pretty much all the config is present (confirmed via dumping and looking at ssdt16),
except for "spk-id-gpios". The patch below should force creation of only that GPIO in the driver - which doesnt seem to account for the case where a DSD is present but only 99% complete, hence the hack to skip that check
since I know the 1 missing gpio still needs to be initialized and isnt present in DSD.

https://gist.github.com/steffengy/aa48549f40c37acf85de7a7f9a6c0475

@tholden92
Copy link

tholden92 commented Apr 3, 2024

Tried to apply the patch, but got an error message.

Setting version...
Applying patch linux-v6.8.2-arch2.patch...
patching file Makefile
patching file arch/Kconfig
patching file drivers/firmware/sysfb.c
patching file drivers/net/xen-netfront.c
patching file include/linux/user_namespace.h
patching file init/Kconfig
patching file kernel/fork.c
patching file kernel/sysctl.c
patching file kernel/user_namespace.c
Applying patch sound-fix.patch...
patching file sound/pci/hda/cs35l41_hda_property.c
Hunk #1 succeeded at 85 with fuzz 1.
Hunk #2 FAILED at 232.
Hunk #3 FAILED at 240.
Hunk #4 succeeded at 423 with fuzz 1.
2 out of 4 hunks FAILED -- saving rejects to file sound/pci/hda/cs35l41_hda_property.c.rej

This is how the reject file looks like

    --- /dev/null
    +++ sound/pci/hda/cs35l41_hda_property.c    2024-04-03 12:27:54.540979240 +0100
    @@ -232,3 +233,3 @@
     
    -       if (!dsd_found) {
    +       // if (!dsd_found) {
                    ret = cs35l41_add_gpios(cs35l41, physdev, cfg->reset_gpio_index,
    @@ -240,6 +241,6 @@
                    }
    -       } else if (cfg->reset_gpio_index >= 0 || cfg->spkid_gpio_index >= 0) {
    +       /*} else if (cfg->reset_gpio_index >= 0 || cfg->spkid_gpio_index >= 0) {
                    dev_warn(cs35l41->dev, "Cannot add Reset/Speaker ID/SPI CS GPIO Mapping, "
                             "_DSD already exists.\n");
    -       }
    +       }*/

@steffengy
Copy link

@tholden92 Updated above with gist with more patch context, as the "short" version doesnt seem to apply well.

@tholden92
Copy link

tholden92 commented Apr 3, 2024

I can confirm that the patch works :-)

Edit: Forked a PKGBUILD from the CachyOS kernel and added your patch for anyone that wants to test.

https://aur.archlinux.org/packages/linux-cachyos-zenbook

@szweep
Copy link

szweep commented Apr 5, 2024

I recently bought a UX3402V and ran into the "no speaker sound" issue after installing Kubuntu. I was able to fix it by updating the kernel (using 6.7.10), but then observed the very low volume levels noted by others. I also saw kernel messages that the default firmware was loading.

This commit to the linux-firmware package is supposed to add the firmware links for my hardware (1043:16a3). After creating these links, no change was observed and the default firmware was still loaded.

I noticed that the links created by that patch use an upper case "A" (e.g. cs35l41-dsp1-spk-cali-104316A3.wmfw) in the filename which is different from all the other firmware files, so I recreated all the links using "104316a3" in the filenames. This worked: firmware was loaded and volume levels are back to normal. It appears this is a bug in the current linux-firmware package for this hardware.

@pavelkaptsiuh
Copy link

pavelkaptsiuh commented Apr 5, 2024

As a workaround for Linux Mint 21.3 and Asus Zenbook 14 UX3402VA I've installed 6.7.7 kernel from Zabbly repo. However, microphone on my wire headset stopped working (no sound can be detected) on that kernel. Is there any workaround for that?

There is a similar issue with UX3402ZA. I have Mint 5.15/Arch 6.8 dual boot.
5.15 kernel is the last kernel where headset microphone is working properly. But it have no fix for a speaker.
6.8 kernel has speaker fix but headset microphone is broken.
I tried to find a fix for a broken microphone few months earlier but without a luck.
You could try to go this rabbit hole. But it's an advanced topic and I had no motivation to spend days on replicating the solution. https://asus-linux.org/blog/sound-2021-01-11/

@pavelkaptsiuh
Copy link

BTW, guys with UX3402ZA/UX3402VA, could you please check is headset mic working properly in your laptops with 6.7+ kernels?

@isle9
Copy link

isle9 commented Apr 7, 2024

BTW, guys with UX3402ZA/UX3402VA, could you please check is headset mic working properly in your laptops with 6.7+ kernels?

@pave
Bluetooth ones work, but they worked even before 6.8 for me, so maybe there's some other issue that's causing it.

@isle9
Copy link

isle9 commented Apr 7, 2024

I recently bought a UX3402V and ran into the "no speaker sound" issue after installing Kubuntu. I was able to fix it by updating the kernel (using 6.7.10), but then observed the very low volume levels noted by others. I also saw kernel messages that the default firmware was loading.

This commit to the linux-firmware package is supposed to add the firmware links for my hardware (1043:16a3). After creating these links, no change was observed and the default firmware was still loaded.

I noticed that the links created by that patch use an upper case "A" (e.g. cs35l41-dsp1-spk-cali-104316A3.wmfw) in the filename which is different from all the other firmware files, so I recreated all the links using "104316a3" in the filenames. This worked: firmware was loaded and volume levels are back to normal. It appears this is a bug in the current linux-firmware package for this hardware.

Oh my lord, it finally works!
I tried creating links previosuly per @phaserblast advice, but it didin't really work, and I'm guessing the reason why it didn't work is because I only created links for .wmfw files. After going through the commit you linked, I noticed that there are also some .bin files that need to be linked.

Keep in mind that I didn't have any .bin files at all for my model until I created them myself. That's why I missed those the first time. I just searched for my model, and only the .wmfw files were in the folder.

@pavelkaptsiuh
Copy link

pavelkaptsiuh commented Apr 8, 2024

BTW, guys with UX3402ZA/UX3402VA, could you please check is headset mic working properly in your laptops with 6.7+ kernels?

@pave Bluetooth ones work, but they worked even before 6.8 for me, so maybe there's some other issue that's causing it.

I mean wired headset mic. Is it working for you?

@isle9
Copy link

isle9 commented Apr 8, 2024

Wired seems to work for me too.

@HARDWELL9191
Copy link

I recently bought a UX3402V and ran into the "no speaker sound" issue after installing Kubuntu. I was able to fix it by updating the kernel (using 6.7.10), but then observed the very low volume levels noted by others. I also saw kernel messages that the default firmware was loading.

This commit to the linux-firmware package is supposed to add the firmware links for my hardware (1043:16a3). After creating these links, no change was observed and the default firmware was still loaded.

I noticed that the links created by that patch use an upper case "A" (e.g. cs35l41-dsp1-spk-cali-104316A3.wmfw) in the filename which is different from all the other firmware files, so I recreated all the links using "104316a3" in the filenames. This worked: firmware was loaded and volume levels are back to normal. It appears this is a bug in the current linux-firmware package for this hardware.

Can you tell me the process of creating these links? I have a low volume issue with falling back to default firmware. I have the same device ID as you. I just don't know how to create these links.

@kenzoi
Copy link

kenzoi commented Apr 8, 2024

I noticed that the links created by that patch use an upper case "A" (e.g. cs35l41-dsp1-spk-cali-104316A3.wmfw) in the filename which is different from all the other firmware files, so I recreated all the links using "104316a3" in the filenames. This worked: firmware was loaded and volume levels are back to normal. It appears this is a bug in the current linux-firmware package for this hardware.

Very nice! This worked for me too! @szweep could you send a patch with this fix to upstream?

@HARDWELL9191 for me on Fedora the files are located here /lib/firmware/cirrus.

Create new symlinks as proposed above:

ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-cali-104316a3-spkid0-l0.bin.xz
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid0-r0.bin.xz cs35l41-dsp1-spk-cali-104316a3-spkid0-r0.bin.xz
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid1-l0.bin.xz cs35l41-dsp1-spk-cali-104316a3-spkid1-l0.bin.xz
ln -s cs35l41-dsp1-spk-cali-10431e12-spkid1-r0.bin.xz cs35l41-dsp1-spk-cali-104316a3-spkid1-r0.bin.xz
ln -s cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw.xz cs35l41-dsp1-spk-cali-104316a3.wmfw.xz
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-l0.bin.xz cs35l41-dsp1-spk-prot-104316a3-spkid0-l0.bin.xz
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid0-r0.bin.xz cs35l41-dsp1-spk-prot-104316a3-spkid0-r0.bin.xz
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid1-l0.bin.xz cs35l41-dsp1-spk-prot-104316a3-spkid1-l0.bin.xz
ln -s cs35l41-dsp1-spk-prot-10431e12-spkid1-r0.bin.xz cs35l41-dsp1-spk-prot-104316a3-spkid1-r0.bin.xz
ln -s cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw cs35l41-dsp1-spk-prot-104316a3.wmfw
ln -s cs35l41/v6.61.1/halo_cspl_RAM_revB2_29.63.1.wmfw.xz cs35l41-dsp1-spk-prot-104316a3.wmfw.xz

@tiaga
Copy link

tiaga commented Apr 8, 2024

BTW, guys with UX3402ZA/UX3402VA, could you please check is headset mic working properly in your laptops with 6.7+ kernels?

For me on UX3402VA and Linux Mint 21.3 headset microphone stopped working.
Same issue can be seen in 6.5.0-17 from official Linux Mint repo. I guess something is wrong with 3.5 jack pins mapping, but unfortunately I couldn't figure what changes lead to this.

@pavelkaptsiuh
Copy link

BTW, guys with UX3402ZA/UX3402VA, could you please check is headset mic working properly in your laptops with 6.7+ kernels?

For me on UX3402VA and Linux Mint 21.3 headset microphone stopped working. Same issue can be seen in 6.5.0-17 from official Linux Mint repo. I guess something is wrong with 3.5 jack pins mapping, but unfortunately I couldn't figure what changes lead to this.

Wired seems to work for me too.

Interesting. I searched the internet quite extensively for a headset mic issue and it was nothing there. Might be it's some how related to BIOS config or Mint's version of GRUB.

@szweep
Copy link

szweep commented Apr 13, 2024

Very nice! This worked for me too! @szweep could you send a patch with this fix to upstream?

@kenzoi - I created a PR here: CirrusLogic/linux-firmware#31. I'm not sure what the procedures are for approval and merge as I've never done this before, but hopefully it will be seen.

@smallcms
Copy link

Looks, UX3405MA works now on kernel 6.8.5. Tested on Fedora 39, works: amplifiers, 3.5 jack headset. Like @steffengy i'm decompiled ssdt16.dat, but added "spk-id-gpios" Package section. Works without patching kernel:
https://github.com/smallcms/asus_zenbook_ux3405ma

@rmuhamedgaliev
Copy link

rmuhamedgaliev commented Apr 29, 2024

Hello, i tried apply patch but have error

[    0.009166] ACPI: Table Upgrade: install [SSDT-CUSTOM- CSC3551]
[    0.009168] ACPI: SSDT 0x00000000394ED000 000158 (v01 CUSTOM CSC3551  00000001 INTL 20220331)
[    5.850427] Serial bus multi instantiate pseudo device driver CSC3551:00: Instantiated 2 SPI devices.
[    6.018972] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.0: OTP Boot status 80000000 error
[    6.031984] cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.0 failed with error -5
[    6.039965] cs35l41-hda spi0-CSC3551:00-cs35l41-hda.1: OTP Boot status 80000000 error
[    6.053183] cs35l41-hda: probe of spi0-CSC3551:00-cs35l41-hda.1 failed with error -5

My patch and SPI3 info - https://gist.github.com/rmuhamedgaliev/e0886c86061e0ee99390f9044640c1de

My Setup - ROG Strix SCAR 18 G834JYR_G834JYR - 6.8.7-201.fsync.fc39.x86_64 Nobara 39

@RasAlhague
Copy link

Updated my ASUS Zenbook UX6404VV to Ubuntu 24.04 (which comes with 6.8.0 kernel) and sound works well now. (I did not apply any patches before)
My BIOS is v304

@DeltaNeverUsed
Copy link

I still get no audio on 6.8.8 and the previous solution I used

hda-verb /dev/snd/hwC0D0 0x20 0x500 0x1b
hda-verb /dev/snd/hwC0D0 0x20 0x477 0x4a4b
hda-verb /dev/snd/hwC0D0 0x20 0x500 0xf
hda-verb /dev/snd/hwC0D0 0x20 0x477 0x74

doesn't work on any version higher than 6.6.10 on my ASUS Zenbook UX582L

@bkonkle
Copy link

bkonkle commented May 1, 2024

It works out-of-the-box for me in Ubuntu 24.04 on my ROG Strix G814JZ! 🚀

@Oless-N
Copy link

Oless-N commented May 8, 2024

hello guys!! I need help with a problem: asus rog zephyrus g16 2024 gu605m: low-level sound.
Linux user-GU605MI 6.8.8-060808-generic #202404271536 SMP PREEMPT_DYNAMIC Sat Apr 27 15:54:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux Ubuntu 24.04
journalctl -b -g CSC3556 --output short-monotonic
[ 2.373898] user-GU605MI kernel: Serial bus multi instantiate pseudo device driver CSC3556:00: Instantiated 2 SPI devices.
[ 2.484345] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.0: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
[ 2.493213] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.1: Reset GPIO busy, assume shared reset
[ 2.500317] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.1: Cirrus Logic CS35L56 Rev B0 OTP3 fw:3.4.4 (patched=0)
[ 6122.443562] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.0: .bin file required but not found
[ 6122.443566] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.0: PM: dpm_run_callback(): cs35l56_hda_system_resume+0x0/0xd0 [snd_hda_scodec_cs35l56] returns -2
[ 6122.443583] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.0: PM: failed to resume: error -2
[ 6122.456528] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.1: .bin file required but not found
[ 6122.456532] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.1: PM: dpm_run_callback(): cs35l56_hda_system_resume+0x0/0xd0 [snd_hda_scodec_cs35l56] returns -2
[ 6122.456544] user-GU605MI kernel: cs35l56-hda spi0-CSC3556:00-cs35l56-hda.1: PM: failed to resume: error -2

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