]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ASoC: amd: acp: fix for cpu dai index logic
authorVijendar Mukunda <Vijendar.Mukunda@amd.com>
Mon, 7 Oct 2024 08:53:20 +0000 (14:23 +0530)
committerMark Brown <broonie@kernel.org>
Mon, 7 Oct 2024 14:35:45 +0000 (15:35 +0100)
Multi link aggregation is not supported for acp6.3 platform.
Below combinations are supported.
- one sdw BE DAI <---> one-cpu DAI <---> one-codec DAI
- one sdw BE DAI  <---> one-cpu DAI <---> multi-codec DAIs
As Single cpu dai is going to be created, In create_sdw_dailink() function
cpu dai index won't be incremented.
Refactor cpu dai index logic to fix below smatch static checker warning.
sound/soc/amd/acp/acp-sdw-sof-mach.c:157 create_sdw_dailink()
warn: iterator 'i' not incremented.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/a201e871-375e-43eb-960d-5c048956c2ff@amd.com/T/
Fixes: 6d8348ddc56e ("ASoC: amd: acp: refactor SoundWire machine driver code")
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20241007085321.3991149-3-Vijendar.Mukunda@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-sdw-sof-mach.c

index acab2675d1f5c816e530187327f0de40010aaf27..3be401c7227040569dc7edce6b702c4ac2849742 100644 (file)
@@ -154,7 +154,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
                int num_cpus = hweight32(sof_dai->link_mask[stream]);
                int num_codecs = sof_dai->num_devs[stream];
                int playback, capture;
-               int i = 0, j = 0;
+               int j = 0;
                char *name;
 
                if (!sof_dai->num_devs[stream])
@@ -213,14 +213,14 @@ static int create_sdw_dailink(struct snd_soc_card *card,
 
                        int link_num = ffs(sof_end->link_mask) - 1;
 
-                       cpus[i].dai_name = devm_kasprintf(dev, GFP_KERNEL,
-                                                         "SDW%d Pin%d",
-                                                         link_num, cpu_pin_id);
-                       dev_dbg(dev, "cpu[%d].dai_name:%s\n", i, cpus[i].dai_name);
-                       if (!cpus[i].dai_name)
+                       cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL,
+                                                       "SDW%d Pin%d",
+                                                       link_num, cpu_pin_id);
+                       dev_dbg(dev, "cpu->dai_name:%s\n", cpus->dai_name);
+                       if (!cpus->dai_name)
                                return -ENOMEM;
 
-                       codec_maps[j].cpu = i;
+                       codec_maps[j].cpu = 0;
                        codec_maps[j].codec = j;
 
                        codecs[j].name = sof_end->codec_name;