From: Corey Smith <corsmith@gmail.com>
To: corsmith@gmail.com, Vijendar.Mukunda@amd.com,
venkataprasad.potturu@amd.com
Cc: linux-sound@vger.kernel.org
Subject: [PATCH 0/11] ASoC/soundwire: AMD ACP6x (Rembrandt) SoundWire speaker support
Date: Tue, 27 Oct 2026 22:05:41 -0400 [thread overview]
Message-ID: <20261028020552.35278-1-corsmith@gmail.com> (raw)
The HP Dragonfly Pro ONE (AMD Rembrandt, ACP PCI revision 0x60) has no
working internal speakers under Linux. Its speakers are two Realtek
RT1316 SDCA amplifiers on SoundWire link 0 of the ACP SoundWire
controller:
\_SB.PCI0.GP17.ACP.SDWC.SLV0.AF04 (_ADR 0x000030025D131601)
\_SB.PCI0.GP17.ACP.SDWC.SLV1.AF04 (_ADR 0x000031025D131601)
-> manufacturer 0x025D (Realtek), part 0x1316 (RT1316)
-> link 0, unique id 0/1, aggregated as one stereo "Speaker" endpoint
None of the in-tree AMD ACP drivers can drive these amplifiers:
* snd_pci_acp6x (sound/soc/amd/yc) is the only driver that accepts the
ACP6x revision (0x60). It implements the PDM/DMIC path only, so the
machine results in a capture-only card (pcmC1D0c) and the speakers
never appear.
* snd-pci-ps (sound/soc/amd/ps, ACP6.3/7.x) has the SoundWire manager,
SDW DMA and machine plumbing, but rejects revision 0x60.
* drivers/soundwire/amd_manager.c only knows the ACP6.3 and ACP7.x
register maps.
* sound/soc/amd/acp/amd-sdw-acpi.c only reads the modern
"mipi-sdw-manager-list" property; Rembrandt firmware uses the legacy
"mipi-sdw-master-list" name.
This series makes the ACP6x SoundWire path usable and routes this board
through it:
1-2 accept the ACP6x PCI revisions in the SoundWire manager driver
3-4 accept them in the Pink Sardine (ps) platform header and SDW DMA
5 add an ACP6x RT1316 machine table
6 add a FLAG_AMD_LEGACY_SDW DMI entry for board 8A7F so that
snd_pci_acp6x releases the device to snd-pci-ps
7 teach snd-pci-ps to probe the ACP6x SoundWire (and integrated PDM)
hardware
8 teach the generic amd_sdw machine driver about ACP6x
9 accept the legacy "mipi-sdw-master-list" property
10 harden the ACP interrupt path (fixes a boot panic found in
testing: the IRQ handler runs before the platform devices exist)
11 restore the legacy bus clock defaults when firmware omits the
MIPI DisCo clock properties (fixes a -22 SDW probe failure found
in testing)
Assumptions that need hardware validation by the reporter:
* The ACP6x SoundWire manager and SDW DMA register blocks are register
compatible with ACP6.3 (the series reuses the ACP6.3 register maps and
stream/IRQ associations). AMD shares the ACP_SW_* register
definitions between ACP6.3 and ACP7.0, which makes this plausible, but
it is not verified against a Rembrandt datasheet.
* The ACP6x SDW controller child is the device at _ADR 0x02 under the
ACP, and Rembrandt firmware does not describe the PDM controller
(DMIC) in ACPI, so the PDM path is enabled unconditionally for ACP6x.
The series has been built and booted on the target machine; the ACP6x
SoundWire controller is now probed. The register-map assumptions above
still need to be confirmed by actually playing audio.
Corey Smith (11):
soundwire: amd: add ACP6x PCI revision ids
soundwire: amd: support ACP6x SoundWire managers
ASoC: amd: ps: add ACP6x PCI revision ids
ASoC: amd: ps: support ACP6x in the SoundWire DMA driver
ASoC: amd: acp: add ACP6x (Rembrandt) SoundWire machine table
ASoC: amd: acp-config: route HP Dragonfly Pro ONE through the ACP6x
SDW stack
ASoC: amd: ps: probe the ACP6x SoundWire stack
ASoC: amd: acp: add ACP6x SoundWire quirks and machine support
soundwire: amd: accept the legacy mipi-sdw-master-list property
ASoC: amd: ps: harden the ACP interrupt path for ACP6x
soundwire: amd: provide defaults for the bus clock properties
drivers/soundwire/amd_manager.c | 33 +++++++
include/linux/soundwire/sdw_amd.h | 2 +
sound/soc/amd/acp-config.c | 19 +++++
sound/soc/amd/acp/Makefile | 2 +-
sound/soc/amd/acp/acp-sdw-legacy-mach.c | 20 +++++
sound/soc/amd/acp/amd-rmb-acpi-match.c | 63 ++++++++++++++++
sound/soc/amd/acp/amd-sdw-acpi.c | 15 +++-
sound/soc/amd/acp/soc_amd_sdw_common.h | 2 +
sound/soc/amd/mach-config.h | 7 ++
sound/soc/amd/ps/acp63.h | 5 ++
sound/soc/amd/ps/pci-ps.c | 129 ++++++++++++++++++++++++--------
sound/soc/amd/ps/ps-sdw-dma.c | 12 ++-
12 files changed, 273 insertions(+), 36 deletions(-)
create mode 100644 sound/soc/amd/acp/amd-rmb-acpi-match.c
next reply other threads:[~2026-10-28 2:06 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 2:05 Corey Smith [this message]
2026-10-28 2:05 ` [PATCH 1/11] soundwire: amd: add ACP6x PCI revision ids Corey Smith
2026-10-28 2:05 ` [PATCH 2/11] soundwire: amd: support ACP6x SoundWire managers Corey Smith
2026-10-28 2:05 ` [PATCH 3/11] ASoC: amd: ps: add ACP6x PCI revision ids Corey Smith
2026-10-28 2:15 ` sashiko-bot
2026-10-28 2:05 ` [PATCH 4/11] ASoC: amd: ps: support ACP6x in the SoundWire DMA driver Corey Smith
2026-10-28 2:05 ` [PATCH 5/11] ASoC: amd: acp: add ACP6x (Rembrandt) SoundWire machine table Corey Smith
2026-10-28 2:05 ` [PATCH 6/11] ASoC: amd: acp-config: route HP Dragonfly Pro ONE through the ACP6x SDW stack Corey Smith
2026-10-28 2:05 ` [PATCH 7/11] ASoC: amd: ps: probe the ACP6x SoundWire stack Corey Smith
2026-10-28 2:20 ` sashiko-bot
2026-10-28 2:05 ` [PATCH 8/11] ASoC: amd: acp: add ACP6x SoundWire quirks and machine support Corey Smith
2026-10-28 2:22 ` sashiko-bot
2026-10-28 2:05 ` [PATCH 9/11] soundwire: amd: accept the legacy mipi-sdw-master-list property Corey Smith
2026-10-28 2:05 ` [PATCH 10/11] ASoC: amd: ps: harden the ACP interrupt path for ACP6x Corey Smith
2026-10-28 2:21 ` sashiko-bot
2026-10-28 2:05 ` [PATCH 11/11] soundwire: amd: provide defaults for the bus clock properties Corey Smith
2026-10-29 6:58 ` [PATCH 0/11] ASoC/soundwire: AMD ACP6x (Rembrandt) SoundWire speaker support Mukunda,Vijendar
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=20261028020552.35278-1-corsmith@gmail.com \
--to=corsmith@gmail.com \
--cc=Vijendar.Mukunda@amd.com \
--cc=linux-sound@vger.kernel.org \
--cc=venkataprasad.potturu@amd.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 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.