Re: [PATCH 2/5] ASoC: amd: acp: add ACP70 SoundWire machine entry for ASUS RC74XA

From: Mukunda,Vijendar

Date: Mon Oct 19 2026 - 01:39:38 EST


On 17/10/26 04:54, Matthew Schwartz wrote:
> The ROG Xbox Ally X20 (RC74XA) has two TAS2783 amps on link 0 with
> unique IDs 0x8 and 0xB and an RT721 on link 1. No table entry describes
> that layout, so machine selection falls through to acp70_rt721_only and
> routes speaker playback to the unused RT721 amp endpoint.
>
> Add a two-link entry ahead of acp70_rt721_only with the RT721 limited
> to its jack and DMIC endpoints.
>
> Signed-off-by: Matthew Schwartz <matthew.schwartz@xxxxxxxxx>

Reviewed-by: Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>
> ---
> sound/soc/amd/acp/amd-acp70-acpi-match.c | 44 ++++++++++++++++++++++++
> 1 file changed, 44 insertions(+)
>
> diff --git a/sound/soc/amd/acp/amd-acp70-acpi-match.c b/sound/soc/amd/acp/amd-acp70-acpi-match.c
> index c2f0479301ebd..0c1a7a70ce146 100644
> --- a/sound/soc/amd/acp/amd-acp70-acpi-match.c
> +++ b/sound/soc/amd/acp/amd-acp70-acpi-match.c
> @@ -739,6 +739,45 @@ static const struct snd_soc_acpi_link_adr acp70_tas2783x2_l0u9c_rt712_vb_l1u0[]
> {}
> };
>
> +static const struct snd_soc_acpi_adr_device tas2783x2_l0u8b_adr[] = {
> + {
> + .adr = 0x0000380102000001ull,
> + .num_endpoints = 1,
> + .endpoints = &spk_l_endpoint,
> + .name_prefix = "tas2783-1",
> + },
> + {
> + .adr = 0x00003B0102000001ull,
> + .num_endpoints = 1,
> + .endpoints = &spk_r_endpoint,
> + .name_prefix = "tas2783-2",
> + },
> +};
> +
> +static const struct snd_soc_acpi_adr_device rt721_l1u0_jack_dmic_adr[] = {
> + {
> + .adr = 0x000130025D072101ull,
> + .num_endpoints = ARRAY_SIZE(jack_dmic_endpoints),
> + .endpoints = jack_dmic_endpoints,
> + .name_prefix = "rt721",
> + }
> +};
> +
> +/* ASUS ROG Xbox Ally X20 (RC74XA) */
> +static const struct snd_soc_acpi_link_adr acp70_tas2783x2_l0u8b_rt721_l1u0[] = {
> + {
> + .mask = BIT(0),
> + .num_adr = ARRAY_SIZE(tas2783x2_l0u8b_adr),
> + .adr_d = tas2783x2_l0u8b_adr,
> + },
> + {
> + .mask = BIT(1),
> + .num_adr = ARRAY_SIZE(rt721_l1u0_jack_dmic_adr),
> + .adr_d = rt721_l1u0_jack_dmic_adr,
> + },
> + {}
> +};
> +
> static const struct snd_soc_acpi_endpoint rt721_endpoints[] = {
> { /* Jack Playback/Capture Endpoint (AIF1) */
> .num = 0,
> @@ -906,6 +945,11 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp70_sdw_machines[] = {
> .links = acp70_rt721_l1u0_tas2783x2_l1u8b,
> .drv_name = "amd_sdw",
> },
> + {
> + .link_mask = BIT(0) | BIT(1),
> + .links = acp70_tas2783x2_l0u8b_rt721_l1u0,
> + .drv_name = "amd_sdw",
> + },
> {
> .link_mask = BIT(1),
> .links = acp70_rt721_only,