* [PATCH] ALSA: hda: cs35l41: Add DSD properties for ASUS UX582Z (1043:1a8f)
@ 2026-10-30 17:03 Slaton Christie
0 siblings, 0 replies; only message in thread
From: Slaton Christie @ 2026-10-30 17:03 UTC (permalink / raw)
To: David Rhodes, Richard Fitzgerald, Takashi Iwai
Cc: Jaroslav Kysela, linux-sound, patches, linux-kernel,
Slaton Christie, stable
The ASUS Zenbook Pro Duo 15 UX582Z with PCI SSID 1043:1a8f has two
CS35L41 amplifiers on SPI (CSC3551), but its BIOS provides no _DSD
properties for them, so the amps fail to probe and the internal
speakers are silent:
cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Failed property cirrus,dev-index: -22
cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: error -EINVAL: Platform not supported
The Realtek codec quirk for this SSID already exists
(ALC245_FIXUP_CS35L41_SPI_2), and linux-firmware already ships the
tuned cs35l41-dsp1-spk-prot-10431a8f-* files. Only the property table
entry is missing.
Add an entry using the same configuration as the sibling UX582ZS
(1043:12af): internal boost, CS/reset/speaker-ID GPIOs at indices
0/1/2, 1000nH inductor, 4500mA peak, 24uF capacitor.
Tested on a UX582Z running 7.3.0 (CachyOS) with the change built as a
DKMS module: both amps probe, load the spk-prot firmware, apply the
EFI calibration (R0=10611 / 10708) and the speakers play audio.
cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: Firmware Loaded - Type: spk-prot, Gain: 17
cs35l41-hda spi1-CSC3551:00-cs35l41-hda.0: CS35L41 Bound - SSID: 10431A8F, BST: 0, VSPK: 0, CH: L, FW EN: 1, SPKID: 0
cs35l41-hda spi1-CSC3551:00-cs35l41-hda.1: CS35L41 Bound - SSID: 10431A8F, BST: 0, VSPK: 0, CH: R, FW EN: 1, SPKID: 0
The boost values are copied from the 1043:12af entry, not taken from
ASUS or Cirrus documentation; confirmation of the boost parameters by
Cirrus would be appreciated.
The diagnosis and the patch were prepared with the help of an AI
assistant (Claude, Anthropic), from the dmesg output above and the
existing 1043:12af table entry; testing was done on real hardware by
the submitter.
Cc: stable@vger.kernel.org
---
sound/hda/codecs/side-codecs/cs35l41_hda_property.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sound/hda/codecs/side-codecs/cs35l41_hda_property.c b/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
index c50c7e6..d5a9e1d 100644
--- a/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
+++ b/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
@@ -107,6 +107,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
{ "10431863", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "104318D3", 2, EXTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 0, 0, 0 },
{ "10431A83", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
+ { "10431A8F", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "10431B93", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "10431C9F", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
{ "10431CAF", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1, 2, 0, 1000, 4500, 24 },
@@ -566,6 +567,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
{ "CSC3551", "104318D3", generic_dsd_config },
{ "CSC3551", "10431A63", missing_speaker_id_gpio2 },
{ "CSC3551", "10431A83", generic_dsd_config },
+ { "CSC3551", "10431A8F", generic_dsd_config },
{ "CSC3551", "10431B93", generic_dsd_config },
{ "CSC3551", "10431C9F", generic_dsd_config },
{ "CSC3551", "10431CAF", generic_dsd_config },
--
2.43.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-10-30 17:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-30 17:03 [PATCH] ALSA: hda: cs35l41: Add DSD properties for ASUS UX582Z (1043:1a8f) Slaton Christie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®