From: Syed Saba Kareem <syed.sabakareem@amd.com>
To: Mark Nelson <marknelson84@googlemail.com>, alsa-devel@alsa-project.org
Cc: Vijendar.Mukunda@amd.com,
Sunil-kumar Dommati <Sunil-kumar.Dommati@amd.com>
Subject: Re:
Date: Tue, 11 Aug 2026 14:31:16 +0530 [thread overview]
Message-ID: <4b6e6f16-166e-41ed-9de2-85bd981523a7@amd.com> (raw)
In-Reply-To: <CALEKLmBEJ1LB7Latkq7xpskKiw-2Af73C8ivxWvKNXen-mDj1w@mail.gmail.com>
Hi Mark,
We will investigate this issue.
Could you please log a ticket in Bugzilla for easy tracking.
Thanks,
Syed Saba Kareem.
On 8/11/26 13:18, Mark Nelson wrote:
>
>
> You don't often get email from marknelson84@googlemail.com. Learn why
> this is important <https://aka.ms/LearnAboutSenderIdentification>
>
>
>
> Internal microphone not detected on Acer Nitro ANV16S-41 (AMD ACP6.3
> / Pink Sardine) — missing ACPI DMIC device object
>
>
> Summary
>
> The internal microphone array does not work on the Acer Nitro
> ANV16S-41 (AMD Ryzen 7 260, "Phoenix3" APU, ACP6.3/"Pink Sardine"
> audio coprocessor, PCI ID |1022:15e2| rev 63). Root cause has been
> isolated to the BIOS/ACPI layer: |sound/soc/amd/ps/pci-ps.c|'s
> |get_acp63_device_config()| looks for a child ACPI device at address
> |ACP63_DMIC_ADDR| (|2|) under the ACP PCI device's ACPI scope,
> carrying an |acp-audio-device-type| |_DSD| property equal to
> |ACP_DMIC_DEV| (|2|). On this laptop's firmware, *no ACPI device
> exists at that address at all* — every sibling audio sub-device (HDA
> analog, Bluetooth SCO, USB) is correctly declared with the expected
> |_DSD| properties, but the PDM/DMIC controller object is simply absent.
>
> As a result |is_dmic_dev| is never set, no platform device is created
> for |snd-ps-pdm-dma| / |snd-soc-ps-mach| to bind to, and userspace has
> no capture device for the internal mic array — only the
> (non-functional, see below) legacy HDA analog capture path is visible
> to PipeWire/ALSA.
>
> This looks like a firmware omission rather than a kernel bug per se,
> but is filed here because a DMI-based quirk fallback (as already
> exists for the |renoir| driver, see |rn_acp_quirk_table| in
> |sound/soc/amd/renoir/rn-pci-acp3x.c|) would let Linux work around it,
> matching the precedent set for similarly-affected models (see "Related
> reports" below).
>
>
> System information
>
>
>
> Laptop Acer Nitro ANV16S-41
> BIOS version v1.01 (shipped); *also reproduced on v1.14*, the latest
> available (AMD PI update, 2026/07/28) — see "BIOS update tested" below
> CPU AMD Ryzen 7 260 w/ Radeon 780M Graphics ("Phoenix3", |1002:1900|
> rev b6)
> Audio Coprocessor AMD ACP/ACP3X/ACP6x Audio Coprocessor, |1022:15e2|
> rev 63 (ACP6.3 / "Pink Sardine")
> Bound kernel driver |snd_pci_ps| (|sound/soc/amd/ps/pci-ps.c|)
> OS Ubuntu 24.04 LTS
> Kernel |7.0.0-28-generic|
> |sys_vendor| Acer
> |product_name| Nitro ANV16S-41
> |product_version| V1.01
> |board_vendor| /(please fill in: |cat /sys/class/dmi/id/board_vendor|)/
>
>
> Expected behavior
>
> The internal microphone array should appear as a working ALSA/PipeWire
> capture source, as it does under Windows on the same hardware.
>
>
> Actual behavior
>
> * No ACP-based capture device is ever created.
> * PipeWire/WirePlumber falls back to the legacy HDA analog input
> ("Family 17h/19h HD Audio Controller Analog Stereo" / ALC245),
> which is itself non-functional for capture on this hardware — raw
> |arecord| testing against it (with PipeWire/WirePlumber stopped)
> returns either a fixed, bit-for-bit-identical noise pattern across
> independent takes, or a saturated near-DC signal, depending on
> prior pin-configuration state. This confirms that pin is not wired
> to a real microphone element and is a red herring/legacy stub,
> separate from the ACP root cause below.
> * |snd-ps-pdm-dma| and |snd-soc-ps-mach| load cleanly with no
> errors, but create no card (0 refcount, no new entry in
> |/proc/asound/cards|), because |pci-ps.c| never creates the
> platform device they need.
>
>
> Root cause (isolated via ACPI table decompile)
>
> Kernel source (|sound/soc/amd/ps/acp63.h|):
>
> c
> |#define ACP63_DMIC_ADDR 2 #define ACP_DMIC_DEV 2|
>
> |sound/soc/amd/ps/pci-ps.c|, |get_acp63_device_config()|:
>
> c
> |dmic_dev = acpi_find_child_device(ACPI_COMPANION(&pci->dev),
> ACP63_DMIC_ADDR, 0); if (dmic_dev) { if
> (!acpi_dev_get_property(dmic_dev, "acp-audio-device-type",
> ACPI_TYPE_INTEGER, &obj) && obj->integer.value == ACP_DMIC_DEV)
> is_dmic_dev = true; }|
>
> Full ACPI dump (|acpidump -b| + |iasl -d|) of this laptop's DSDT/SSDTs
> shows the ACP's ACPI scope (|\_SB.PCI0.GP17.ACP_|) declares exactly
> six child devices, at |_ADR| values 1, 3, 4, 5, 6, 7:
>
> |Device (HDA0) Name (_ADR, One) // = 1, has _DSD:
> acp-audio-device-type = 1 Device (I2SC) Name (_ADR, 0x03) // no _DSD
> at all Device (BTSC) Name (_ADR, 0x04) // has _DSD:
> acp-audio-device-type = 4 Device (SDWC) Name (_ADR, 0x05) // no _DSD
> Device (SDWS) Name (_ADR, 0x06) // no _DSD Device (USBS) Name (_ADR,
> 0x07) // has _DSD: acp-audio-device-type = 7|
>
> *There is no device at |_ADR 0x02|.* The PDM/DMIC controller object
> the driver expects is entirely missing from the firmware's ACPI
> namespace — not merely missing a property on an existing device, but
> absent as an object. Every other audio sub-device (HDA, Bluetooth SCO,
> USB) is declared correctly and completely; only the DMIC entry is omitted.
>
>
> BIOS update tested
>
> Between filing this report, BIOS was updated from the as-shipped v1.01
> to the latest available, *v1.14* (2026/07/28, "Updates AMD PI
> version"). The ACPI tables were re-dumped and re-decompiled after the
> update: *no change*. The same three |_DSD| declarations (HDA0, BTSC,
> USBS) are present, |_ADR 0x02| is still absent, and |arecord|/|wpctl|
> behavior is unchanged. This suggests the missing device object is
> written by Acer's own board-level ASL rather than anything AMD's
> AGESA/PI blob controls, so an AMD PI update alone is not expected to
> fix it.
>
>
> Suggested fix
>
> Add a DMI-based quirk fallback to |get_acp63_device_config()| in
> |sound/soc/amd/ps/pci-ps.c|, mirroring the existing |dmi_system_id|
> mechanism already used in |sound/soc/amd/renoir/rn-pci-acp3x.c|
> (|rn_acp_quirk_table|), to force |is_dmic_dev = true| for this DMI
> match (|sys_vendor| "Acer", |product_name| "Nitro ANV16S-41") when
> ACPI declaration is absent. This is the same category of fix already
> applied upstream for comparable AMD ACP-generation laptops (see below).
>
> Related / precedent reports
>
> * Arch Linux forum, [Solved] Built-in microphone not working on Acer
> Nitro ANV15-41 (same OEM family, one ACP generation earlier —
> |snd_pci_acp6x|/|yc| driver, DMI-quirk-based; ultimately fixed by
> a kernel update that added the necessary quirk):
> https://bbs.archlinux.org/viewtopic.php?id=306867
> <https://bbs.archlinux.org/viewtopic.php?id=306867>
> * LKML patch adding a |yc|-driver DMI quirk for a different affected
> model (MSI Bravo 15 C7UCX):
> https://lkml.iu.edu/hypermail/linux/kernel/2503.1/10229.html
> <https://lkml.iu.edu/hypermail/linux/kernel/2503.1/10229.html>
> * Fedora Discussion, same symptom on a sibling Acer Nitro AN16-41 /
> ANV15-41-R2VJ model:
> https://discussion.fedoraproject.org/t/built-in-microphone-is-not-working-on-acer-nitro-an16-41-on-fedora-42-gnome/151554
> <https://discussion.fedoraproject.org/t/built-in-microphone-is-not-working-on-acer-nitro-an16-41-on-fedora-42-gnome/151554>
>
>
> Diagnostics performed
>
> 1. Confirmed no process holds |/dev/snd/*| unexpectedly (|fuser -v|).
> 2. Confirmed raw ALSA capture off the legacy HDA path (with PipeWire
> and WirePlumber fully stopped) is non-functional: bit-identical
> noise across independent takes, then a saturated DC signal after
> reverting an |hda-jack-retask| override — neither is real acoustic
> signal.
> 3. Verified ALSA mixer levels (|amixer|, |alsamixer|) are unmuted and
> at maximum gain/boost throughout.
> 4. Confirmed via |lspci -k| / |lsmod| / |modinfo| that |snd_pci_ps|
> binds to the ACP PCI device (|1022:15e2| rev 63) with no SOF
> dependency.
> 5. Confirmed |snd-ps-pdm-dma| and |snd-soc-ps-mach| load without
> error but create no platform device / sound card, via |modprobe|,
> |lsmod| refcounts, |/proc/asound/cards|, and PCI unbind/rebind
> with elevated |printk| level and live |dmesg| monitoring.
> 6. Full ACPI DSDT + all SSDT tables dumped (|acpidump -b|) and
> decompiled (|iasl -d|), confirming the missing |_ADR 0x02| device
> as described above.
> 7. Repeated steps 4–6 after updating BIOS from v1.01 to v1.14; no change.
>
>
> Alsa info script
> https://alsa-project.org/db/?f=b35ba5a7c4cc84669c7bdaad5a3d01c4ee68af79
>
> sudo dmesg | grep snd
> [ 3.040295] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
> [ 3.040443] snd_hda_intel 0000:01:00.1: Disabling MSI
> [ 3.040454] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio
> client
> [ 3.040812] snd_hda_intel 0000:65:00.1: enabling device (0000 -> 0002)
> [ 3.040921] snd_hda_intel 0000:65:00.1: Handle vga_switcheroo audio
> client
> [ 3.040991] snd_hda_intel 0000:65:00.6: enabling device (0000 -> 0002)
> [ 3.060213] snd_pci_ps 0000:65:00.5: enabling device (0000 -> 0002)
> [ 3.063800] snd_hda_codec_alc269 hdaudioC2D0: ALC245: picked fixup
> for PCI SSID 1025:0000
> [ 3.064274] snd_hda_codec_alc269 hdaudioC2D0: autoconfig for
> ALC245: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker
> [ 3.064278] snd_hda_codec_alc269 hdaudioC2D0: speaker_outs=0
> (0x0/0x0/0x0/0x0/0x0)
> [ 3.064280] snd_hda_codec_alc269 hdaudioC2D0: hp_outs=1
> (0x21/0x0/0x0/0x0/0x0)
> [ 3.064282] snd_hda_codec_alc269 hdaudioC2D0: mono: mono_out=0x0
> [ 3.064283] snd_hda_codec_alc269 hdaudioC2D0: inputs:
> [ 3.064285] snd_hda_codec_alc269 hdaudioC2D0: Internal Mic=0x12
> [ 3.064287] snd_hda_codec_alc269 hdaudioC2D0: Internal Mic=0x13
> [ 5.213121] snd_hda_intel 0000:65:00.1: bound 0000:65:00.0 (ops
> amdgpu_dm_audio_component_bind_ops [amdgpu])
>
> wpctl status
> PipeWire 'pipewire-0' [1.0.5, mdn@SerangoonHippo, cookie:3037145564]
> └─ Clients:
> 32. pipewire [1.0.5,
> mdn@SerangoonHippo, pid:3212]
> 34. WirePlumber [1.0.5,
> mdn@SerangoonHippo, pid:3209]
> 35. WirePlumber [export] [1.0.5,
> mdn@SerangoonHippo, pid:3209]
> 52. GNOME Volume Control Media Keys [1.0.5,
> mdn@SerangoonHippo, pid:3681]
> 53. gnome-shell [1.0.5,
> mdn@SerangoonHippo, pid:3534]
> 54. GNOME Shell Volume Control [1.0.5,
> mdn@SerangoonHippo, pid:3534]
> 55. xdg-desktop-portal [1.0.5,
> mdn@SerangoonHippo, pid:4098]
> 56. GNOME Settings [1.0.5,
> mdn@SerangoonHippo, pid:5076]
> 71. Firefox [1.0.5,
> mdn@SerangoonHippo, pid:4384]
> 72. Terminal [1.0.5,
> mdn@SerangoonHippo, pid:6049]
> 73. Mutter [1.0.5,
> mdn@SerangoonHippo, pid:3534]
> 74. speech-dispatcher-dummy [1.0.5,
> mdn@SerangoonHippo, pid:6907]
> 82. wpctl [1.0.5,
> mdn@SerangoonHippo, pid:7385]
>
> Audio
> ├─ Devices:
> │ 46. Family 17h/19h HD Audio Controller [alsa]
> │ 47. HDA NVidia [alsa]
> │ 48. Rembrandt Radeon High Definition Audio Controller [alsa]
> │
> ├─ Sinks:
> │ * 49. Family 17h/19h HD Audio Controller Analog Stereo [vol: 1.00]
> │
> ├─ Sink endpoints:
> │
> ├─ Sources:
> │ * 50. Family 17h/19h HD Audio Controller Analog Stereo [vol: 1.00]
> │
> ├─ Source endpoints:
> │
> └─ Streams:
> 57. GNOME Settings
> 59. input_FL < ALC245 Analog:monitor_FL [active]
> 60. monitor_FL
> 61. input_FR < ALC245 Analog:monitor_FR [active]
> 62. monitor_FR
> 58. GNOME Settings
> 63. input_FL < ALC245 Analog:capture_FL [active]
> 64. monitor_FL
> 65. input_FR < ALC245 Analog:capture_FR [active]
> 66. monitor_FR
> 79. speech-dispatcher-dummy
> 76. output_FL > ALC245 Analog:playback_FL [paused]
> 78. output_FR > ALC245 Analog:playback_FR [paused]
>
> Video
> ├─ Devices:
> │
> ├─ Sinks:
> │
> ├─ Sink endpoints:
> │
> ├─ Sources:
> │
> ├─ Source endpoints:
> │
> └─ Streams:
>
> Settings
> └─ Default Configured Node Names:
> 0. Audio/Sink alsa_output.pci-0000_65_00.6.pro-output-0
> 1. Audio/Source alsa_input.pci-0000_65_00.6.analog-stereo
>
> sudo lspci -nnvv -s 65:00.5
>
> 65:00.5 Multimedia controller [0480]: Advanced Micro Devices, Inc.
> [AMD] ACP/ACP3X/ACP6x Audio Coprocessor [1022:15e2] (rev 63)
> Subsystem: Acer Incorporated [ALI] ACP/ACP3X/ACP6x Audio Coprocessor
> [1025:1969]
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin B routed to IRQ 137
> IOMMU group: 25
> Region 0: Memory at bc780000 (32-bit, non-prefetchable) [size=256K]
> Region 2: Memory at 7e20000000 (64-bit, prefetchable) [size=8M]
> Capabilities: [48] Vendor Specific Information: Len=08 <?>
> Capabilities: [50] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [64] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
> ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0W
> DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
> RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
> MaxPayload 128 bytes, MaxReadReq 512 bytes
> DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
> LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency
> L0s <64ns, L1 <1us
> ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
> LnkCtl: ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 16GT/s, Width x16
> TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range ABCD, TimeoutDis+ NROPrPrP- LTR-
> 10BitTagComp+ 10BitTagReq- OBFF Not Supported, ExtFmt+ EETLPPrefix+,
> MaxEETLPPrefixes 1
> EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
> FRS- TPHComp- ExtTPHComp-
> AtomicOpsCap: 32bit- 64bit- 128bitCAS-
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR-
> 10BitTagReq- OBFF Disabled,
> AtomicOpsCtl: ReqEn-
> LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-
> EqualizationPhase1-
> EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
> Retimer- 2Retimers- CrosslinkRes: unsupported
> Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
> Address: 0000000000000000 Data: 0000
> Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1
> Len=010 <?>
> Capabilities: [2a0 v1] Access Control Services
> ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd-
> EgressCtrl- DirectTrans-
> ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd-
> EgressCtrl- DirectTrans-
> Kernel driver in use: snd_pci_ps
> Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x, snd_pci_acp5x,
> snd_pci_acp6x, snd_acp_pci, snd_rpl_pci_acp6x, snd_pci_ps,
> snd_sof_amd_renoir, snd_sof_amd_rembrandt, snd_sof_amd_vangogh,
> snd_sof_amd_acp63, snd_sof_amd_acp70
>
next parent reply other threads:[~2026-08-11 9:02 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CALEKLmBEJ1LB7Latkq7xpskKiw-2Af73C8ivxWvKNXen-mDj1w@mail.gmail.com>
2026-08-11 9:01 ` Syed Saba Kareem [this message]
[not found] <CAPXXXSDVGeEK_NCSkDMwTpuvVxYkWGdQk=L=bz+RN4XLiGZmcg@mail.gmail.com>
[not found] ` <CAPXXXSBYcU1QamovmP-gVTXms67Xi_QpMCV=V3570q1nnuWqNw@mail.gmail.com>
2020-04-04 21:05 ` Ruslan Bilovol
2020-04-05 1:27 ` Re: Alan Stern
[not found] <s5hmx1526mg.wl%tiwai@suse.de>
2012-09-06 6:02 ` Re: Markus Trippelsdorf
2012-09-06 6:33 ` (no subject) Daniel Mack
2012-09-06 6:45 ` Markus Trippelsdorf
2012-09-06 6:48 ` (no subject) Takashi Iwai
2012-09-06 6:53 ` Markus Trippelsdorf
2006-02-20 9:02 ¤ªÆÀ¾ðÊó
-- strict thread matches above, loose matches on Subject: below --
2006-02-12 0:45 Delia
2006-02-09 21:07 okada
2006-02-09 9:19 RE: okada
2006-01-21 9:31 Chacon Manuela
2006-01-20 1:58 Re: Snider Marty
2005-07-02 3:16 Re: ²¡¤q
2005-06-13 20:14 Re: Карина
2005-03-23 0:33 Re: support
2005-03-09 20:26 Re: admin
2005-01-25 3:56 Re: postmaster
2004-12-12 14:27 Re: Эвелина Брониславовна
2004-11-08 23:50 Re: Сабина Соломоновна
2004-11-02 18:12 Re: Центр тарифной политики ОАО "РЖД"
2004-10-22 12:45 Re: Сабина Михеевна
2004-09-28 19:03 Re: Madison Nolan
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=4b6e6f16-166e-41ed-9de2-85bd981523a7@amd.com \
--to=syed.sabakareem@amd.com \
--cc=Sunil-kumar.Dommati@amd.com \
--cc=Vijendar.Mukunda@amd.com \
--cc=alsa-devel@alsa-project.org \
--cc=marknelson84@googlemail.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