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: Bob Song <songxiebing@kylinos.cn>,
	gannovera <gannovera@gmail.com>, Mark Brown <broonie@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com,
	alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org
Subject: [PATCH AUTOSEL 7.0-6.6] ASoC: amd: yc: Add DMI quirk for MSI Bravo 15 C7VE
Date: Mon, 11 May 2026 18:19:21 -0400	[thread overview]
Message-ID: <20260511221931.2370053-22-sashal@kernel.org> (raw)
In-Reply-To: <20260511221931.2370053-1-sashal@kernel.org>

From: Bob Song <songxiebing@kylinos.cn>

[ Upstream commit 0e60d96616640ffcf51b81a87c71e30d92385a93 ]

The laptop requires a quirk ID to enable its internal microphone. Add
it to the DMI quirk table.

Reported-by: gannovera <gannovera@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218402
Signed-off-by: Bob Song <songxiebing@kylinos.cn>
Link: https://patch.msgid.link/20260430014920.141276-1-songxiebing@kylinos.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---

LLM Generated explanations, may be completely bogus:

## Stable Backport Review

### Phase 1: Commit Message Forensics
Record 1.1: Subsystem is `ASoC: amd: yc`; action verb is `Add`; claimed
intent is adding a DMI quirk for MSI Bravo 15 C7VE internal microphone
enablement.

Record 1.2: Tags found: `Reported-by: gannovera <gannovera@gmail.com>`,
`Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218402`, `Signed-
off-by: Bob Song <songxiebing@kylinos.cn>`, `Link: https://patch.msgid.l
ink/20260430014920.141276-1-songxiebing@kylinos.cn`, `Signed-off-by:
Mark Brown <broonie@kernel.org>`. No `Fixes:` tag and no explicit `Cc:
stable`.

Record 1.3: The message states the laptop requires a quirk ID to enable
its internal microphone. Symptom is missing internal microphone support
on MSI Bravo 15 C7VE. Version info is not stated. Root cause described
is absence from `yc_acp_quirk_table`.

Record 1.4: This is a hardware quirk fix, not a hidden cleanup bug. It
fits the stable exception category for DMI quirks/workarounds.

### Phase 2: Diff Analysis
Record 2.1: One file changed: `sound/soc/amd/yc/acp6x-mach.c`, 7
insertions, 0 deletions. Modified object is the static
`yc_acp_quirk_table[]`. Scope is a single-file surgical quirk addition.

Record 2.2: Before: the DMI table matched nearby MSI models such as
`Bravo 15 B7ED` and `Bravo 15 C7VF`, but not `Bravo 15 C7VE`. After:
exact vendor/product match for `Micro-Star International Co., Ltd.` and
`Bravo 15 C7VE` maps to `&acp6x_card`. Affected path is platform probe
hardware matching.

Record 2.3: Bug category is hardware workaround / DMI quirk. Mechanism:
`acp6x_probe()` calls `dmi_first_match(yc_acp_quirk_table)` and, on
match, sets platform driver data to `acp6x_card`; without a match, the
driver can return `-ENODEV` if ACPI did not already enable the card.

Record 2.4: Fix quality is high: it adds only one exact DMI table entry
using an existing pattern and no new logic. Regression risk is very low
and limited to machines reporting that exact DMI product/vendor pair.

### Phase 3: Git History Investigation
Record 3.1: `git blame` around adjacent MSI entries in the checked-out
7.0 tree traced those lines to the local merge base, not a useful
original introducer. The “bug” is absence of this model entry, not a bad
line introduced by a known commit. Verified file absent in `v5.15` and
present in `v5.16`, `v6.1`, `v6.6`, and `v6.12`.

Record 3.2: No `Fixes:` tag, so no introducing commit to follow.

Record 3.3: Recent history of `sound/soc/amd/yc/acp6x-mach.c` contains
many similar DMI quirk additions, including HP, ASUS, MSI Thin/Vector
entries. No prerequisite refactor was identified for this specific
7-line addition.

Record 3.4: Author history in the fetched maintainer branch showed Bob
Song’s related commits for this path consist of this patch. The patch
was committed by Mark Brown, the ASoC maintainer.

Record 3.5: Dependency check found the needed symbols and structure
already exist in stable-relevant trees: `yc_acp_quirk_table`,
`acp6x_card`, and `dmi_first_match()` are present in `v6.1`;
`SND_SOC_AMD_YC_MACH` exists in `v6.1` and `v6.6`. The exact submitted
hunk applies cleanly to the current 7.0 tree; older trees such as `v6.1`
lack the nearby MSI `Bravo 15 B7ED` anchor and would need a simple
context adjustment.

### Phase 4: Mailing List And External Research
Record 4.1: `b4 dig -c 0e60d96616640ffcf51b81a87c71e30d92385a93` found
the lore thread at `https://patch.msgid.link/20260430014920.141276-1-
songxiebing@kylinos.cn`. `b4 dig -a` found two same-subject submissions
dated 2026-04-22 and 2026-04-30; the April 30 version is the applied
one.

