Re: [PATCH] ALSA: hda/cs35l41: Add DSD property override for ASUS UX3405CA

Takashi Iwai <[email protected]>
Newsgroups gmane.linux.alsa.devel
Message-ID <[email protected]>
On Sun, 02 Aug 2026 01:00:22 +0200,
Gemayel Lira wrote:
> 
> 
> The ASUS Zenbook 14 UX3405CA (SSID 1043:1A63) has internal CS35L41
> amplifiers, but was using the missing_speaker_id_gpio2 fallback entry.
> This caused the right speaker channel to bind with VSPK voltage switch
> disabled
> (VSPK: 0), leading to a volume drop ~1 second after starting playback due to
> power imbalance protection.
> 
> Add an explicit entry for 10431A63 in cs35l41_config_table with internal boost
> type, 4500mA peak current, and switch its model mapping to generic_dsd_config.
> This resolves the volume drop issue and enables proper internal boost for both
> channels.
> 
> Pull Request on SOF Project: https://github.com/thesofproject/linux/pull/5866
> 
> Signed-off-by: Gemayel Lira <[email protected]>
> 
> From 10431A6300000000000000000000000000000000 Mon Sep 17 00:00:00 2001
> From: Gemayel Lira <[email protected]>
> Date: Sat, 1 Aug 2026 19:15:00 -0300
> Subject: [PATCH] ALSA: hda/cs35l41: Add DSD property override for ASUS UX3405CA
> 
> The ASUS Zenbook 14 UX3405CA (SSID 1043:1A63) has internal CS35L41
> amplifiers, but was using the `missing_speaker_id_gpio2` fallback entry.
> This caused the right speaker channel to bind with VSPK voltage switch disabled
> (VSPK: 0), leading to a volume drop ~1 second after starting playback due to
> power imbalance protection.
> 
> Add an explicit entry for 10431A63 in cs35l41_config_table with internal boost
> type, 4500mA peak current, and switch its model mapping to `generic_dsd_config`.
> This resolves the volume drop issue and enables proper internal boost for both channels.
> 
> Signed-off-by: Gemayel Lira <[email protected]>

Stefan, is this also covered in your side?
Or shall we just take this?


BTW, Gemayel, at the next time, please submit to
[email protected].  It's the place for kernel patches, while
alsa-devel ML is mostly for only user-space stuff.


thanks,

Takashi


> ---
>  sound/hda/codecs/side-codecs/cs35l41_hda_property.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/sound/hda/codecs/side-codecs/cs35l41_hda_property.c b/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
> index 416d7bf..1cf12f8 100644
> --- a/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
> +++ b/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
> @@ -104,6 +104,7 @@ static const struct cs35l41_config cs35l41_config_table[] = {
>  	{ "104317F3", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 1000, 4500, 24 },
>  	{ "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 },
> +	{ "10431A63", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, -1, 2, -1, 1000, 4500, 24 },
>  	{ "10431A83", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0, 1, -1, 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 },
> @@ -530,7 +531,7 @@ static const struct cs35l41_prop_model cs35l41_prop_model_table[] = {
>  	{ "CSC3551", "104317F3", generic_dsd_config },
>  	{ "CSC3551", "10431863", generic_dsd_config },
>  	{ "CSC3551", "104318D3", generic_dsd_config },
> -	{ "CSC3551", "10431A63", missing_speaker_id_gpio2 },
> +	{ "CSC3551", "10431A63", generic_dsd_config },
>  	{ "CSC3551", "10431A83", generic_dsd_config },
>  	{ "CSC3551", "10431B93", generic_dsd_config },
>  	{ "CSC3551", "10431C9F", generic_dsd_config },
> -- 
> 2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.