Unverified Commit 656dd91a authored by Bard Liao's avatar Bard Liao Committed by Mark Brown
Browse files

ASoC: Intel: sof_sdw: break earlier when a adr link contains different codecs



create_codec_dai_name() is used to create codec component's information
in different adr links. We can and should break before we do anything.

Signed-off-by: default avatarBard Liao <yung-chuan.liao@linux.intel.com>
Signed-off-by: default avatarPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20230731214257.444605-19-pierre-louis.bossart@linux.intel.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 8673e68b
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -1157,6 +1157,15 @@ static int create_codec_dai_name(struct device *dev,

		adr = adr_link->adr_d[i].adr;

		codec_index = find_codec_info_part(adr);
		if (codec_index < 0)
			return codec_index;
		if (_codec_index != -1 && codec_index != _codec_index) {
			dev_dbg(dev, "Different devices on the same sdw link\n");
			break;
		}
		_codec_index = codec_index;

		sdw_version = SDW_VERSION(adr);
		link_id = SDW_DISCO_LINK_ID(adr);
		unique_id = SDW_UNIQUE_ID(adr);
@@ -1183,15 +1192,6 @@ static int create_codec_dai_name(struct device *dev,
		if (!codec[comp_index].name)
			return -ENOMEM;

		codec_index = find_codec_info_part(adr);
		if (codec_index < 0)
			return codec_index;
		if (_codec_index != -1 && codec_index != _codec_index) {
			dev_dbg(dev, "Different devices on the same sdw link\n");
			break;
		}
		_codec_index = codec_index;

		codec[comp_index].dai_name =
			codec_info_list[codec_index].dais[dai_index].dai_name;