[PATCH 2/3] ASoC: amd: acp: fix for cpu dai index logic

From: Vijendar Mukunda
Date: Mon Oct 07 2024 - 04:54:35 EST


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@xxxxxxxxxx>
Closes: https://lore.kernel.org/all/a201e871-375e-43eb-960d-5c048956c2ff@xxxxxxx/T/
Fixes: 6d8348ddc56e ("ASoC: amd: acp: refactor SoundWire machine driver code")
Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@xxxxxxx>
---
sound/soc/amd/acp/acp-sdw-sof-mach.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/sound/soc/amd/acp/acp-sdw-sof-mach.c b/sound/soc/amd/acp/acp-sdw-sof-mach.c
index acab2675d1f5..3be401c72270 100644
--- a/sound/soc/amd/acp/acp-sdw-sof-mach.c
+++ b/sound/soc/amd/acp/acp-sdw-sof-mach.c
@@ -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;
--
2.34.1