[PATCH] Make snd-hda-intel work for newest HP laptop models with Realtek codec ALC245 and CSC3551 chipset
Hardware: HP laptop models - HP Dragonfly Folio 13.5 inch - HP Envy x360 15-ew0xxx - HP Envy 16-h0xxx
all with codec Realtek ALC245 (ALC287 variant) and Cirrus Logic Smart Amplifier chipset CSC3551) codec vendor_id: 0x10ec0245, subsystem_id: 0x103c8a29, revision_id:0x100001
Kernel version: 6.2+
Output of alsa-info.sh attached (with the patch applied)
Problem description: The CSC3551 chipset does not get initialized correctly in aforementioned laptop models. While the rest of snd-hda-intel recognizes the hardware correctly, the smart amplifier does not get initialized so that the built-in loudspeakers do not work. The patches originate from discussions and tests under https://github.com/xoocoon/hp-15-ew0xxx-snd-fix.
Patches: ----------------------------------------------------------------------------
--- sound/pci/hda/cs35l41_hda.c.orig 2023-07-22 15:43:12.016044919 +0200 +++ sound/pci/hda/cs35l41_hda.c 2023-07-22 16:10:23.937995251 +0200 @@ -1244,6 +1244,10 @@ hw_cfg->bst_type = CS35L41_EXT_BOOST; hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; hw_cfg->gpio1.valid = true; + } else if (strncmp(hid, "CSC3551", 7) == 0) { + hw_cfg->bst_type = CS35L41_EXT_BOOST; + hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; + hw_cfg->gpio1.valid = true; } else { /* * Note: CLSA010(0/1) are special cases which use a slightly different design.
--- sound/pci/hda/patch_realtek.c.orig 2023-07-22 15:43:58.711204631 +0200 +++ sound/pci/hda/patch_realtek.c 2023-07-22 15:51:23.224124227 +0200 @@ -9452,6 +9452,9 @@ SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x8a06, "HP Dragonfly Folio 13.5 inch G3 2-in-1 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2), + SND_PCI_QUIRK(0x103c, 0x8a29, "HP Envy x360 15-ew0xxx", ALC287_FIXUP_CS35L41_I2C_2), + SND_PCI_QUIRK(0x103c, 0x8a2c, "HP Envy 16-h0xxx", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x103c, 0x8a78, "HP Dev One", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x103c, 0x8aa0, "HP ProBook 440 G9 (MB 8A9E)", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8aa3, "HP ProBook 450 G9 (MB 8AA1)", ALC236_FIXUP_HP_GPIO_LED),
--------------------------------------------------------------------------
Unresolved issues: The LED indicating muted sound on the laptop keyboard does not work. The same holds for the LED indicating a deactivated microphone. These issues are not addressed by the patches.
On Sat, 22 Jul 2023 16:44:01 +0200, Matthias Ostermaier wrote:
Hardware: HP laptop models
- HP Dragonfly Folio 13.5 inch
- HP Envy x360 15-ew0xxx
- HP Envy 16-h0xxx
all with codec Realtek ALC245 (ALC287 variant) and Cirrus Logic Smart Amplifier chipset CSC3551) codec vendor_id: 0x10ec0245, subsystem_id: 0x103c8a29, revision_id:0x100001
Kernel version: 6.2+
Output of alsa-info.sh attached (with the patch applied)
Problem description: The CSC3551 chipset does not get initialized correctly in aforementioned laptop models. While the rest of snd-hda-intel recognizes the hardware correctly, the smart amplifier does not get initialized so that the built-in loudspeakers do not work. The patches originate from discussions and tests under https://github.com/xoocoon/hp-15-ew0xxx-snd-fix.
Patches:
--- sound/pci/hda/cs35l41_hda.c.orig 2023-07-22 15:43:12.016044919 +0200 +++ sound/pci/hda/cs35l41_hda.c 2023-07-22 16:10:23.937995251 +0200 @@ -1244,6 +1244,10 @@ hw_cfg->bst_type = CS35L41_EXT_BOOST; hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; hw_cfg->gpio1.valid = true; + } else if (strncmp(hid, "CSC3551", 7) == 0) { + hw_cfg->bst_type = CS35L41_EXT_BOOST; + hw_cfg->gpio1.func = CS35l41_VSPK_SWITCH; + hw_cfg->gpio1.valid = true; } else { /* * Note: CLSA010(0/1) are special cases which use a slightly different design.
Thanks for the patch, but note that this change can't be taken. It's dangerous and may burn speakers on other machines that don't use this configuration.
For now, those info relies on the BIOS ACPI setup with _DSD entry, and vendors should fix it with BIOS updates.
There have been already discussions how to deal with vendors who don't cooperate well, but the fix must be in a different form to be applied more safely. For example, see threads at: https://lore.kernel.org/all/SY4P282MB18352D4FD343A2E8290EA9BEE037A@SY4P282MB...
--- sound/pci/hda/patch_realtek.c.orig 2023-07-22 15:43:58.711204631 +0200 +++ sound/pci/hda/patch_realtek.c 2023-07-22 15:51:23.224124227 +0200 @@ -9452,6 +9452,9 @@ SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), SND_PCI_QUIRK(0x103c, 0x89d3, "HP EliteBook 645 G9 (MB 89D2)", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x8a06, "HP Dragonfly Folio 13.5 inch G3 2-in-1 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2), + SND_PCI_QUIRK(0x103c, 0x8a29, "HP Envy x360 15-ew0xxx", ALC287_FIXUP_CS35L41_I2C_2), + SND_PCI_QUIRK(0x103c, 0x8a2c, "HP Envy 16-h0xxx",
Those quirk entries look OK, though.
Adding Cirrus people to Cc for further checking.
thanks,
Takashi
participants (2)
-
Matthias Ostermaier
-
Takashi Iwai