From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev, stable@vger.kernel.org
Cc: Edson Juliano Drosdeck <edson.drosdeck@gmail.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-6.12] ALSA: hda/realtek: Limit mic boost on Positivo DN50E
Date: Wed, 20 May 2026 07:19:03 -0400 [thread overview]
Message-ID: <20260520111944.3424570-31-sashal@kernel.org> (raw)
In-Reply-To: <20260520111944.3424570-1-sashal@kernel.org>
From: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
[ Upstream commit d02d2d51a50d1bbf44a50eda094aa2b10fecf023 ]
The internal mic boost on the Positivo DN50E is too high.
Fix this by applying the ALC269_FIXUP_LIMIT_INT_MIC_BOOST fixup to the machine
to limit the gain.
Signed-off-by: Edson Juliano Drosdeck <edson.drosdeck@gmail.com>
Link: https://patch.msgid.link/20260511181558.670563-1-edson.drosdeck@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:
## Stable Backport Analysis
### Phase 1: Commit Message Forensics
Record 1.1: Subsystem is `ALSA: hda/realtek`; action is “Limit” / “Fix”;
claimed intent is to cap excessive internal microphone boost on Positivo
DN50E.
Record 1.2: Tags present are `Signed-off-by: Edson Juliano Drosdeck`,
`Link: https://patch.msgid.link/20260511181558.670563-1-
edson.drosdeck@gmail.com`, and `Signed-off-by: Takashi Iwai`. No
`Fixes:`, `Reported-by:`, `Tested-by:`, `Reviewed-by:`, `Acked-by:`, or
`Cc: stable` tag was present.
Record 1.3: The described bug is excessive internal mic boost on this
machine. The existing fixup comment verifies the mechanism: boost levels
2 and 3 are “too noisy” on internal mic input, so the fixup limits boost
to levels 0 or 1.
Record 1.4: This is not a hidden bug fix; it is an explicit hardware
quirk for a user-visible audio problem.
### Phase 2: Diff Analysis
Record 2.1: One file changes: `sound/hda/codecs/realtek/alc269.c`, 1
insertion, no deletions. The modified object is the `alc269_fixup_tbl`
quirk table. Scope is a single-line, single-driver hardware quirk.
Record 2.2: Before the change, PCI SSID `0x1e50:0x7007` had no matching
quirk. After the change, `snd_hda_pick_fixup()` can select
`ALC269_FIXUP_LIMIT_INT_MIC_BOOST` for Positivo DN50E.
Record 2.3: Bug category is hardware quirk/workaround. The existing
fixup runs at `HDA_FIXUP_ACT_PROBE`, finds internal mic pins, and calls
`snd_hda_override_amp_caps()` to limit mic boost steps.
Record 2.4: Fix quality is high: one table entry, no new logic, no API
change. Regression risk is very low and limited to machines with that
exact PCI SSID.
### Phase 3: Git History Investigation
Record 3.1: There is no buggy code line to blame; the bug is a missing
quirk entry. I verified the existing `ALC269_FIXUP_LIMIT_INT_MIC_BOOST`
machinery is present in checked stable tags including `v4.19`, `v5.4`,
`v5.10`, `v5.15`, `v6.1`, `v6.6`, `v6.12`, `v6.19`, and `v7.0`.
Record 3.2: No `Fixes:` tag is present, so there was no introducing
commit to follow.
Record 3.3: Recent history of this file shows frequent Realtek HDA quirk
additions and fixes. No prerequisite commit was identified for this
patch beyond the already-existing fixup.
Record 3.4: The author has multiple prior accepted Realtek HDA quirks
for Positivo and VAIO systems, including Positivo ARN50, P15X, K116J,
C6400, and SU C1400.
Record 3.5: The patch is functionally standalone. Older stable trees
before the 2025 file move use `sound/pci/hda/patch_realtek.c`, so those
need a path/context backport. A direct `git apply --check` against the
current checked-out 7.0 stable tree failed due context drift, not
missing functionality.
### Phase 4: Mailing List And External Research
Record 4.1: The exact standalone commit hash was not present in local
history, so `b4 dig -c <commit>` could not be used as specified. `b4 am`
by message-id found one patch and a two-message thread. The maintainer
reply from Takashi Iwai says “Applied now. Thanks.” No NAKs or concerns
were present.
Record 4.2: The original recipients included Takashi Iwai, Jaroslav
Kysela, Zhang Heng, Stefan Binding, Kailang Yang, `linux-
sound@vger.kernel.org`, and `linux-kernel@vger.kernel.org`.
Record 4.3: No separate bug report was found. Web search confirmed
public hardware data for Positivo DN50E and related Positivo mic-boost
patches.
Record 4.4: Related patches exist for the same fixup pattern, including
Positivo ARN50 and N14AP7 in git history, plus a public Positivo DN50F
patch using the same fixup.
Record 4.5: I found no stable-specific discussion or explicit stable
nomination.
### Phase 5: Code Semantic Analysis
Record 5.1: No function body is modified. Affected code paths are
`alc269_fixup_tbl`, `snd_hda_pick_fixup()`, `snd_hda_apply_fixup()`, and
`alc269_fixup_limit_int_mic_boost()`.
Record 5.2: `alc269_probe()` calls `snd_hda_pick_fixup()` with
`alc269_fixup_tbl`, then later calls `snd_hda_apply_fixup(codec,
HDA_FIXUP_ACT_PROBE)`.
Record 5.3: Key callees are `snd_hda_codec_get_pincfg()`,
`snd_hda_get_input_pin_attr()`, and `snd_hda_override_amp_caps()`.
Record 5.4: The path is reached automatically during HDA codec probe on
matching hardware. The bad behavior affects internal mic capture; it is
not a syscall-triggered crash/security issue.
Record 5.5: Similar uses of `ALC269_FIXUP_LIMIT_INT_MIC_BOOST` are
already present for many laptops, including other Positivo systems.
### Phase 6: Stable Tree Analysis
Record 6.1: The reusable fixup exists in all checked stable tags from
`v4.19` through `v7.0`; the DN50E entry itself was absent in checked
tags.
Record 6.2: Backport difficulty is low but not always clean apply:
`v6.19+` uses `sound/hda/codecs/realtek/alc269.c`, while older trees use
`sound/pci/hda/patch_realtek.c`.
Record 6.3: I found no existing DN50E fix in checked stable tags or
current local history.
### Phase 7: Subsystem Context
Record 7.1: Subsystem is ALSA HDA Realtek codec support. Criticality is
driver-specific, but important for affected laptop audio users.
Record 7.2: The subsystem is active, with many recent quirk additions in
the same file. The pattern is mature and widely used.
### Phase 8: Impact And Risk
Record 8.1: Affected population is users of Positivo DN50E systems with
Realtek HDA audio.
Record 8.2: Trigger is normal codec probe plus internal microphone use.
It is not an unprivileged security trigger.
Record 8.3: Failure mode is user-visible broken audio quality from
excessive internal mic gain/noise. Severity is medium for affected
hardware, not crash-level.
Record 8.4: Benefit is high for affected hardware users. Risk is very
low because this adds one exact-match PCI SSID quirk using existing
code.
### Phase 9: Final Synthesis
Record 9.1: Evidence for backporting: hardware quirk exception, one-line
targeted change, existing tested fixup machinery, maintainer applied it,
related Positivo fixes use the same pattern. Evidence against: no
separate bug report/test tag and direct apply may need context/path
adjustment. Unresolved: exact upstream commit hash was not available
locally, and no independent DN50E test report beyond the submitter’s
patch text was found.
Record 9.2: Stable rules: obviously correct: yes; fixes a real user-
visible hardware bug: yes; important enough under hardware-quirk
exception: yes; small and contained: yes; no new APIs/features: yes;
stable apply: yes with likely minor path/context adjustment on older
trees.
Record 9.3: Exception category applies: hardware-specific
quirk/workaround in an existing driver.
Record 9.4: This should be backported. The patch is exactly the type of
low-risk Realtek HDA laptop quirk that stable trees routinely carry.
## Verification
- Phase 1: Parsed the supplied commit message and b4 mbox; confirmed
tags and absence of `Fixes:` / stable / reporter tags.
- Phase 2: Read the patch mbox; confirmed 1 insertion in
`alc269_fixup_tbl`.
- Phase 3: Used `git grep` across stable tags to confirm
`ALC269_FIXUP_LIMIT_INT_MIC_BOOST` exists and DN50E is absent.
- Phase 3: Checked author history; found multiple accepted Positivo/VAIO
Realtek HDA quirk commits.
- Phase 4: `b4 am` found the patch and thread; full mbox showed Takashi
Iwai replied “Applied now.”
- Phase 4: Web searches found related Positivo DN50F/ARN50 mic-boost
patches and a DN50E hardware listing.
- Phase 5: Read `snd_hda_pick_fixup()`, `snd_hda_apply_fixup()`,
`alc269_probe()`, and `alc269_fixup_limit_int_mic_boost()` to verify
call flow and behavior.
- Phase 6: Checked `v4.19`, `v5.4`, `v5.10`, `v5.15`, `v6.1`, `v6.6`,
`v6.12`, `v6.19`, and `v7.0` for fixup availability and file paths.
- Unverified: exact final upstream commit hash was not available in
local history, and no separate user bug report was found.
**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 4e0885c1fc496..b1fb5e1cf0078 100644
--- a/sound/hda/codecs/realtek/alc269.c
+++ b/sound/hda/codecs/realtek/alc269.c
@@ -7799,6 +7799,7 @@ static const struct hda_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1d72, 0x1945, "Redmi G", ALC256_FIXUP_ASUS_HEADSET_MIC),
SND_PCI_QUIRK(0x1d72, 0x1947, "RedmiBook Air", ALC255_FIXUP_XIAOMI_HEADSET_MIC),
SND_PCI_QUIRK(0x1e39, 0xca14, "MEDION NM14LNL", ALC233_FIXUP_MEDION_MTL_SPK),
+ SND_PCI_QUIRK(0x1e50, 0x7007, "Positivo DN50E", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x1ee7, 0x2078, "HONOR BRB-X M1010", ALC2XX_FIXUP_HEADSET_MIC),
SND_PCI_QUIRK(0x1f4c, 0xe001, "Minisforum V3 (SE)", ALC245_FIXUP_BASS_HP_DAC),
SND_PCI_QUIRK(0x1f66, 0x0105, "Ayaneo Portable Game Player", ALC287_FIXUP_CS35L41_I2C_2),
--
2.53.0
next prev parent reply other threads:[~2026-05-20 11:20 UTC|newest]
Thread overview: 76+ 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:41 ` sashiko-bot
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:24 ` sashiko-bot
2026-05-20 11:18 ` [PATCH AUTOSEL 7.0] ALSA: hda/realtek: ALC269 fixup for Lenovo Yoga Pro 7 15ASH111 audio Sasha Levin
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:56 ` sashiko-bot
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-23 14:23 ` Jens Axboe
2026-05-23 14:45 ` Sasha Levin
2026-05-23 14:55 ` Jens Axboe
2026-05-23 15:06 ` Sasha Levin
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 12:24 ` sashiko-bot
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 ` Sasha Levin [this message]
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:57 ` sashiko-bot
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-31-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=edson.drosdeck@gmail.com \
--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 \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.