* [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA
@ 2026-09-11 9:10 Antonio Di Lorenzo
2026-09-11 9:29 ` Cezary Rojewski
2026-09-11 11:31 ` Liao, Bard
0 siblings, 2 replies; 3+ messages in thread
From: Antonio Di Lorenzo @ 2026-09-11 9:10 UTC (permalink / raw)
To: Cezary Rojewski, Mark Brown
Cc: Liam Girdwood, Peter Ujfalusi, Bard Liao, Kai Vehmanen,
Pierre-Louis Bossart, linux-sound, Antonio Di Lorenzo
The ASUS ExpertBook P5 P5405CAA uses two TAS2783 speaker
amplifiers on SoundWire link 1 and an RT721 codec on link 3.
Add the corresponding SoundWire ADR devices and link description
so the sof_sdw machine driver can select the correct configuration.
RT721 AIF1 is used for the headset jack and AIF3 for the DMIC,
while AIF2 is unused when external speaker amplifiers are present.
Use function topology selection for this configuration.
Signed-off-by: Antonio Di Lorenzo <antoniodilorenzonap@gmail.com>
---
.../intel/common/soc-acpi-intel-ptl-match.c | 65 +++++++++++++++++++
1 file changed, 65 insertions(+)
diff --git a/sound/soc/intel/common/soc-acpi-intel-ptl-match.c b/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
index 756bbf82a326..1035d61f65e9 100644
--- a/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
+++ b/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
@@ -109,6 +109,23 @@ static const struct snd_soc_acpi_endpoint jack_dmic_endpoints[] = {
},
};
+static const struct snd_soc_acpi_endpoint rt721_jack_dmic_endpoints[] = {
+ /* Jack Endpoint (AIF1) */
+ {
+ .num = 0,
+ .aggregated = 0,
+ .group_position = 0,
+ .group_id = 0,
+ },
+ /* DMIC Endpoint (AIF3); AIF2 is unused with external speaker amps */
+ {
+ .num = 2,
+ .aggregated = 0,
+ .group_position = 0,
+ .group_id = 0,
+ },
+};
+
static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
/* Jack Endpoint */
{
@@ -301,6 +318,46 @@ static const struct snd_soc_acpi_adr_device rt1320_3_group2_adr[] = {
}
};
+/* TAS2783 stereo speaker pair on SoundWire link 1. */
+static const struct snd_soc_acpi_adr_device tas2783_1_adr[] = {
+ {
+ .adr = 0x00013c0102000001ull,
+ .num_endpoints = 1,
+ .endpoints = &spk_l_endpoint,
+ .name_prefix = "tas2783-1",
+ },
+ {
+ .adr = 0x0001390102000001ull,
+ .num_endpoints = 1,
+ .endpoints = &spk_r_endpoint,
+ .name_prefix = "tas2783-2",
+ },
+};
+
+static const struct snd_soc_acpi_adr_device rt721_3_adr[] = {
+ {
+ .adr = 0x000330025d072101ull,
+ .num_endpoints = ARRAY_SIZE(rt721_jack_dmic_endpoints),
+ .endpoints = rt721_jack_dmic_endpoints,
+ .name_prefix = "rt721",
+ },
+};
+
+/* ASUS ExpertBook P5 P5405CAA */
+static const struct snd_soc_acpi_link_adr ptl_tas2783_l1_rt721_l3[] = {
+ {
+ .mask = BIT(1),
+ .num_adr = ARRAY_SIZE(tas2783_1_adr),
+ .adr_d = tas2783_1_adr,
+ },
+ {
+ .mask = BIT(3),
+ .num_adr = ARRAY_SIZE(rt721_3_adr),
+ .adr_d = rt721_3_adr,
+ },
+ {}
+};
+
static const struct snd_soc_acpi_link_adr ptl_cs42l43_agg_l3_cs35l56_l2[] = {
{
.mask = BIT(3),
@@ -487,6 +544,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = {
.sof_tplg_filename = "sof-ptl-rt713-l3-rt1320-l1.tplg",
.get_function_tplg_files = sof_sdw_get_tplg_files,
},
+ {
+ .link_mask = BIT(1) | BIT(3),
+ .links = ptl_tas2783_l1_rt721_l3,
+ .drv_name = "sof_sdw",
+ /* Function topologies only; no monolithic fallback. */
+ .sof_tplg_filename = "sof-ptl-dummy.tplg",
+ .get_function_tplg_files = sof_sdw_get_tplg_files,
+ },
{
.link_mask = BIT(0) | BIT(2) | BIT(3),
.links = ptl_rt722_l0_rt1320_l23,
--
2.55.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA
2026-09-11 9:10 [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA Antonio Di Lorenzo
@ 2026-09-11 9:29 ` Cezary Rojewski
2026-09-11 11:31 ` Liao, Bard
1 sibling, 0 replies; 3+ messages in thread
From: Cezary Rojewski @ 2026-09-11 9:29 UTC (permalink / raw)
To: Antonio Di Lorenzo, Peter Ujfalusi
Cc: Liam Girdwood, Bard Liao, Kai Vehmanen, Pierre-Louis Bossart,
linux-sound, Mark Brown
On 9/11/2026 11:10 AM, Antonio Di Lorenzo wrote:
> RT721 AIF1 is used for the headset jack and AIF3 for the DMIC,
> while AIF2 is unused when external speaker amplifiers are present.
This patch only updates the ptl-match table, there are no
machine-board-driver changes here so the paragraph seems out of place
and can be dropped.
> Use function topology selection for this configuration.
The statement has little value if any. Explain _why_ no valid
sof_tplg_filename is assigned and the entry relies solely on
get_function_tplg_files.
...
> @@ -487,6 +544,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_intel_ptl_sdw_machines[] = {
> .sof_tplg_filename = "sof-ptl-rt713-l3-rt1320-l1.tplg",
> .get_function_tplg_files = sof_sdw_get_tplg_files,
> },
> + {
> + .link_mask = BIT(1) | BIT(3),
> + .links = ptl_tas2783_l1_rt721_l3,
> + .drv_name = "sof_sdw",
> + /* Function topologies only; no monolithic fallback. */
> + .sof_tplg_filename = "sof-ptl-dummy.tplg",
I do not see any "dummy" occurrence within this folder and thus I wonder
how will the code react to such combination. Peter, what's your take on
this?
> + .get_function_tplg_files = sof_sdw_get_tplg_files,
> + },
> {
> .link_mask = BIT(0) | BIT(2) | BIT(3),
> .links = ptl_rt722_l0_rt1320_l23,
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA
2026-09-11 9:10 [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA Antonio Di Lorenzo
2026-09-11 9:29 ` Cezary Rojewski
@ 2026-09-11 11:31 ` Liao, Bard
1 sibling, 0 replies; 3+ messages in thread
From: Liao, Bard @ 2026-09-11 11:31 UTC (permalink / raw)
To: Antonio Di Lorenzo, Rojewski, Cezary, Mark Brown
Cc: Liam Girdwood, Peter Ujfalusi, Bard Liao, Kai Vehmanen,
Pierre-Louis Bossart, linux-sound@vger.kernel.org
> -----Original Message-----
> From: Antonio Di Lorenzo <antoniodilorenzonap@gmail.com>
> Sent: Friday, September 11, 2026 5:11 PM
> To: Rojewski, Cezary <cezary.rojewski@intel.com>; Mark Brown
> <broonie@kernel.org>
> Cc: Liam Girdwood <liam.r.girdwood@linux.intel.com>; Peter Ujfalusi
> <peter.ujfalusi@linux.intel.com>; Bard Liao <yung-
> chuan.liao@linux.intel.com>; Kai Vehmanen <kai.vehmanen@linux.intel.com>;
> Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>; linux-
> sound@vger.kernel.org; Antonio Di Lorenzo
> <antoniodilorenzonap@gmail.com>
> Subject: [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS
> P5405CAA
>
> The ASUS ExpertBook P5 P5405CAA uses two TAS2783 speaker
> amplifiers on SoundWire link 1 and an RT721 codec on link 3.
>
> Add the corresponding SoundWire ADR devices and link description
> so the sof_sdw machine driver can select the correct configuration.
>
> RT721 AIF1 is used for the headset jack and AIF3 for the DMIC,
> while AIF2 is unused when external speaker amplifiers are present.
In theory, hda_sdw_machine_select() will create the mach table. We
don't need to create the mach table for Intel LNL+ platforms. Have
you tested without this patch? Please file an issue on
https://github.com/thesofproject/linux/issues if it doesn't work.
>
> Use function topology selection for this configuration.
>
> Signed-off-by: Antonio Di Lorenzo <antoniodilorenzonap@gmail.com>
> ---
> .../intel/common/soc-acpi-intel-ptl-match.c | 65 +++++++++++++++++++
> 1 file changed, 65 insertions(+)
>
> diff --git a/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
> b/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
> index 756bbf82a326..1035d61f65e9 100644
> --- a/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
> +++ b/sound/soc/intel/common/soc-acpi-intel-ptl-match.c
> @@ -109,6 +109,23 @@ static const struct snd_soc_acpi_endpoint
> jack_dmic_endpoints[] = {
> },
> };
>
> +static const struct snd_soc_acpi_endpoint rt721_jack_dmic_endpoints[] = {
> + /* Jack Endpoint (AIF1) */
> + {
> + .num = 0,
> + .aggregated = 0,
> + .group_position = 0,
> + .group_id = 0,
> + },
> + /* DMIC Endpoint (AIF3); AIF2 is unused with external speaker amps
> */
> + {
> + .num = 2,
> + .aggregated = 0,
> + .group_position = 0,
> + .group_id = 0,
> + },
> +};
> +
> static const struct snd_soc_acpi_endpoint jack_amp_g1_dmic_endpoints[] = {
> /* Jack Endpoint */
> {
> @@ -301,6 +318,46 @@ static const struct snd_soc_acpi_adr_device
> rt1320_3_group2_adr[] = {
> }
> };
>
> +/* TAS2783 stereo speaker pair on SoundWire link 1. */
> +static const struct snd_soc_acpi_adr_device tas2783_1_adr[] = {
> + {
> + .adr = 0x00013c0102000001ull,
> + .num_endpoints = 1,
> + .endpoints = &spk_l_endpoint,
> + .name_prefix = "tas2783-1",
> + },
> + {
> + .adr = 0x0001390102000001ull,
> + .num_endpoints = 1,
> + .endpoints = &spk_r_endpoint,
> + .name_prefix = "tas2783-2",
> + },
> +};
> +
> +static const struct snd_soc_acpi_adr_device rt721_3_adr[] = {
> + {
> + .adr = 0x000330025d072101ull,
> + .num_endpoints = ARRAY_SIZE(rt721_jack_dmic_endpoints),
> + .endpoints = rt721_jack_dmic_endpoints,
> + .name_prefix = "rt721",
> + },
> +};
> +
> +/* ASUS ExpertBook P5 P5405CAA */
> +static const struct snd_soc_acpi_link_adr ptl_tas2783_l1_rt721_l3[] = {
> + {
> + .mask = BIT(1),
> + .num_adr = ARRAY_SIZE(tas2783_1_adr),
> + .adr_d = tas2783_1_adr,
> + },
> + {
> + .mask = BIT(3),
> + .num_adr = ARRAY_SIZE(rt721_3_adr),
> + .adr_d = rt721_3_adr,
> + },
> + {}
> +};
> +
> static const struct snd_soc_acpi_link_adr ptl_cs42l43_agg_l3_cs35l56_l2[] = {
> {
> .mask = BIT(3),
> @@ -487,6 +544,14 @@ struct snd_soc_acpi_mach
> snd_soc_acpi_intel_ptl_sdw_machines[] = {
> .sof_tplg_filename = "sof-ptl-rt713-l3-rt1320-l1.tplg",
> .get_function_tplg_files = sof_sdw_get_tplg_files,
> },
> + {
> + .link_mask = BIT(1) | BIT(3),
> + .links = ptl_tas2783_l1_rt721_l3,
> + .drv_name = "sof_sdw",
> + /* Function topologies only; no monolithic fallback. */
> + .sof_tplg_filename = "sof-ptl-dummy.tplg",
> + .get_function_tplg_files = sof_sdw_get_tplg_files,
> + },
> {
> .link_mask = BIT(0) | BIT(2) | BIT(3),
> .links = ptl_rt722_l0_rt1320_l23,
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-11 11:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-11 9:10 [PATCH] ASoC: Intel: soc-acpi: add SoundWire config for ASUS P5405CAA Antonio Di Lorenzo
2026-09-11 9:29 ` Cezary Rojewski
2026-09-11 11:31 ` Liao, Bard
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.