From: Dawn Gardner dawn.auroali@gmail.com
[ Upstream commit 2a786348004b34c5f61235d51c40c1c718b1f8f9 ]
This laptop uses the ALC285 codec, fixed by enabling the ALC285_FIXUP_HP_MUTE_LED quirk
Signed-off-by: Dawn Gardner dawn.auroali@gmail.com Link: https://patch.msgid.link/20251016184218.31508-3-dawn.auroali@gmail.com Signed-off-by: Takashi Iwai tiwai@suse.de Signed-off-by: Sasha Levin sashal@kernel.org ---
LLM Generated explanations, may be completely bogus:
Based on my comprehensive analysis using semantic code analysis tools and repository examination, here is my determination:
## **Backport Status: YES**
### Detailed Analysis:
#### 1. **Semantic Code Analysis Performed**
**Tools Used:** - `mcp__semcode__find_function`: Located `alc285_fixup_hp_mute_led` (sound/hda/codecs/realtek/alc269.c:1621-1626) - `mcp__semcode__find_callers`: Verified no direct function callers (called indirectly via HDA fixup framework) - `Grep`: Analyzed quirk table structure and fixup definitions - `git log`: Examined commit history and similar patches
**Key Findings:** - The fixup function `alc285_fixup_hp_mute_led` is a simple wrapper that calls: - `alc285_fixup_hp_mute_led_coefbit()` - Sets mute LED coefficients (idx=0x0b, mask/on=1<<3, off=0) - `alc285_fixup_hp_coef_micmute_led()` - Sets micmute LED coefficients (idx=0x19, mask/on=1<<13, off=0) - Both functions only configure hardware-specific parameters during `HDA_FIXUP_ACT_PRE_PROBE` action - No behavioral changes, no new code paths, just hardware initialization
#### 2. **Code Changes Analysis**
**What Changed:** ```c + SND_PCI_QUIRK(0x103c, 0x8603, "HP Omen 17-cb0xxx", ALC285_FIXUP_HP_MUTE_LED), ```
**Specifics:** - Single line addition to `alc269_fixup_tbl[]` at sound/hda/codecs/realtek/alc269.c:6400 - Adds PCI subsystem ID (0x103c, 0x8603) mapping for HP Omen 17-cb0xxx - Uses existing fixup `ALC285_FIXUP_HP_MUTE_LED` (already defined at line 3622) - Verified PCI ID 0x8603 is unique - no conflicts in codebase
#### 3. **Impact Scope Analysis**
**User Impact:** - Fixes broken mute LED functionality on HP Omen 17-cb0xxx laptops - Only affects devices with exact PCI ID match (0x103c, 0x8603) - Zero impact on other hardware - quirk table entries are device- specific
**Dependency Analysis:** - No new dependencies - Uses existing, well-tested fixup infrastructure - No changes to function signatures or data structures
#### 4. **Stable Tree Compliance Evidence**
**Pattern Analysis:** Found multiple identical commits that were explicitly tagged for stable:
1. **d33c3471047fc** - "Fix mute led for HP Laptop 15-dw4xx" - Tagged `Cc: stable@vger.kernel.org` 2. **956048a3cd9d2** - "Fix mute LED for HP Victus 16-s0xxx" - Tagged `Cc: stable@vger.kernel.org` 3. **bd7814a4c0fd8** - "Fix mute LED for HP Victus 16-r1xxx" (implied stable) 4. **a9dec0963187d** - "Fix mute LED for HP Victus 16-d1xxx" (implied stable)
All follow identical pattern: single-line quirk table addition for HP laptops.
#### 5. **Risk Assessment**
**Risk Level: MINIMAL** - ✅ Bug fix (non-functional mute LED) - ✅ Not a new feature - ✅ No architectural changes - ✅ Extremely contained scope (single hardware model) - ✅ No performance implications - ✅ No security implications - ✅ Cannot cause regressions on other hardware - ✅ Well-established code pattern
**Subsystem:** ALSA HDA - Non-critical, hardware-specific audio driver
#### 6. **Why This Should Be Backported**
1. **Fixes User-Visible Bug**: Mute LED doesn't work on specific laptop model 2. **Follows Established Pattern**: Identical commits are routinely backported to stable 3. **Zero Regression Risk**: Quirk only applies to exact PCI ID match 4. **Stable Tree Rules Compliant**: - Bug fix ✓ - Small and contained ✓ - Obvious and correct ✓ - Tested (implied by author) ✓ 5. **Author Note**: Although not explicitly tagged for stable, the commit message clearly states "Fix" indicating bug fix intent
### Conclusion
This commit is an ideal candidate for stable tree backporting. It's a minimal, safe, hardware-specific fix that follows the exact pattern of dozens of similar commits that have been successfully backported. The lack of explicit stable tag appears to be an oversight rather than intentional exclusion.
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 8fb1a5c6ff6df..0f8170e1194e2 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -6390,6 +6390,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x854a, "HP EliteBook 830 G6", ALC285_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x85c6, "HP Pavilion x360 Convertible 14-dy1xxx", ALC295_FIXUP_HP_MUTE_LED_COEFBIT11), SND_PCI_QUIRK(0x103c, 0x85de, "HP Envy x360 13-ar0xxx", ALC285_FIXUP_HP_ENVY_X360), + SND_PCI_QUIRK(0x103c, 0x8603, "HP Omen 17-cb0xxx", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x860c, "HP ZBook 17 G6", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x860f, "HP ZBook 15 G6", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT),