Unverified Commit 7ce8e4d3 authored by Vijendar Mukunda's avatar Vijendar Mukunda Committed by Mark Brown
Browse files

ASoC: amd: acp: fix for cpu dai index logic



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: default avatarDan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/all/a201e871-375e-43eb-960d-5c048956c2ff@amd.com/T/


Fixes: 6d8348dd ("ASoC: amd: acp: refactor SoundWire machine driver code")
Signed-off-by: default avatarVijendar Mukunda <Vijendar.Mukunda@amd.com>
Link: https://patch.msgid.link/20241007085321.3991149-3-Vijendar.Mukunda@amd.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 914219d7
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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,
			cpus->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)
			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;