Record 4.2: `b4 dig -w` showed the April 30 submission included Takashi
Iwai, Jaroslav Kysela, Liam Girdwood, Mark Brown, Vijendar Mukunda,
`linux-sound`, `linux-kernel`, and the reporter.

Record 4.3: Direct `WebFetch` of Bugzilla was blocked by Anubis. Search
results and the lore thread corroborate that Bugzilla #218402 is tied to
this MSI Bravo 15 C7VE microphone issue.

Record 4.4: Related pattern found: a similar MSI Bravo 17 C7VE quirk
thread describes the same ACP6x DMIC not-enabled problem on a related
MSI model. No dependency between that patch and this one was found.

Record 4.5: Stable-list search found no stable-specific discussion for
`Bravo 15 C7VE`.

### Phase 5: Code Semantic Analysis
Record 5.1: Modified object is `yc_acp_quirk_table[]`; key consuming
function is `acp6x_probe()`.

Record 5.2: `acp6x_probe()` is the `.probe` callback of platform driver
`acp6x_mach_driver`. The platform device named `acp_yc_mach` is
registered by `snd_acp6x_probe()` in `pci-acp6x.c` when ACP6x PDM mode
is set.

Record 5.3: Key callees in `acp6x_probe()` are ACPI property checks,
`_WOV` evaluation, `dmi_first_match()`, `platform_set_drvdata()`,
`platform_get_drvdata()`, and `devm_snd_soc_register_card()`.

Record 5.4: Reachability is hardware enumeration/probe on AMD Yellow
Carp ACP systems, not a syscall-triggered path. For the affected laptop,
the issue is encountered at boot/device probe when the internal DMIC
card is not registered.

Record 5.5: Similar pattern is widespread in the same table: many
laptop-specific entries all set `.driver_data = &acp6x_card`.

### Phase 6: Stable Tree Analysis
Record 6.1: `v5.15` lacks `sound/soc/amd/yc/acp6x-mach.c`; `v5.16`,
`v6.1`, `v6.6`, and `v6.12` contain it. This is relevant to stable trees
with the AMD YC machine driver, especially `v6.1+`.

Record 6.2: Current 7.0 tree accepts the patch cleanly via `git apply
--check`. `v6.6`, `v6.12`, `v6.18`, `v6.19`, and HEAD have nearby MSI
entries; `v6.1` has the quirk machinery but not the same adjacent MSI
context, so it needs minor manual placement.

Record 6.3: Searches found no existing `Bravo 15 C7VE` entry in current
HEAD, `v6.6`, `v6.12`, `v6.18`, or `v6.19`.

### Phase 7: Subsystem Context
Record 7.1: Subsystem is ALSA SoC / AMD YC machine driver under
`sound/`. Criticality is peripheral but user-visible: it affects audio
capture on a specific laptop model.

Record 7.2: The subsystem/file is actively receiving DMI quirk
additions, verified by recent history listing multiple ASoC AMD YC quirk
commits.

### Phase 8: Impact And Risk
Record 8.1: Affected users are MSI Bravo 15 C7VE owners using kernels
with `CONFIG_SND_SOC_AMD_YC_MACH`.

Record 8.2: Trigger condition is device probing on that hardware when
firmware/ACPI does not otherwise enable the DMIC path. It is not an
unprivileged-user-triggered security issue.

Record 8.3: Failure mode is loss of internal microphone functionality,
not crash, data corruption, or security impact. Severity is medium for
affected users.

Record 8.4: Benefit is high for affected hardware because it restores
the internal microphone. Risk is very low because the patch is seven
lines, exact-DMI-scoped, and uses existing driver data.

### Phase 9: Final Synthesis
Record 9.1: Evidence for backporting: real user report, Bugzilla closure
tag, accepted by ASoC maintainer, exact hardware quirk, tiny scope, no
API/behavior change outside the matching laptop, and stable rules
explicitly allow hardware quirks. Evidence against: no explicit `Cc:
stable`, no `Tested-by`, Bugzilla direct fetch blocked, and `v6.1` needs
trivial context adjustment. None of these outweigh the quirk benefit.

Record 9.2: Stable rules: obviously correct yes; fixes a real user-
visible hardware bug yes; important enough for affected users yes,
though not crash-level; small and contained yes; no new APIs/features
yes; applies cleanly to current 7.0 and should be straightforward for
stable trees containing the driver.

Record 9.3: Exception category applies: hardware-specific DMI
quirk/workaround in an existing driver.

Record 9.4: Decision is to backport to stable trees that contain the AMD
YC machine driver, with minor context adjustment where needed.

## Verification
- [Phase 1] Parsed fetched commit
  `0e60d96616640ffcf51b81a87c71e30d92385a93`: confirmed subject, tags,
  author, committer, and 7-line stat.
