From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Jackie Dong <xy-jackie@139.com>, Takashi Iwai <tiwai@suse.de>,
Sasha Levin <sashal@kernel.org>,
perex@perex.cz, tiwai@suse.com, linux-sound@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 7.0] ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio
Date: Wed, 20 May 2026 07:18:49 -0400 [thread overview]
Message-ID: <20260520111944.3424570-17-sashal@kernel.org> (raw)
In-Reply-To: <20260520111944.3424570-1-sashal@kernel.org>
From: Jackie Dong <xy-jackie@139.com>
[ Upstream commit 83dca2530fb3ba63f47bad339d890bc30aa06ab5 ]
Volume control for the speakers on the Lenovo Yoga Pro 7 15ASH11 laptop
doesn't work.
The DAC routing is the same as on the ThinkPad X1 Gen7 function, so reuse
the alc285_fixup_thinkpad_x1_gen7 to get it working.
Signed-off-by: Jackie Dong <xy-jackie@139.com>
Link: https://patch.msgid.link/20260514153940.7320-1-xy-jackie@139.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
LLM Generated explanations, may be completely bogus:
## Phase Walkthrough
Phase 1 Record:
1. Subject: subsystem `ALSA: hda/realtek`; action `fixup`; intent is to
fix Lenovo Yoga Pro 7 15ASH11 speaker volume control.
2. Tags: `Signed-off-by: Jackie Dong`, `Link:
https://patch.msgid.link/20260514153940.7320-1-xy-jackie@139.com`,
`Signed-off-by: Takashi Iwai`. No `Fixes`, `Reported-by`, `Tested-
by`, `Reviewed-by`, or stable Cc tag.
3. Body: the reported bug is that speaker volume control does not work
on Lenovo Yoga Pro 7 15ASH11. Root cause explanation given: DAC
routing matches the ThinkPad X1 Gen7 routing case, so the existing
routing fixup is reused.
4. Hidden bug fix: yes. Although phrased as a “fixup”, this is a
hardware-specific quirk correcting broken speaker mixer/routing
behavior.
Phase 2 Record:
1. Inventory: one file, `sound/hda/codecs/realtek/alc269.c`; one line
added to `alc269_fixup_tbl`; single-file surgical hardware quirk.
2. Hunk behavior: before, PCI SSID `17aa:38fc` had no matching Realtek
fixup entry. After, it maps to `ALC245_FIXUP_BASS_HP_DAC`.
3. Bug mechanism: hardware workaround / audio codec quirk. Verified
`ALC245_FIXUP_BASS_HP_DAC` calls `alc285_fixup_thinkpad_x1_gen7`,
which overrides DAC routing for NID `0x17`, sets preferred DAC pairs,
and renames confusing volume controls.
4. Fix quality: obviously small and contained. Regression risk is very
low because matching is limited to Lenovo PCI SSID `17aa:38fc`.
Phase 3 Record:
1. Blame: the added line is from candidate commit `83dca2530fb3b`;
adjacent Lenovo quirk-table entries mostly come from earlier Realtek
table history. Candidate is contained in `v7.1-rc4`.
2. Fixes tag: none, so no introducing commit to follow.
3. Related file history: recent `alc269.c` history is dominated by
similar Realtek laptop quirk fixes. Related Lenovo Yoga Pro 7 quirks
exist for 14IMH9 and 14IAH10.
4. Author history: Jackie Dong has this one Realtek commit in the
checked history. Takashi Iwai committed it; `MAINTAINERS` lists
Takashi Iwai as SOUND maintainer.
5. Dependencies: `ALC245_FIXUP_BASS_HP_DAC` was introduced by
`e347430182492` in mainline and exists in `stable/linux-7.0.y`;
`stable/linux-6.19.y` has an equivalent backport `3c756e813f212`.
Older checked stable branches lack that symbol and need a
dependency/backport adjustment.
Phase 4 Record:
1. `b4 dig -c 83dca2530fb3b` found the original thread at the supplied
patch URL.
2. `b4 dig -a` found v1 and v2; v2 is the committed version. The v2
change was “Use `ALC245_FIXUP_BASS_HP_DAC` instead of creating a new
quirk.”
3. `b4 dig -w` showed ALSA maintainers/lists and Lenovo contact were
included.
4. Saved thread shows Takashi Iwai replied “Applied now”, with only a
minor subject-line modification. No NAKs or risk objections were
present in the matched thread.
5. Lore WebFetch searches were blocked by Anubis; WebSearch found
related Yoga Pro audio issues but no additional specific 15ASH11
report. Stable-list WebFetch was also blocked.
Phase 5 Record:
1. Modified object: `alc269_fixup_tbl` static quirk table.
2. Callers: `alc269_probe()` calls `snd_hda_pick_fixup()` with
`alc269_fixup_tbl`; `alc269_probe()` is installed via
`alc269_codec_ops`; ALC245 is listed in `snd_hda_id_alc269`.
3. Callees/effects: `snd_hda_pick_fixup()` matches PCI SSID first, then
selects the fixup ID. `snd_hda_apply_fixup(...PRE_PROBE)` applies it
before auto-parse.
4. Reachability: reachable during HDA codec probe on systems with
Realtek ALC245/compatible hardware and PCI SSID `17aa:38fc`; normal
boot/device initialization path.
5. Similar patterns: the table contains many Lenovo and other laptop
Realtek quirks; `ALC245_FIXUP_BASS_HP_DAC` is already used for
Minisforum V3 SE.
Phase 6 Record:
1. Stable presence: `stable/linux-7.0.y` and `stable/linux-6.19.y`
contain the generic fixup but lack the new `17aa:38fc` entry.
`stable/linux-6.18.y` and older checked branches lack
`ALC245_FIXUP_BASS_HP_DAC`, though they do have ALC245 support and
the underlying ThinkPad routing helper.
2. Backport difficulty: clean/simple for 7.0.y and 6.19.y. Older
branches need either the generic fixup dependency or a small
equivalent backport, and 6.12.y/older use
`sound/pci/hda/patch_realtek.c` rather than the split path.
3. Related stable fixes: searches of 7.0.y and 6.19.y found no existing
15ASH11 quirk.
Phase 7 Record:
1. Subsystem: ALSA HDA Realtek codec driver, driver-specific but common
laptop audio path; criticality is important for affected hardware,
not core-wide.
2. Activity: recent history shows many similar Realtek laptop quirk
fixes, so this fits active subsystem practice.
Phase 8 Record:
1. Affected users: owners of Lenovo Yoga Pro 7 15ASH11 with PCI SSID
`17aa:38fc`.
2. Trigger: normal audio use after codec probe; users see speaker volume
control not working. No verified security or crash trigger.
3. Severity: medium functional regression/hardware enablement issue; not
a panic/corruption bug.
4. Risk-benefit: benefit is high for the affected laptop; risk is very
low because the change is a single SSID-scoped quirk using an
existing fixup.
Phase 9 Record:
1. Evidence for: real user-visible audio control failure, hardware-
specific quirk exception, one-line scoped change, existing fixup
reused, ALSA maintainer applied, v2 incorporated review feedback.
2. Evidence against: not a crash/security/data-corruption fix; older
stable branches may need prerequisite/backport adjustment.
3. Stable rules: obviously correct yes; fixes real user-visible bug yes;
important issue yes under hardware quirk/workaround policy; small and
contained yes; no new API yes; applies cleanly to trees with existing
`ALC245_FIXUP_BASS_HP_DAC`, otherwise needs minor dependency
handling.
4. Exception category: hardware-specific audio codec quirk. Decision:
backport.
## Verification
- [Phase 1] `git show --format=fuller 83dca2530fb3b` verified subject,
body, tags, author, committer, and one-line diff.
- [Phase 2] Diff verified one insertion in `alc269_fixup_tbl`:
`SND_PCI_QUIRK(0x17aa, 0x38fc, ..., ALC245_FIXUP_BASS_HP_DAC)`.
- [Phase 3] `git blame origin/master -L 7762,7768` verified the
candidate line attribution.
- [Phase 3] `git describe --contains 83dca2530fb3b` verified inclusion
in `v7.1-rc4`.
- [Phase 3] `git log -S"ALC245_FIXUP_BASS_HP_DAC"` verified the generic
fixup came from `e347430182492`.
- [Phase 4] `b4 dig -c`, `-a`, `-w`, and saved mbox verified the v1/v2
thread, recipients, and Takashi’s “Applied now” reply.
- [Phase 5] Reads of `alc269.c` and `auto_parser.c` verified probe-time
PCI SSID matching and fixup application.
- [Phase 6] Stable branch checks verified 7.0.y and 6.19.y have the
generic fixup and lack `17aa:38fc`; older checked branches lack the
generic fixup symbol.
- [Phase 8] Failure mode is verified from the commit body: speaker
volume control does not work. No crash/security impact was verified.
This should be backported, with dependency/backport adjustment for trees
that do not yet have `ALC245_FIXUP_BASS_HP_DAC`.
**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 7e0289a1a1ca7..4e0885c1fc496 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -7722,6 +7722,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x17aa, 0x38df, "Y990 YG DUAL", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x17aa, 0x38f9, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
SND_PCI_QUIRK(0x17aa, 0x38fa, "Thinkbook 16P Gen5", ALC287_FIXUP_MG_RTKC_CSAMP_CS35L41_I2C_THINKPAD),
+ SND_PCI_QUIRK(0x17aa, 0x38fc, "Lenovo Yoga Pro 7 15ASH11", ALC245_FIXUP_BASS_HP_DAC),
SND_PCI_QUIRK(0x17aa, 0x38fd, "ThinkBook plus Gen5 Hybrid", ALC287_FIXUP_TAS2781_I2C),
SND_PCI_QUIRK(0x17aa, 0x3902, "Lenovo E50-80", ALC269_FIXUP_DMIC_THINKPAD_ACPI),
SND_PCI_QUIRK(0x17aa, 0x390d, "Lenovo Yoga Pro 7 14ASP10", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN),
--
2.53.0
next prev parent reply other threads:[~2026-05-20 11:20 UTC|newest]
Thread overview: 67+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-20 11:18 [PATCH AUTOSEL 7.0-6.12] HID: logitech-hidpp: Add support for newer Bluetooth keyboards Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0] drm/amdgpu: remove deadlocks from amdgpu_userq_pre_reset Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] ALSA: sparc/dbri: add missing fallthrough Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.6] docs: cgroup-v1: Update charge-commit section Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] drm/panel: feiyang-fy07024di26a30d: return display-on error Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.6] ALSA: usb-audio: Add iface reset and delay quirk for TTGK Technology USB-C Audio Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] selftests/cgroup: Fix cg_read_strcmp() empty string comparison Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.1] smb: client: Zero-pad short GSS session keys per MS-SMB2 Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] HID: magicmouse: Prevent out-of-bounds (OOB) read during DOUBLE_REPORT_ID Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0] smb: client: avoid integer overflow in SMB2 READ length check Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] libceph: Fix unnecessarily high ceph_decode_need() for uniform bucket Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.6] ALSA: hda/realtek: fix mic boost on Framework PTL Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.6] io_uring: hold uring_lock when walking link chain in io_wq_free_work() Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.15] wifi: nl80211: re-check wiphy netns in nl80211_prepare_wdev_dump() continuation Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.12] KVM: arm64: nv: Consider the DS bit when translating TCR_EL2 Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0] docs: hwmon: sy7636a: fix temperature sysfs attribute name Sasha Levin
2026-05-20 11:18 ` Sasha Levin [this message]
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.6] ipv6: Implement limits on extension header parsing Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.12] net: usb: cdc_ncm: add Apple Mac USB-C direct networking quirk Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.15] net: usb: r8152: add TRENDnet TUC-ET2G v2.0 Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] powerpc/vmx: avoid KASAN instrumentation in enter_vmx_ops() for kexec Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-6.18] ALSA: usb-audio: add min_mute quirk for Razer Nommo V2 X Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] wifi: libertas: fix integer underflow in process_cmdrequest() Sasha Levin
2026-05-20 20:41 ` James Cameron
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] HID: mcp2221: fix OOB write in mcp2221_raw_event() Sasha Levin
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0] io_uring/wait: honour caller's time namespace for IORING_ENTER_ABS_TIMER Sasha Levin
2026-05-20 11:40 ` Jens Axboe
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0-5.10] wifi: nl80211: require CAP_NET_ADMIN over the target netns in SET_WIPHY_NETNS Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] HID: elan: Add support for ELAN SB974D touchpad Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] media: qcom: camss: avoid format string warning Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] HID: i2c-hid: add reset quirk for BLTP7853 touchpad Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] ALSA: hda/realtek: Limit mic boost on Positivo DN50E Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] Documentation: kvm: update links in the references section of AMD Memory Encryption Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] scsi: scsi_dh_alua: Increase default ALUA timeout to maximum spec value Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.1] HID: google: hammer: stop hardware on devres action failure Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] ALSA: doc: cs35l56: Update path to HDA driver source Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] Bluetooth: hci_uart: Fix NULL deref in recv callbacks when priv is uninitialized Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] ALSA: hda/realtek: Add mute LED fixup for HP Pavilion 15-cs1xxx Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] btrfs: fix check_chunk_block_group_mappings() to iterate all chunk maps Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.15] ALSA: usb-audio: Add quirk flags for AlphaTheta EUPHONIA Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] powerpc/g5: Enable all windfarms by default Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] ALSA: hda/realtek: Add codec SSID quirk for Lenovo Yoga Pro 9 16IMH9 Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] tools/ynl: add missing uapi header deps in Makefile.deps Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] fbdev: ipu-v3: clean up kernel-doc warnings Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.6] ASoC: amd: yc: Add DMI quirk for MSI Bravo 15 C7VE Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.1] powerpc/pasemi: Drop redundant res assignment Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] cgroup/cpuset: move PF_EXITING check before __GFP_HARDWALL in cpuset_current_node_allowed() Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] drm/amd/ras: Fix CPER ring debugfs read overflow Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.15] scsi: smartpqi: Silence a recursive lock warning Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] io_uring: defer linked-timeout chain splice out of hrtimer context Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] io_uring: validate user-controlled cq.head in io_cqe_cache_refill() Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] platform/x86: asus-nb-wmi: add DMI quirk for ASUS Zenbook Duo UX8407AA Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] powerpc/pseries/htmdump: Free the global buffers in htmdump module exit Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.6] HID: sony: add missing size validation for SMK-Link remotes Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.15] HID: ft260: validate i2c input report length Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] io_uring: hold uring_lock across io_kill_timeouts() in cancel path Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] platform/x86: hp-wmi: Add support for Victus 16-r0xxx (8BC2) Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] i2c: acpi: Add ELAN0678 to i2c_acpi_force_100khz_device_ids Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] KVM: VMX: introduce module parameter to disable CET Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] iommu/amd: Use maximum Event log buffer size when SNP is enabled on Family 0x19 Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-5.10] ALSA: usb-audio: add clock quirk for Motu 1248 Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.18] workqueue: Release PENDING in __queue_work() drain/destroy reject path Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] ASoC: sdw_utils: avoid the SDCA companion function not supported failure Sasha Levin
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0] Documentation: security-bugs: do not systematically Cc the security team Sasha Levin
2026-05-20 13:07 ` Jonathan Corbet
2026-05-20 11:19 ` [PATCH AUTOSEL 7.0-6.12] io_uring/fdinfo: translate SqThread PID through caller's pid_ns 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=20260520111944.3424570-17-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=perex@perex.cz \
--cc=stable@vger.kernel.org \
--cc=tiwai@suse.com \
--cc=tiwai@suse.de \
--cc=xy-jackie@139.com \
/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