mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 0/5] ASoC: support the ASUS ROG Xbox Ally X20 audio
@ 2026-11-03 20:05 Matthew Schwartz
  2026-11-03 20:05 ` [PATCH v2 1/5] ASoC: amd: acp-config: force SoundWire probe on ASUS RC74XA Matthew Schwartz
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Matthew Schwartz @ 2026-11-03 20:05 UTC (permalink / raw)
  To: broonie
  Cc: Matthew Schwartz, Liam Girdwood, Jaroslav Kysela, Takashi Iwai,
	Vijendar Mukunda, Venkata Prasad Potturu, Oder Chiou,
	Shenghao Ding, Kevin Lu, Baojun Xu, Sen Wang, Cezary Rojewski,
	Peter Ujfalusi, Bard Liao, Kai Vehmanen, Pierre-Louis Bossart,
	linux-sound, linux-kernel

The ASUS ROG Xbox Ally X20 (RC74XA) moves from the HDA codec and TAS2781
amps of the earlier ROG Ally models to SoundWire on ACP 7.0, with two
TAS2783 amps on link 0 and an RT721 on link 1. Its BIOS marks the ACP as
legacy DMIC only, no machine table entry matches the link layout, and
its TAS2783 firmware in linux-firmware uses the four-field name that
carries the BIOS speaker ID, so the speakers do not work today.

Patches 1 to 3 cover that: the ACP config override so the SoundWire
links are probed, the machine entry, and the speaker ID firmware name.
Patch 4 stops sdw_utils from creating the TAS2783 amp feedback capture
link when the BIOS declares an empty source port list, which otherwise
fails on every open. It touches the shared helper and the AMD and Intel
SoundWire machine drivers, but I was only able to test on AMD. Patch 5
makes rt721-sdca wait for its power domains to reach PS0, which removes
a burst of full scale samples at the start of headset mic capture.

Tested on an RC74XA with speaker playback on both amps, headphones, jack
detection, both microphones and suspend.

Changes in v2:
- Patch 3: try the firmware names in a fixed order, the four-field name
  when SPEAKER_ID is present, then SSID-LINK-0xUID and SSID-LINK-UID,
  so a board with the variable but three-field firmware still loads the
  0x name. Read SPEAKER_ID once at probe into a u32 and only use it
  when it is four bytes. With no PCI parent, try the generic name once
  instead of twice. (Mark, Sashiko)
- Patch 4: only honor empty port lists for codecs whose driver takes its
  ports from DisCo, currently TAS2783. (Mark) Take the stream name and
  DAI link ID from an endpoint that is part of the stream, only run init
  for those endpoints, count the AMD legacy amp capture endpoints by
  their effective direction, and skip an endpoint left with no
  direction. Check the endpoint number against dai_num before using
  its DAI info. (Sashiko) Dropped Vijendar's Reviewed-by because of
  these changes.
- Picked up Vijendar's Reviewed-by on patches 1 and 2.

v1: https://lore.kernel.org/r/20261016232416.2628603-1-matthew.schwartz@linux.dev

Matthew Schwartz (5):
  ASoC: amd: acp-config: force SoundWire probe on ASUS RC74XA
  ASoC: amd: acp: add ACP70 SoundWire machine entry for ASUS RC74XA
  ASoC: tas2783-sdw: use the BIOS speaker ID in the firmware name
  ASoC: sdw_utils: honor empty DisCo port lists when creating DAI links
  ASoC: rt721-sdca: wait for PDEs to reach PS0 after powering them up

 include/sound/soc_sdw_utils.h            |  16 +++
 sound/soc/amd/acp-config.c               |   7 ++
 sound/soc/amd/acp/acp-sdw-legacy-mach.c  |   9 +-
 sound/soc/amd/acp/acp-sdw-sof-mach.c     |   7 +-
 sound/soc/amd/acp/amd-acp70-acpi-match.c |  44 ++++++++
 sound/soc/codecs/Kconfig                 |   1 +
 sound/soc/codecs/rt721-sdca-sdw.c        |  17 ++++
 sound/soc/codecs/rt721-sdca.c            |  33 ++++++
 sound/soc/codecs/rt721-sdca.h            |   1 +
 sound/soc/codecs/tas2783-sdw.c           | 123 ++++++++++++++++-------
 sound/soc/intel/boards/sof_sdw.c         |   7 +-
 sound/soc/sdw_utils/soc_sdw_utils.c      |  60 +++++++++--
 12 files changed, 263 insertions(+), 62 deletions(-)


base-commit: 2450a9bcd3423612f614ea15ff44966fed189191
-- 
2.56.0


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-11-04 11:53 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-03 20:05 [PATCH v2 0/5] ASoC: support the ASUS ROG Xbox Ally X20 audio Matthew Schwartz
2026-11-03 20:05 ` [PATCH v2 1/5] ASoC: amd: acp-config: force SoundWire probe on ASUS RC74XA Matthew Schwartz
2026-11-03 20:05 ` [PATCH v2 2/5] ASoC: amd: acp: add ACP70 SoundWire machine entry for " Matthew Schwartz
2026-11-03 20:05 ` [PATCH v2 3/5] ASoC: tas2783-sdw: use the BIOS speaker ID in the firmware name Matthew Schwartz
2026-11-03 20:05 ` [PATCH v2 4/5] ASoC: sdw_utils: honor empty DisCo port lists when creating DAI links Matthew Schwartz
2026-11-04  3:01   ` Liao, Bard
2026-11-04 11:36   ` Pierre-Louis Bossart
2026-11-03 20:05 ` [PATCH v2 5/5] ASoC: rt721-sdca: wait for PDEs to reach PS0 after powering them up Matthew Schwartz
2026-11-04 11:44   ` Pierre-Louis Bossart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®