[PATCH v2 6/6] ASoC: amd: acp: enable function topologies for ACP7.F SoundWire
From: Syed Saba Kareem
Date: Sat Nov 07 2026 - 14:30:47 EST
From: Syed Saba Kareem <Syed.SabaKareem@xxxxxxx>
From: Siva Subramanian Ravi Saravanan <sravisar@xxxxxxx>
Set get_function_tplg_files for all the ACP7.B and ACP7.F SoundWire
machine entries. The SOF core tries the function topologies first and
falls back to the monolithic topology if any of them is missing, so
existing setups keep working. The monolithic topology is still required
as its presence is checked when the SOF firmware file profile is set up.
Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@xxxxxxx>
Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@xxxxxxx>
---
sound/soc/amd/acp/amd-acp7x-acpi-match.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/sound/soc/amd/acp/amd-acp7x-acpi-match.c b/sound/soc/amd/acp/amd-acp7x-acpi-match.c
index 217b11f9dfc3..068b11400a41 100644
--- a/sound/soc/amd/acp/amd-acp7x-acpi-match.c
+++ b/sound/soc/amd/acp/amd-acp7x-acpi-match.c
@@ -8,6 +8,7 @@
#include <sound/soc-acpi.h>
#include "../mach-config.h"
+#include "amd-sof-function-topology-lib.h"
static const struct snd_soc_acpi_endpoint single_endpoint = {
.num = 0,
@@ -513,6 +514,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7b_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7b-rt721-l0-rt1320-l3.tplg",
.fw_filename = "sof-acp7b.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{},
};
@@ -525,6 +527,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-rt721-l0-rt1320-l3.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0) | BIT(1),
@@ -532,6 +535,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-rt721-l0-rt1320-l1.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0),
@@ -539,6 +543,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-rt721-l0.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0),
@@ -546,12 +551,14 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-rt722-l0.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
}, {
.link_mask = BIT(0) | BIT(1),
.links = acp7x_cs42l43_l0u0_cs35l56x4_l1u3210,
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l43-l0u0-cs35l56x4-l1u3210.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0) | BIT(1),
@@ -559,6 +566,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l1u0-cs35l63x4-l0u0246.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0) | BIT(1),
@@ -566,6 +574,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l0u0-cs35l63x2-l1u01.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0) | BIT(1),
@@ -573,6 +582,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l0u0-cs35l63x2-l1u13.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0) | BIT(1),
@@ -580,6 +590,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l1u0-cs35l63x2-l0u01.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(1),
@@ -587,6 +598,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l43-l1u0-cs35l56x4-l1u0123.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(1),
@@ -594,6 +606,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs35l56x4-l1u3210.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0),
@@ -601,6 +614,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l43-l0u1.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0),
@@ -608,6 +622,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l43b-l0u1.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(0),
@@ -615,6 +630,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l0u0.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{
.link_mask = BIT(1),
@@ -622,6 +638,7 @@ struct snd_soc_acpi_mach snd_soc_acpi_amd_acp7f_sof_sdw_machines[] = {
.drv_name = "amd_sof_sdw",
.sof_tplg_filename = "sof-acp7f-cs42l45-l1u0.tplg",
.fw_filename = "sof-acp7f.ri",
+ .get_function_tplg_files = amd_sof_sdw_get_tplg_files,
},
{},
};
--
2.43.0