[PATCH AUTOSEL 6.18-6.1] ASoC: amd: yc: Add Alienware m15 R7 AMD to DMIC quirk table
From: Sasha Levin
Date: Mon Aug 31 2026 - 10:57:25 EST
From: Jetha Chan <jethachan@xxxxxxxxx>
[ Upstream commit e782d687d2f5bf8b8113dc48ba22cca4b472c252 ]
The Alienware m15 R7 AMD exposes an ACP6x DMIC path, but its DMI
product name is not present in the Yellow Carp ACP quirk table. As a
result, the ACP machine driver does not enable the DMIC card on this
system.
Add the DMI product name for this machine. With this quirk applied, the
kernel reports:
acp_yc_mach acp_yc_mach.0: Enabling ACP DMIC support via DMI
and ALSA exposes the ACP DMIC capture device:
card 3: acp6x
device 0: DMIC capture dmic-hifi-0
Tested on an Alienware m15 R7 AMD with product SKU 0B59.
Link: https://jethachan.net/dev/2026/03/21/fixing-internal-microphone-alienware-linux.html
Assisted-by: OpenAI-Codex:gpt-5.5
Signed-off-by: Jetha Chan <jethachan@xxxxxxxxx>
Link: https://patch.msgid.link/20260630003328.15675-1-jethachan@xxxxxxxxx
Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
LLM Generated explanations, may be completely bogus:
# Stable Backport Analysis: ASoC: amd: yc: Add Alienware m15 R7 AMD to
DMIC quirk table
**Local tree:** `v6.18.44-1-g2736c32da98b9` (Makefile: 6.18.44), checked
out from `stable/linux-6.18.y`.
---
## PHASE 1: COMMIT MESSAGE FORENSICS
### Step 1.1: Subject line
**Record:** `[ASoC: amd: yc] [add] Add Alienware m15 R7 AMD to DMIC
quirk table`
### Step 1.2: Tags
**Record:**
- **Link:** https://jethachan.net/dev/2026/03/21/fixing-internal-
microphone-alienware-linux.html (author blog with reproduction
details)
- **Link:**
https://patch.msgid.link/20260630003328.15675-1-jethachan@xxxxxxxxx
(mailing list submission)
- **Assisted-by:** OpenAI-Codex:gpt-5.5
- **Signed-off-by:** Jetha Chan \<jethachan@xxxxxxxxx\>
- **Signed-off-by:** Mark Brown \<broonie@xxxxxxxxxx\> (ASoC maintainer)
- No Fixes:, Reported-by:, Tested-by:, Reviewed-by:, Acked-by:, or Cc:
stable tags
- Notable: maintainer Signed-off-by; hardware-tested per commit body
### Step 1.3: Body analysis
**Record:**
- **Bug:** Alienware m15 R7 AMD has ACP6x DMIC hardware, but DMI product
name is missing from `yc_acp_quirk_table`, so the ACP machine driver
does not enable DMIC.
- **Symptom:** `acp_yc_mach.0` stays unbound; no ACP DMIC ALSA capture
device; internal microphone unusable.
- **Root cause:** BIOS does not expose working `AcpDmicConnected` ACPI
property (same pattern as m17 R5 AMD quirk from 2022).
- **Fix approach:** Add DMI vendor/product match entry pointing at
`acp6x_card`.
- **Version info:** Tested on SKU 0B59; author used kernel 6.19.8 on
Arch-based distro.
### Step 1.4: Hidden bug fix?
**Record:** Not disguised — this is an explicit hardware-enablement
quirk fix. Without the entry, probe returns `-ENODEV` and DMIC never
registers.
---
## PHASE 2: DIFF ANALYSIS
### Step 2.1: Inventory
**Record:**
- **Files:** `sound/soc/amd/yc/acp6x-mach.c` (+7 lines, 0 removed)
- **Functions modified:** none directly; `yc_acp_quirk_table[]` data
extended
- **Scope:** Single-file, surgical DMI table addition
### Step 2.2: Code flow change
**Record:**
- **Before:** `dmi_first_match(yc_acp_quirk_table)` on Alienware m15 R7
AMD returns NULL → `platform_get_drvdata()` NULL → probe fails with
`-ENODEV`.
- **After:** DMI match succeeds → `platform_set_drvdata(pdev,
&acp6x_card)` → DMIC card registers, log shows `"Enabling ACP DMIC
support via DMI"`.
- **Path affected:** Platform driver probe during boot on matching
hardware only.
### Step 2.3: Bug mechanism
**Record:** **[Hardware workaround / DMI quirk]** — Missing DMI override
for a platform whose ACPI tables omit `AcpDmicConnected`. Same mechanism
as existing Alienware m17 R5 AMD entry (`d40b6529c6269`).
### Step 2.4: Fix quality
**Record:**
- Obviously correct: identical structure to 70+ existing entries in the
same table.
- Minimal, no logic changes.
- **Regression risk:** Very low — only matches exact DMI vendor
`"Alienware"` + product `"Alienware m15 R7 AMD"`.
- **Backport note:** Mainline diff context includes MSI Vector/Raider
entries not present in 6.18.44; insertion should go immediately before
the existing m17 entry at lines 503–509. Trivial adjustment, same
7-line hunk content.
---
## PHASE 3: GIT HISTORY INVESTIGATION
### Step 3.1: Blame
**Record:**
- Alienware m17 R5 AMD quirk introduced by `d40b6529c6269` (Brent
Mendelsohn, 2022-10-24).
- YC machine driver introduced by `fa991481b8b22` (2021-10-18).
- Both are ancestors of HEAD in this tree.
- **m15 R7 AMD entry:** NOT present (`git log -S "Alienware m15 R7 AMD"
-- sound/soc/amd/yc/acp6x-mach.c` returns empty).
### Step 3.2: Fixes: tag
**Record:** N/A — no Fixes: tag. Bug is omission from quirk table, not a
regression from a specific commit.
### Step 3.3: Related file history
**Record:** 73 quirk-related commits in `sound/soc/amd/yc/`. Recent
stable examples: HP OMEN (`65aabf8896687`), MSI Bravo 17 D7VF
(`ba06528ad5a31`), ASUS ExpertBook entries. **20** DMI quirk commits
already in `stable/linux-6.18.y` for this subsystem. Standalone one-
patch fix.
### Step 3.4: Author context
**Record:** Jetha Chan is not a regular ASoC contributor (only unrelated
Alienware platform/x86 commit `246f9bb62016c` in tree). Patch merged by
Mark Brown. Precedent: community hardware reports routinely land as DMI
quirks in this file.
### Step 3.5: Dependencies
**Record:** No dependencies. Requires only `SND_SOC_AMD_YC_MACH` driver
and `yc_acp_quirk_table` — both present since kernel ~5.15+. Applies
standalone.
---
## PHASE 4: MAILING LIST AND EXTERNAL RESEARCH
### Step 4.1: Original discussion
**Record:**
- `b4 dig` with message-id failed (commit not in local repo; lore
blocked by Anubis bot protection).
- Author blog post fetched successfully — detailed reproduction
confirming DMI mismatch and successful module-level test.
### Step 4.2: Reviewers
**Record:** Mark Brown Signed-off-by confirms maintainer acceptance.
Could not verify CC list via b4 dig -w (tool failure / commit not
indexed locally).
### Step 4.3: Bug report
**Record:** Blog documents: `acp_yc_mach.0` unbound, only HDA cards
visible, DMI product `"Alienware m15 R7 AMD"` vs table having only m17.
Severity from user perspective: **complete internal mic failure**. m17
R5 had bugzilla.kernel.org #216590 for same class of issue.
### Step 4.4: Related patches
**Record:** Standalone. Related sibling: `d40b6529c6269` (m17 R5 AMD,
same table, same symptom class).
### Step 4.5: Stable list history
**Record:** Could not search lore stable archive (bot protection).
However, 20 prior DMI quirk commits for this exact driver are already in
`stable/linux-6.18.y`, establishing clear precedent.
---
## PHASE 5: CODE SEMANTIC ANALYSIS
### Step 5.1: Key functions
**Record:** `acp6x_probe()` uses `yc_acp_quirk_table[]`; table data
extended only.
### Step 5.2: Callers
**Record:** `acp6x_probe` registered as `.probe` in `acp6x_mach_driver`,
invoked via `module_platform_driver()` at boot when
`CONFIG_SND_SOC_AMD_YC_MACH` is enabled and ACPI platform device exists.
### Step 5.3: Callees
**Record:** `dmi_first_match()`, `platform_set_drvdata()`,
`devm_snd_soc_register_card()`.
### Step 5.4: Reachability
**Record:** Triggered on every boot for Alienware m15 R7 AMD with YC ACP
hardware and module built-in or loaded. Not userspace-triggerable, but
affects all owners of this laptop model at boot.
### Step 5.5: Similar patterns
**Record:** Entire `yc_acp_quirk_table[]` is a catalog of identical per-
laptop DMI overrides for broken/missing ACPI DMIC detection. Alienware
m17 R5 AMD entry at lines 503–509 is the direct sibling.
---
## PHASE 6: CROSS-REFERENCING AGAINST LOCAL TREE
### Step 6.1: Buggy code exists?
**Record:** **YES.** File `sound/soc/amd/yc/acp6x-mach.c` exists. Quirk
table and probe logic present. m17 R5 AMD quirk present; **m15 R7 AMD
missing** — bug is live in 6.18.44.
### Step 6.2: Backport complications
**Record:** **Minor context adjustment.** Mainline patch context
references MSI Vector/Raider entries absent from 6.18.44; insert before
existing Alienware m17 block. No structural conflicts.
### Step 6.3: Related fixes already present?
**Record:** m17 R5 AMD quirk (`d40b6529c6269`) present. No m15 fix. No
duplicate.
---
## PHASE 7: SUBSYSTEM AND MAINTAINER CONTEXT
### Step 7.1: Subsystem criticality
**Record:** **sound/ASoC AMD YC driver** — IMPORTANT for affected laptop
users; PERIPHERAL in global kernel terms (config-dependent, specific
hardware).
### Step 7.2: Subsystem activity
**Record:** Highly active — continuous DMI quirk additions through
2025–2026, many backported to 6.18.y stable.
---
## PHASE 8: IMPACT AND RISK ASSESSMENT
### Step 8.1: Who is affected
**Record:** Owners of Alienware m15 R7 AMD laptops running kernels with
`SND_SOC_AMD_YC_MACH` enabled (common on AMD Rembrandt/Yellow Carp
laptops).
### Step 8.2: Trigger conditions
**Record:** Every boot on matching DMI identity. Deterministic, not a
race. Unprivileged users cannot trigger the fix path, but all users on
this hardware are affected by the bug.
### Step 8.3: Failure mode severity
**Record:** Internal DMIC completely non-functional (driver probe
fails). **Severity: MEDIUM** — not crash/corruption/security, but core
laptop functionality broken. Falls under stable **hardware quirk
exception**.
### Step 8.4: Risk-benefit
**Record:**
- **Benefit:** HIGH for affected users (working internal microphone).
- **Risk:** VERY LOW (7-line DMI string, exact hardware match only).
- **Ratio:** Strongly favorable; matches established stable practice for
this file.
---
## PHASE 9: FINAL SYNTHESIS
### Step 9.1: Evidence summary
**FOR backport:**
- Fixes real, reproducible hardware bug (dead internal mic)
- Hardware quirk / DMI workaround — explicit stable exception category
- 7-line, single-file, obviously correct
- Tested on real hardware; ASoC maintainer Signed-off-by
- Identical pattern to m17 R5 quirk already in tree since 2022
- 20 similar quirk commits already in 6.18.y stable for this driver
- Driver and quirk infrastructure fully present in this tree
- No new APIs, no behavior change for non-matching systems
**AGAINST backport:**
- Not a crash, security, or data-corruption issue (strict "important
issue" reading)
- Lore review thread not accessible for verification
- Minor patch context adjustment needed vs mainline
**Unresolved:**
- Full mailing list review thread (Anubis blocked lore.kernel.org)
- b4 dig could not resolve commit hash (not in local tree)
### Step 9.2: Stable rules checklist
1. Obviously correct and tested? **PASS** — same pattern as dozens of
accepted quirks; author tested on hardware
2. Fixes real bug affecting users? **PASS** — internal microphone
completely broken
3. Important issue? **PASS** (hardware quirk exception) — functional
hardware failure on a commercial laptop
4. Small and contained? **PASS** — 7 lines, 1 file
5. No new features or APIs? **PASS** — DMI table entry only
6. Can apply to local tree? **PASS** — trivial insertion before existing
Alienware m17 entry
### Step 9.3: Exception category
**Record:** **Hardware quirk/workaround** — DMI-based enablement for
laptop with broken ACPI DMIC detection.
### Step 9.4: Problem and decision rationale
This commit solves a concrete hardware support gap: the Alienware m15 R7
AMD has an ACP6x DMIC path, but without a DMI quirk the `acp_yc_mach`
platform driver refuses to bind because ACPI does not report
`AcpDmicConnected`. The result is no internal microphone on Linux — a
user-visible regression-class hardware issue, not a cosmetic fix.
For the 6.18.y stable tree specifically, all infrastructure exists (YC
driver since 2021, m17 sibling quirk since 2022, continuous stable
backport of identical quirk patches). The fix is minimal, maintainer-
reviewed, and carries negligible regression risk while restoring
essential laptop functionality for a defined hardware population.
---
## Verification
- **[Phase 1]** Parsed subject, tags, body from provided commit message
- **[Phase 1]** Fetched author blog: confirmed DMI mismatch, unbound
`acp_yc_mach`, successful DMIC after quirk
- **[Phase 2]** Diff: +7 lines to `yc_acp_quirk_table[]` in
`acp6x-mach.c`
- **[Phase 2]** Read `acp6x_probe()` lines 758–816: confirmed DMI match
enables `acp6x_card`, no match → `-ENODEV`
- **[Phase 3]** `git describe HEAD`: v6.18.44-1-g2736c32da98b9
- **[Phase 3]** `git log -S "Alienware m15 R7 AMD"`: empty — commit not
in tree
- **[Phase 3]** `git blame` lines 503–509: m17 quirk from
`d40b6529c6269` (2022-10-24)
- **[Phase 3]** `git merge-base --is-ancestor d40b6529c6269 HEAD`: m17
quirk is ancestor
- **[Phase 3]** `git merge-base --is-ancestor fa991481b8b22 HEAD`: YC
driver is ancestor
- **[Phase 3]** `git log --oneline -20 --
sound/soc/amd/yc/acp6x-mach.c`: many recent quirk commits
- **[Phase 3]** `git show d40b6529c6269`: m17 quirk, same bug class,
bugzilla #216590
- **[Phase 4]** `b4 dig` for new patch message-id: failed (exit 2)
- **[Phase 4]** lore.kernel.org fetch: blocked by Anubis bot protection
- **[Phase 4]** Blog fetch: success — full reproduction details
- **[Phase 5]** `grep acp6x_probe/dmi_first_match`: probe at line 758,
DMI check at 798
- **[Phase 6]** `grep "Alienware" acp6x-mach.c`: only m17 R5 present,
m15 R7 absent
- **[Phase 6]** Confirmed Vector A16/Raider A18 from mainline diff
context not in 6.18.44 tree
- **[Phase 6]** `git log stable/linux-6.18.y --grep="DMI quirk" --
sound/soc/amd/yc/ | wc -l`: 20 quirk commits in stable
- **[Phase 7]** Read `sound/soc/amd/Kconfig` lines 107–116:
`SND_SOC_AMD_YC_MACH` config exists
- **[Phase 8]** Failure mode verified via probe code: no DMI match →
`-ENODEV` → no DMIC card
**YES**The background searches finished and match what the analysis
already used:
- **Author/subject search:** No ASoC quirk commit for "Alienware m15 R7
AMD" in this tree. The only m15 R7 hits are unrelated `platform/x86`
Alienware WMI work.
- **Stable quirk count:** **20** DMI quirk commits for
`sound/soc/amd/yc/` are already in `stable/linux-6.18.y`, including
the sibling `d40b6529c6269` (Alienware m17 R5 AMD) entry.
That supports the **YES** backport verdict for 6.18.y: same quirk
pattern, driver and table already present, only the m15 R7 DMI entry is
missing.The target-commit search finished: **"Alienware m15 R7 AMD" is
not in `sound/soc/amd/yc/acp6x-mach.c` in this tree.** The only m15 R7
matches are unrelated `platform/x86` Alienware WMI commits, which
confirms the ASoC DMIC quirk patch still needs to be backported.
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 d9f145b634f35..d657287ccf43e 100644
--- a/sound/soc/amd/yc/acp6x-mach.c
+++ b/sound/soc/amd/yc/acp6x-mach.c
@@ -500,6 +500,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "Bravo 17 D7VF"),
}
},
+ {
+ .driver_data = &acp6x_card,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Alienware"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R7 AMD"),
+ }
+ },
{
.driver_data = &acp6x_card,
.matches = {
--
2.53.0