Bug 216206 - CS35L41 low volume sound on HP EliteBook 865 16 inch G9
Summary: CS35L41 low volume sound on HP EliteBook 865 16 inch G9
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Sound(ALSA) (show other bugs)
Hardware: AMD Linux
: P1 normal
Assignee: Jaroslav Kysela
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-05 09:50 UTC by Xing Li
Modified: 2024-05-17 14:24 UTC (History)
4 users (show)

See Also:
Kernel Version: 6.0.0-0.rc3.25.fc38.x86_64
Subsystem:
Regression: No
Bisected commit-id:


Attachments
lspci (78.03 KB, text/plain)
2022-07-05 09:50 UTC, Xing Li
Details

Description Xing Li 2022-07-05 09:50:22 UTC
Created attachment 301335 [details]
lspci

As compared to Windows 11, the sound from internal speakers is about 1/4 the volume at max.

According to spec https://support.hp.com/us-en/document/ish_6107160-6107216-16, the system contains 2x speakers + "Audio by Bang & Olufsen". The current CS35L41 driver/codec not working correctly with exteremely low volume. My guess it is not correctly routing sound to the internal amplifier/preamp.

OS: Fedora Rawhide (37)
Hardware: HP HP EliteBook 865 16 inch G9 Notebook PC/8990, BIOS U82 Ver. 01.01.07 04/22/2022
Platform/CPU: AMD 6850HS

Also Info log: http://alsa-project.org/db/?f=c37fb3dba48963aa2a3973cb6c166dd114eb1ee8


[   26.580726] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: Cirrus Logic CS35L41 (35a40), Revision: B2
[   26.582121] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Reset line busy, assuming shared reset
[   26.634811] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: Cirrus Logic CS35L41 (35a40), Revision: B2
[   26.921366] snd_hda_intel 0000:63:00.1: enabling device (0000 -> 0002)
[   26.921978] snd_hda_intel 0000:63:00.6: enabling device (0000 -> 0002)
[   27.017703] snd_hda_intel 0000:63:00.1: bound 0000:63:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[   27.032465] snd_hda_codec_realtek hdaudioC1D0: bound i2c-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   27.032472] snd_hda_codec_realtek hdaudioC1D0: bound i2c-CSC3551:00-cs35l41-hda.1 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   27.035021] snd_hda_codec_realtek hdaudioC1D0: autoconfig for ALC245: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[   27.035024] snd_hda_codec_realtek hdaudioC1D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   27.035026] snd_hda_codec_realtek hdaudioC1D0:    hp_outs=0 (0x0/0x0/0x0/0x0/0x0)
[   27.035027] snd_hda_codec_realtek hdaudioC1D0:    mono: mono_out=0x0
[   27.035028] snd_hda_codec_realtek hdaudioC1D0:    inputs:
[   27.035029] snd_hda_codec_realtek hdaudioC1D0:      Mic=0x19
[   27.035031] snd_hda_codec_realtek hdaudioC1D0:      Internal Mic=0x12
Comment 1 Xing Li 2022-07-05 10:19:32 UTC
It appears cs35l41 in this system is an amplifier with a dsp. 

There are pending new drivers merges into the kernel for cs35l41. 

https://lore.kernel.org/lkml/20220630002335.366545-1-vitalyr@opensource.cirrus.com/
Comment 2 Xing Li 2022-08-31 11:59:36 UTC
Even running on latest Kernel 6.0rc3 on Fedora 37 (rawhide) did not fix this issue. 

My hw/alsa debug info:

http://alsa-project.org/db/?f=6a7039fe66fc4310f82de9f4a933268ba34d9382

Also got the following from dmesg:

[  407.695559] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: Failed to read 4 bytes from 28007e8: -121
Comment 3 Stanislav 2023-04-28 08:42:21 UTC
Looks like I have the same problem, but on Intel platform HP Envy 16.

Actually, out of the box, I have no sound from speakers at all, but even after quirk fixup patching(see my report https://bugzilla.kernel.org/show_bug.cgi?id=217381) when sound starts to work it's not load and reduced quality.
So for sure, just quirks are not enough, unfortunately.
Comment 4 Marco 2024-05-17 14:24:38 UTC
From what I'm reading here:
[   11.514431] SVM: TSC scaling supported
--
[   12.027985] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.0: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin
[   12.053529] snd_hda_codec_realtek hdaudioC1D0: bound i2c-CSC3551:00-cs35l41-hda.0 (ops cs35l41_hda_comp_ops [snd_hda_scodec_cs35l41])
[   12.055568] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: DSP1: Firmware version: 3
--
[   12.501111] cs35l41-hda i2c-CSC3551:00-cs35l41-hda.1: DSP1: spk-prot: e:\workspace\workspace\tibranch_release_playback_6.76_2\ormis\staging\default_tunings\internal\CS35L53\Fixed_Attenuation_Mono_48000_29.78.0\full\Fixed_Attenuation_Mono_48000_29.78.0_full.bin

I suspect that the issue with your laptops amps are the missing DSP firmware from the HP audio driver. That generic firmware there is loaded when a more specific one is not provided/not available, so at least you get audio. I had the same problem with a Steam Deck running on a different OS than SteamOS. Without the specific DSP tuning provided by Valve the audio was garbage compared to SteamOS. Check if before loading the default settings there is a specific error for uploading a different filename in dmesg.

If yes you need to pull down the audio driver from HP, extract it out and find your .bin firmware file that you will then need to place where the audio driver expect it.

If there is no error it might be because noone added the specific filename for your model yet in the audio driver, so someone at cirruslogic/HP should take a look and add it in.

Marco

Note You need to log in before you can comment on or make changes to this bug.