* [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx
@ 2026-07-16 10:17 Yufan
2026-07-16 10:29 ` Takashi Iwai
[not found] ` <87h6e8fk7n.wl-tiwai@suse.de>
0 siblings, 2 replies; 4+ messages in thread
From: Yufan @ 2026-07-16 10:17 UTC (permalink / raw)
To: linux-sound, tiwai
Cc: david.rhodes, rf, perex, patches, linux-kernel, Yufan Kuang
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
---
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
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx 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) [not found] ` <87h6e8fk7n.wl-tiwai@suse.de> 1 sibling, 1 reply; 4+ messages in thread From: Takashi Iwai @ 2026-07-16 10:29 UTC (permalink / raw) To: Yufan Cc: sbinding, linux-sound, tiwai, david.rhodes, rf, perex, patches, linux-kernel 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 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx 2026-07-16 10:29 ` Takashi Iwai @ 2026-07-16 13:17 ` Stefan Binding (Opensource) 0 siblings, 0 replies; 4+ messages in thread From: Stefan Binding (Opensource) @ 2026-07-16 13:17 UTC (permalink / raw) To: 'Takashi Iwai', 'Yufan' Cc: linux-sound, tiwai, david.rhodes, rf, perex, patches, linux-kernel 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 > > ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <87h6e8fk7n.wl-tiwai@suse.de>]
* Re: [PATCH] ALSA: hda: cs35l41: Fix Speakers on HP OmniBook 7 16-bh0xxx [not found] ` <87h6e8fk7n.wl-tiwai@suse.de> @ 2026-07-16 11:33 ` Yufan 0 siblings, 0 replies; 4+ messages in thread From: Yufan @ 2026-07-16 11:33 UTC (permalink / raw) To: linux-sound, tiwai Cc: david.rhodes, rf, perex, patches, linux-kernel, Yufan Kuang From: Yufan Kuang <kuangfan955@gmail.com> Hi Takashi and all, Thank you for the review. I missed Sven's earlier submission — I only searched the source tree and commit history for the SSID, not the mailing list. Since his v2 patch is identical and predates mine, please drop my submission. I have tested the identical quirk on my HP OmniBook 7 (BIOS F.12) and both speakers work correctly. If it helps, you can add: Tested-by: Yufan Kuang <kuangfan955@gmail.com> to Sven's patch. Thanks, Yufan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-16 13:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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)
[not found] ` <87h6e8fk7n.wl-tiwai@suse.de>
2026-07-16 11:33 ` Yufan
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox