]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: Intel: sof_sdw: append dai type to dai link name unconditionally
authorBard Liao <yung-chuan.liao@linux.intel.com>
Fri, 15 May 2026 08:30:43 +0000 (16:30 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 15 May 2026 13:43:27 +0000 (22:43 +0900)
The dai_type is used to select function topologies. Since the topology
stream name and DAI link name use partial matching, unconditionally
appending the dai_type provides necessary selection metadata
without breaking existing topologies.

Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Reviewed-by: Liam Girdwood <liam.r.girdwood@intel.com>
Link: https://patch.msgid.link/20260515083043.1864426-1-yung-chuan.liao@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/sof_sdw.c

index c18ec607e02967a4b110000f1cfeca2b68223a57..5c4682f9f7c9b1ca6621641eebf65210113e9d9c 100644 (file)
@@ -901,10 +901,16 @@ static int create_sdw_dailink(struct snd_soc_card *card,
                }
        }
 
+       /*
+        * The dai_type is used to select function topologies. Since the topology stream name
+        * and DAI link name use partial matching, unconditionally appending the dai_type provides
+        * necessary selection metadata without breaking existing topologies. Although
+        * ctx->append_dai_type is not checked here, we overwrite it to ensure consistency in case
+        * it is referenced elsewhere.
+        */
+       ctx->append_dai_type = true;
        for_each_pcm_streams(stream) {
                static const char * const sdw_stream_name[] = {
-                       "SDW%d-Playback",
-                       "SDW%d-Capture",
                        "SDW%d-Playback-%s",
                        "SDW%d-Capture-%s",
                };
@@ -932,15 +938,10 @@ static int create_sdw_dailink(struct snd_soc_card *card,
                }
 
                /* create stream name according to first link id */
-               if (ctx->append_dai_type)
-                       name = devm_kasprintf(dev, GFP_KERNEL,
-                                             sdw_stream_name[stream + 2],
-                                             ffs(sof_end->link_mask) - 1,
-                                             type_strings[sof_end->dai_info->dai_type]);
-               else
-                       name = devm_kasprintf(dev, GFP_KERNEL,
-                                             sdw_stream_name[stream],
-                                             ffs(sof_end->link_mask) - 1);
+               name = devm_kasprintf(dev, GFP_KERNEL,
+                                     sdw_stream_name[stream],
+                                     ffs(sof_end->link_mask) - 1,
+                                     type_strings[sof_end->dai_info->dai_type]);
                if (!name)
                        return -ENOMEM;