From: J-Donald Tournier jdtournier@gmail.com
[ Upstream commit 1386d16761c0b569efedb998f56c1ae048a086e2 ]
This laptop requires the same quirk as Lenovo Yoga9 14IAP7 for fixing the bass speaker problems.
Use HDA_CODEC_QUIRK to match on the codec SSID to avoid conflict with the Lenovo Legion Slim 7 16IRH8, which has the same PCI SSID.
Signed-off-by: J-Donald Tournier jdtournier@gmail.com Link: https://patch.msgid.link/20251018145322.39119-1-jdournier@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 tools and repository examination, here is my assessment:
## **Backport Status: YES**
## Detailed Analysis
### Semantic Tools Used: 1. **mcp__semcode__find_function**: Located the fixup function `alc287_fixup_yoga9_14iap7_bass_spk_pin` (sound/hda/codecs/realtek/alc269.c:3166-3204) 2. **mcp__semcode__find_callers**: Confirmed no direct function callers (invoked via quirk table framework) 3. **mcp__semcode__find_calls**: Identified 4 function calls within the fixup (hda_fixup_ideapad_acpi, snd_hda_apply_pincfgs, snd_hda_override_conn_list, ARRAY_SIZE) 4. **Read/Grep**: Examined quirk table structure and HDA_CODEC_QUIRK macro definition 5. **Git analysis**: Compared with similar commits and backport patterns
### Key Findings:
#### 1. **IMPACT ANALYSIS** (High Priority) - **Affected users**: Owners of Lenovo Yoga 7 2-in-1 14AKP10 laptop with non-working bass speakers - **User exposure**: Hardware-specific bug fix - bass speakers completely non-functional without this quirk - **Scope**: Isolated to single laptop model via codec SSID matching (0x17aa:0x391c) - **Similar issues**: Found commit 8d70503068510e6 fixing identical issue on Yoga Pro 7 14ASP10 - that commit **had "Cc: stable@vger.kernel.org" and was backported**
#### 2. **CODE CHANGE ANALYSIS** (Minimal Risk) - **Size**: Single line addition to quirk table (sound/hda/codecs/realtek/alc269.c:7073) - **Type**: Data-only change - adds `HDA_CODEC_QUIRK(0x17aa, 0x391c, "Lenovo Yoga 7 2-in-1 14AKP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN)` - **No new code**: Reuses existing, well-tested fixup function used by 6 other Yoga models (lines 7031, 7051, 7064, 7067, 7102, 7379) - **Semantic impact**: None - purely extends quirk matching table
#### 3. **TECHNICAL CORRECTNESS** - **Uses HDA_CODEC_QUIRK**: Matches on codec SSID instead of PCI SSID to avoid conflict with Legion Slim 7 16IRH8 (line 7073) which shares the same PCI SSID - **Proper placement**: Inserted at line 7073+ to ensure correct matching priority - **Macro definition** (sound/hda/common/hda_local.h:314-320): Sets `.match_codec_ssid = true` for precise hardware identification
#### 4. **REGRESSION RISK** (Minimal) - **Hardware isolation**: Only affects devices with exact codec SSID match - **No behavioral changes**: Existing code paths unchanged - **Dependencies**: All 4 called functions already present (verified via mcp__semcode__find_calls) - **Call graph**: No callers to the fixup function (invoked by framework, not directly)
#### 5. **BACKPORT PATTERN EVIDENCE** Found nearly identical commit that **was backported to stable**: ``` commit 8d70503068510e6080c2c649cccb154f16de26c9 ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7 14ASP10 [...] need quirk ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN to enable bass Cc: stable@vger.kernel.org ← Explicitly tagged for stable ```
Historical pattern: 38 commits to this file since 2024-01-01, many are Lenovo quirks that get backported.
#### 6. **STABLE TREE COMPLIANCE** ✅ **Bug fix**: YES - fixes broken bass speakers (user-visible hardware malfunction) ✅ **No new features**: NO - only enables existing hardware correctly ✅ **Architectural changes**: NO - single quirk table entry ✅ **Minimal risk**: YES - 1 line, hardware-specific, isolated ✅ **Well-tested code**: YES - fixup function used by 6 other models
**Only concern**: Missing explicit "Cc: stable@vger.kernel.org" tag, but this appears to be an oversight given that an identical fix pattern for a different Yoga model was tagged for stable.
### Recommendation Justification:
This commit **should be backported** because:
1. **Fixes real user bug**: Bass speakers don't work without it - verifiable hardware malfunction 2. **Extremely safe**: 1-line quirk table addition with zero code changes 3. **Proven pattern**: Identical commit type (same fixup, similar hardware) was backported successfully 4. **Perfect isolation**: Codec SSID matching ensures only target hardware affected 5. **No regression risk**: Reuses stable, tested fixup code used by multiple laptop models 6. **Follows stable rules**: Pure bug fix, no features, no architectural changes 7. **High benefit/risk ratio**: Fixes broken hardware with negligible risk
The absence of an explicit stable tag appears inconsistent with the established pattern for this type of fix and likely represents 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..a3764d71b5fcc 100644 --- a/sound/hda/codecs/realtek/alc269.c +++ b/sound/hda/codecs/realtek/alc269.c @@ -7071,6 +7071,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x38a9, "Thinkbook 16P", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x38ab, "Thinkbook 16P", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD), SND_PCI_QUIRK(0x17aa, 0x38b4, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L41_I2C_2), + HDA_CODEC_QUIRK(0x17aa, 0x391c, "Lenovo Yoga 7 2-in-1 14AKP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), SND_PCI_QUIRK(0x17aa, 0x38b5, "Legion Slim 7 16IRH8", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x17aa, 0x38b6, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L41_I2C_2), SND_PCI_QUIRK(0x17aa, 0x38b7, "Legion Slim 7 16APH8", ALC287_FIXUP_CS35L41_I2C_2),