From: Ruslan Krupitsa krupitsarus@outlook.com
[ Upstream commit 9ed7a28225af02b74f61e7880d460db49db83758 ]
HP Laptop 15s-eq1xxx with ALC236 codec does not enable the mute LED automatically. This patch adds a quirk entry for subsystem ID 0x8706 using the ALC236_FIXUP_HP_MUTE_LED_COEFBIT2 fixup, enabling correct mute LED behavior.
Signed-off-by: Ruslan Krupitsa krupitsarus@outlook.com Link: https://patch.msgid.link/AS8P194MB112895B8EC2D87D53A876085BBBAA@AS8P194MB112... Signed-off-by: Takashi Iwai tiwai@suse.de Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
## Commit Analysis: ALSA: hda/realtek: add HP Laptop 15s-eq1xxx mute LED quirk
### 1. COMMIT MESSAGE ANALYSIS
The commit adds a hardware quirk for the HP Laptop 15s-eq1xxx with ALC236 codec. The mute LED does not function correctly without this quirk entry. The fix uses an existing fixup (`ALC236_FIXUP_HP_MUTE_LED_COEFBIT2`) that is already applied to several other HP laptops.
Keywords: "quirk" - indicates hardware-specific workaround.
### 2. CODE CHANGE ANALYSIS
The change is a **single line addition** to the quirk table:
```c SND_PCI_QUIRK(0x103c, 0x8706, "HP Laptop 15s-eq1xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), ```
This adds: - **Vendor ID**: 0x103c (HP) - **Subsystem ID**: 0x8706 (specific to this laptop model) - **Fixup**: `ALC236_FIXUP_HP_MUTE_LED_COEFBIT2` - an existing, well- tested fixup
Looking at the surrounding code, the same fixup is already used by multiple other HP laptops: - HP 15-db0403ng (0x84ae) - HP Laptop 15-da3001TU (0x86c1) - HP Laptop 14-fq0xxx (0x87b7)
### 3. CLASSIFICATION
This is a **hardware quirk/workaround** - one of the explicit exception categories that ARE allowed in stable trees: - It's a hardware-specific quirk for a device that doesn't work correctly without it - The fixup mechanism already exists and is proven on other devices - This is NOT a new feature - it's enabling existing functionality for a specific PCI subsystem ID
### 4. SCOPE AND RISK ASSESSMENT
| Factor | Assessment | |--------|------------| | Lines changed | 1 | | Files touched | 1 | | Complexity | Trivial - table entry only | | Risk | **Extremely low** |
The change: - Only affects systems with the exact subsystem ID 0x8706 - Uses a pre-existing, battle-tested fixup - Cannot break any other systems - Follows an established, well-understood pattern
### 5. USER IMPACT
**Affected users**: Owners of HP Laptop 15s-eq1xxx **Bug severity**: User-visible functionality issue (mute LED doesn't work) **Impact without fix**: The mute LED doesn't indicate mute state, which is a usability problem
While not a crash or data corruption issue, non-working hardware indicators are legitimate bugs that affect real users.
### 6. STABILITY INDICATORS
- Signed off by Takashi Iwai (ALSA subsystem maintainer) - Uses an identical pattern to dozens of existing quirk entries - The `ALC236_FIXUP_HP_MUTE_LED_COEFBIT2` fixup has been in the kernel and used by other devices for years
### 7. DEPENDENCY CHECK
- **No dependencies** on other commits - The quirk table (`alc269_fixup_tbl[]`) exists in all stable kernels - The `ALC236_FIXUP_HP_MUTE_LED_COEFBIT2` fixup enum value exists in stable kernels - This patch will apply cleanly to any stable tree that has this file
### CONCLUSION
This commit is a textbook example of what should be backported to stable:
1. **Hardware quirk addition** - explicitly allowed under stable rules 2. **Single line change** - minimal code, minimal risk 3. **Uses existing infrastructure** - no new code paths, just a table entry 4. **Precisely scoped** - only affects one specific hardware model (subsystem ID match) 5. **Cannot cause regressions** - doesn't touch any code paths for other devices 6. **Fixes real user-visible issue** - mute LED not working 7. **Well-established pattern** - this exact type of change is routinely backported
The fix is small, surgical, and meets all stable kernel criteria for hardware quirk additions.
**YES**
sound/hda/codecs/realtek/alc269.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/sound/hda/codecs/realtek/alc269.c b/sound/hda/codecs/realtek/alc269.c index 705d6acc204cf..16c2314839c38 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -6427,6 +6427,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x863e, "HP Spectre x360 15-df1xxx", ALC285_FIXUP_HP_SPECTRE_X360_DF1), SND_PCI_QUIRK(0x103c, 0x86e8, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), SND_PCI_QUIRK(0x103c, 0x86f9, "HP Spectre x360 13-aw0xxx", ALC285_FIXUP_HP_SPECTRE_X360_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x8706, "HP Laptop 15s-eq1xxx", ALC236_FIXUP_HP_MUTE_LED_COEFBIT2), SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x8720, "HP EliteBook x360 1040 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED),