Bug 215021

Summary: HP Probook Mute volume + mic LED indicators REGRESSION in 5.18
Product: Drivers Reporter: coronagraph (antintin0)
Component: Sound(ALSA)Assignee: Jaroslav Kysela (perex)
Status: REOPENED ---    
Severity: normal CC: antintin0, tiwai
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.15.2 & regression in 5.18 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: alsa-info
Fix patch

Description coronagraph 2021-11-14 21:51:19 UTC
Created attachment 299569 [details]
alsa-info

Tested on kernel 5.13 and 5.15.2 on HP Probook x360 435 g7

Description: 
My laptop has both a mute volume & a mute mic button with LED indicators in the top row of my keyboard. Pressing them mutes volume/mic as expected, but the LED indicators do not work. My audio codec is Realtek ALC236.

How reproducible:
Always occurs

Steps to Reproduce:
1. Press mute mic or mute volume key 

Actual results:
Mic / Volume get toggled on key press, but LED indicators do not

Expected results:
LED toggles along with mute state in software to indicate whether mute is on/off

Additional info:
I'm very much a noob at linux, so if anyone can help please be specific on what I should do or what the timeline for a kernel fix could look like (I assume this issue isn't very complicated to fix)

I tried following this: https://wiki.archlinux.org/title/Laptop#Audio_mute_LED
Theres nothing specific for ALC236 but I tried pretty much all the relevant parameters for the snd-hda-intel module option "model" under "ALC22x/23x/25x/269/27x/28x/29x (and vendor-specific ALC3xxx models)" and none worked.

Alsa-info is attached

I found some patches mentioning ALC236 in the links below, but they all also reference specific HP Probook models (mine not included): 
https://patchwork.kernel.org/project/alsa-devel/patch/20210701091417.9696-1-andy.chi@canonical.com/
https://mailman.alsa-project.org/pipermail/alsa-devel/2021-November/192225.html
Comment 1 Takashi Iwai 2021-11-16 14:08:32 UTC
First off, please drop your module configuration for snd-hda-intel (model=MODEL position_fix=3).  Those are no right setup.

On 5.15.x kernel, try to set the following (e.g. create /etc/modprobe.d/60-hda.conf containing the following line):

options snd-hda-intel model=,103c:877d

Note that the comma after equal sign is no typo, it indicates the value for the secondary card.

The option above will make the onboard audio as if it's equivalent with another HP model with 103c:877d.  If this doesn't work well, try 103c:87e5 instead.

The option above would work only on 5.15 or later, BTW.
Comment 2 coronagraph 2021-11-16 15:58:44 UTC
(In reply to Takashi Iwai from comment #1)
> First off, please drop your module configuration for snd-hda-intel
> (model=MODEL position_fix=3).  Those are no right setup.
> 
> On 5.15.x kernel, try to set the following (e.g. create
> /etc/modprobe.d/60-hda.conf containing the following line):
> 
> options snd-hda-intel model=,103c:877d
> 
> Note that the comma after equal sign is no typo, it indicates the value for
> the secondary card.
> 
> The option above will make the onboard audio as if it's equivalent with
> another HP model with 103c:877d.  If this doesn't work well, try 103c:87e5
> instead.
> 
> The option above would work only on 5.15 or later, BTW.

Unfortunately i tried both those module options (,103c:877d & 103c:87e5) on kernel 5.15.2 and neither worked. I also tried ,103c:8735 because that seems to be the specific subsystem ID for my card. 
Also, I forgot exactly which commands I ran, but I saw another thread where it was suggested to run some hda-verb commands to manually turn on the LEDs. Those did not do anything either.
Comment 3 coronagraph 2021-11-17 02:35:24 UTC
(In reply to coronagraph from comment #2)
> (In reply to Takashi Iwai from comment #1)
> > First off, please drop your module configuration for snd-hda-intel
> > (model=MODEL position_fix=3).  Those are no right setup.
> > 
> > On 5.15.x kernel, try to set the following (e.g. create
> > /etc/modprobe.d/60-hda.conf containing the following line):
> > 
> > options snd-hda-intel model=,103c:877d
> > 
> > Note that the comma after equal sign is no typo, it indicates the value for
> > the secondary card.
> > 
> > The option above will make the onboard audio as if it's equivalent with
> > another HP model with 103c:877d.  If this doesn't work well, try 103c:87e5
> > instead.
> > 
> > The option above would work only on 5.15 or later, BTW.
> 
> Unfortunately i tried both those module options (,103c:877d & 103c:87e5) on
> kernel 5.15.2 and neither worked. I also tried ,103c:8735 because that seems
> to be the specific subsystem ID for my card. 
> Also, I forgot exactly which commands I ran, but I saw another thread where
> it was suggested to run some hda-verb commands to manually turn on the LEDs.
> Those did not do anything either.

Actually, I accidentally still had the position_fix=3 parameter set. Now the ,103:877d option makes the mute volume LED work, but not the mute mic LED. The ,103c:87e5 does not make either work.
Comment 4 Takashi Iwai 2021-11-17 07:06:06 UTC
Try 103c:8730
Comment 5 coronagraph 2021-11-17 07:46:06 UTC
(In reply to Takashi Iwai from comment #4)
> Try 103c:8730

Thank you, that worked!
Comment 6 Takashi Iwai 2021-11-17 07:57:09 UTC
Do both mute and mic-mute LEDs work with that id?  Then I can create a simple quirk patch to map with that.
Comment 7 coronagraph 2021-11-18 03:28:46 UTC
(In reply to Takashi Iwai from comment #6)
> Do both mute and mic-mute LEDs work with that id?  Then I can create a
> simple quirk patch to map with that.

Yes, both the mute and mic-mute LEDs work with ,103c:8730
Comment 8 Takashi Iwai 2021-11-18 07:15:05 UTC
OK, the fix patch is below.  I'll submit it to upstream.
Comment 9 Takashi Iwai 2021-11-18 07:15:51 UTC
Created attachment 299627 [details]
Fix patch
Comment 10 coronagraph 2022-06-29 05:53:54 UTC
(In reply to Takashi Iwai from comment #9)
> Created attachment 299627 [details]
> Fix patch

There seems to be a regression in the 5.18 kernel versions. The volume LED works now, but the mic mute LED does nothing.
Comment 11 coronagraph 2022-06-30 06:14:02 UTC
(In reply to Takashi Iwai from comment #9)
> Created attachment 299627 [details]
> Fix patch

I tried all the options (877d, 87e5, 8730) again by making a conf file in /etc/modprobe.d. Like before, 877d makes the volume mute LED work but not that mic mute one, and 87e5 breaks both. Looks like something changed with 8730, which used to make both LEDS work but now only activates the volume mute LED.