Linux kernel -stable discussions
 help / color / mirror / Atom feed
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


  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 ` [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: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 ` 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: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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox