From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: J-Donald Tournier <jdtournier@gmail.com>,
Takashi Iwai <tiwai@suse.de>, Sasha Levin <sashal@kernel.org>,
kailang@realtek.com, sbinding@opensource.cirrus.com,
chris.chiu@canonical.com, edip@medip.dev
Subject: [PATCH AUTOSEL 6.17] ALSA: hda/realtek: Add quirk for Lenovo Yoga 7 2-in-1 14AKP10
Date: Mon, 3 Nov 2025 13:02:21 -0500 [thread overview]
Message-ID: <20251103180246.4097432-8-sashal@kernel.org> (raw)
In-Reply-To: <20251103180246.4097432-1-sashal@kernel.org>
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),
--
2.51.0
next prev parent reply other threads:[~2025-11-03 18:03 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-03 18:02 [PATCH AUTOSEL 6.17-5.10] net: tls: Cancel RX async resync request on rcd_delta overflow Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] sched_ext: Allocate scx_kick_cpus_pnt_seqs lazily using kvzalloc() Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] perf/x86/intel/uncore: Add uncore PMU support for Wildcat Lake Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-6.12] net: tls: Change async resync helpers argument Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-6.1] bcma: don't register devices disabled in OF Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-6.12] blk-crypto: use BLK_STS_INVAL for alignment errors Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] drm/msm: Fix pgtable prealloc error path Sasha Levin
2025-11-03 18:02 ` Sasha Levin [this message]
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-6.1] cifs: fix typo in enable_gcm_256 module parameter Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] smb: client: handle lack of IPC in dfs_cache_refresh() Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] ASoC: rt721: fix prepare clock stop failed Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] sched_ext: defer queue_balance_callback() until after ops.dispatch Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-5.4] kconfig/nconf: Initialize the default locale at startup Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-5.10] scsi: core: Fix a regression triggered by scsi_host_busy() Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-5.15] selftests: net: use BASH for bareudp testing Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] ALSA: hda/realtek: Fix mute led for HP Victus 15-fa1xxx (MB 8C2D) Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-6.6] x86/microcode/AMD: Limit Entrysign signature checking to known generations Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] x86/CPU/AMD: Extend Zen6 model range Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17-5.4] kconfig/mconf: Initialize the default locale at startup Sasha Levin
2025-11-03 18:02 ` [PATCH AUTOSEL 6.17] selftests: cachestat: Fix warning on declaration under label Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251103180246.4097432-8-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=chris.chiu@canonical.com \
--cc=edip@medip.dev \
--cc=jdtournier@gmail.com \
--cc=kailang@realtek.com \
--cc=patches@lists.linux.dev \
--cc=sbinding@opensource.cirrus.com \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).