- [Phase 2] Read `sound/soc/amd/yc/acp6x-mach.c`: confirmed
  `yc_acp_quirk_table[]` and `acp6x_probe()` DMI behavior.
- [Phase 3] Ran local history/blame checks: nearby blame was not useful
  for original introduction; verified file absent in `v5.15` and present
  in `v5.16+`.
- [Phase 4] Ran `b4 dig -c`, `-a`, `-w`, and saved/read mbox: confirmed
  lore thread, two submissions, maintainer recipients, and Mark Brown
  application to `for-7.1`.
- [Phase 5] Read `pci-acp6x.c`: confirmed PCI probe registers
  `acp_yc_mach`, which invokes the machine driver probe.
- [Phase 6] Checked stable tags and entries: no `Bravo 15 C7VE` in
  checked stable/current trees; patch applies cleanly to current 7.0
  tree.
- [Phase 7] Checked Kconfig/Makefile: confirmed `SND_SOC_AMD_YC_MACH` is
  the relevant config and exists in `v6.1`/`v6.6`.
- [Phase 8] Impact assessment is based on verified probe flow plus the
  commit’s reported Bugzilla/user report.
- UNVERIFIED: Direct Bugzilla contents could not be fetched due Anubis.
  Exact original file introduction commit was not determined from local
  history, but tag presence verifies stable relevance.

**YES**

 sound/soc/amd/yc/acp6x-mach.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sound/soc/amd/yc/acp6x-mach.c b/sound/soc/amd/yc/acp6x-mach.c
index aa62009331825..0fa2f694f3d30 100644
--- a/sound/soc/amd/yc/acp6x-mach.c
+++ b/sound/soc/amd/yc/acp6x-mach.c
@@ -472,6 +472,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
 			DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 B7ED"),
 		}
 	},
+	{
+		.driver_data = &acp6x_card,
+		.matches = {
+			DMI_MATCH(DMI_BOARD_VENDOR, "Micro-Star International Co., Ltd."),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 15 C7VE"),
+		}
+	},
 	{
 		.driver_data = &acp6x_card,
 		.matches = {
-- 
2.53.0


  parent reply	other threads:[~2026-05-11 22:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-11 22:19 [PATCH AUTOSEL 7.0-5.10] ALSA: sparc/dbri: add missing fallthrough Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.6] docs: cgroup-v1: Update charge-commit section Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] drm/panel: feiyang-fy07024di26a30d: return display-on error Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.1] smb: client: Zero-pad short GSS session keys per MS-SMB2 Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.15] wifi: nl80211: re-check wiphy netns in nl80211_prepare_wdev_dump() continuation Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.6] ipv6: Implement limits on extension header parsing Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.12] net: usb: cdc_ncm: add Apple Mac USB-C direct networking quirk Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.15] net: usb: r8152: add TRENDnet TUC-ET2G v2.0 Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] i2c: dev: prevent integer overflow in I2C_TIMEOUT ioctl Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] powerpc/vmx: avoid KASAN instrumentation in enter_vmx_ops() for kexec Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.18] ALSA: usb-audio: add min_mute quirk for Razer Nommo V2 X Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] wifi: libertas: fix integer underflow in process_cmdrequest() Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0] io_uring/wait: honour caller's time namespace for IORING_ENTER_ABS_TIMER Sasha Levin
2026-05-12 15:47   ` Jens Axboe
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] wifi: nl80211: require CAP_NET_ADMIN over the target netns in SET_WIPHY_NETNS Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.12] media: qcom: camss: avoid format string warning Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] scsi: scsi_dh_alua: Increase default ALUA timeout to maximum spec value Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.18] Bluetooth: hci_uart: Fix NULL deref in recv callbacks when priv is uninitialized Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0] ALSA: hda/realtek: Add mute LED fixup for HP Pavilion 15-cs1xxx Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.15] ALSA: usb-audio: Add quirk flags for AlphaTheta EUPHONIA Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.18] ALSA: hda/realtek: Add codec SSID quirk for Lenovo Yoga Pro 9 16IMH9 Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] fbdev: ipu-v3: clean up kernel-doc warnings Sasha Levin
2026-05-11 22:19 ` Sasha Levin [this message]
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.1] powerpc/pasemi: Drop redundant res assignment Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.15] scsi: smartpqi: Silence a recursive lock warning Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-6.18] powerpc/pseries/htmdump: Free the global buffers in htmdump module exit Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] i2c: acpi: Add ELAN0678 to i2c_acpi_force_100khz_device_ids Sasha Levin
2026-05-11 22: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-11 22:19 ` [PATCH AUTOSEL 7.0-5.10] ALSA: usb-audio: add clock quirk for Motu 1248 Sasha Levin
2026-05-11 22:19 ` [PATCH AUTOSEL 7.0] ASoC: sdw_utils: avoid the SDCA companion function not supported failure 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=20260511221931.2370053-22-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=gannovera@gmail.com \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=perex@perex.cz \
    --cc=songxiebing@kylinos.cn \
    --cc=stable@vger.kernel.org \
    --cc=tiwai@suse.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