From: "Stefan Binding \(Opensource\)" <sbinding@opensource.cirrus.com>
To: "'Takashi Iwai'" <tiwai@suse.de>, "'Yufan'" <kuangfan955@gmail.com>
Cc: <linux-sound@vger.kernel.org>, <tiwai@suse.com>,
<david.rhodes@cirrus.com>, <rf@opensource.cirrus.com>,
<perex@perex.cz>, <patches@opensource.cirrus.com>,
<linux-kernel@vger.kernel.org>
Subject: RE: [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx
Date: Thu, 16 Jul 2026 14:17:25 +0100 [thread overview]
Message-ID: <003901dd1525$71ebe080$55c3a180$@opensource.cirrus.com> (raw)
In-Reply-To: <87ik6fut08.wl-tiwai@suse.de>
Hi Takashi,
We should be able to add entries for this laptop and others in
cs35l41_hda_property.c to override all the missing properties from ACPI.
The ACPI in those laptops is malformed, which means the entire _DSD for the
CS35L41 is corrupted, and appears to be missing from the kernels
perspective.
In most cases the malformed ACPI is also not correct for that laptop, so its
not a case of taking the settings from the ACPI on the laptop itself and
putting them in cs35l41_hda_property.c.
However, we should be able to determine these settings ourselves, but end
users will not be able to.
We are actively looking at doing so for this laptop, and several others.
Thanks,
Stefan
> -----Original Message-----
> From: Takashi Iwai <tiwai@suse.de>
> Sent: Thursday, July 16, 2026 11:30 AM
> To: Yufan <kuangfan955@gmail.com>
> Cc: sbinding@opensource.cirrus.com; linux-sound@vger.kernel.org;
> tiwai@suse.com; david.rhodes@cirrus.com; rf@opensource.cirrus.com;
> perex@perex.cz; patches@opensource.cirrus.com;
linux-kernel@vger.kernel.org
> Subject: Re: [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-
> bh0xxx
>
> On Thu, 16 Jul 2026 12:17:08 +0200,
> Yufan wrote:
> >
> > From: Yufan Kuang <kuangfan955@gmail.com>
> >
> > The HP OmniBook 7 Laptop 16-bh0xxx (SSID 103C8E60) has two CS35L41
> > amplifiers connected via I2C with internal boost, but its _DSD
> > provides cirrus,dev-index as a Package while the driver expects
> > per-device scalar values, causing the probe to fail with -EINVAL,
> > leaving only the left speaker working.
> >
> > Add the SSID to the configuration and prop-model override tables.
> >
> > Tested on a HP OmniBook 7 Laptop 16-bh0xxx (BIOS F.12) with CachyOS
> > 7.1.3-2; speaker-test confirms both channels work correctly.
> >
> > Signed-off-by: Yufan Kuang <kuangfan955@gmail.com>
> > Assisted-by: Copilot:DeepSeek-V4-Pro
>
> The very same change has been already submitted (maybe multiple times),
e.g.
> https://lore.kernel.org/20260709214414.8461-1-skbotnl@disroot.org
>
> The problem is known, and it's basically an issue of the firmware.
> But obviously we need to address *something* in the driver side.
>
> Cirrus people -- do you have ideas to fix those HP laptops?
>
> If it's not feasible in a short term, maybe it'd be better to take those
quirk
> additions; although they aren't 100% correct, but they do work somehow in
a
> certain level.
>
>
> thanks,
>
> Takashi
>
>
> > ---
> > 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 416d7bf3e289..e14a87336478 100644
> > --- a/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
> > +++ b/sound/hda/codecs/side-codecs/cs35l41_hda_property.c
> > @@ -85,6 +85,7 @@ static const struct cs35l41_config
cs35l41_config_table[]
> = {
> > { "103C8C51", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
1,
> -1, 1000, 4100, 24 },
> > { "103C8CDD", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
1,
> -1, 1000, 4100, 24 },
> > { "103C8CDE", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
> > 1, -1, 1000, 3900, 24 },
> > + { "103C8E60", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
> > +1, -1, 1000, 4500, 24 },
> > { "104312AF", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 1,
2,
> 0, 1000, 4500, 24 },
> > { "10431433", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
1,
> -1, 1000, 4500, 24 },
> > { "10431463", 2, INTERNAL, { CS35L41_LEFT, CS35L41_RIGHT, 0, 0 }, 0,
> > 1, -1, 1000, 4500, 24 }, @@ -511,6 +512,7 @@ static const struct
> cs35l41_prop_model cs35l41_prop_model_table[] = {
> > { "CSC3551", "103C8C6A", hp_i2c_int_2amp_dual_spkid },
> > { "CSC3551", "103C8CDD", generic_dsd_config },
> > { "CSC3551", "103C8CDE", generic_dsd_config },
> > + { "CSC3551", "103C8E60", generic_dsd_config },
> > { "CSC3551", "104312AF", generic_dsd_config },
> > { "CSC3551", "10431433", generic_dsd_config },
> > { "CSC3551", "10431463", generic_dsd_config },
> > --
> > 2.55.0
> >
next prev parent reply other threads:[~2026-07-16 13:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-16 10:17 [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx Yufan
2026-07-16 10:29 ` Takashi Iwai
2026-07-16 13:17 ` Stefan Binding (Opensource) [this message]
[not found] ` <87h6e8fk7n.wl-tiwai@suse.de>
2026-07-16 11:33 ` Yufan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='003901dd1525$71ebe080$55c3a180$@opensource.cirrus.com' \
--to=sbinding@opensource.cirrus.com \
--cc=david.rhodes@cirrus.com \
--cc=kuangfan955@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=perex@perex.cz \
--cc=rf@opensource.cirrus.com \
--cc=tiwai@suse.com \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox