Commit 48f466d1 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Mark Brown
Browse files

ASoC: core: Replace soc_find_matching_codec() with soc_find_codec()



soc_find_matching_codec() works in the same way as soc_find_codec() except that
it only works for auxdevs. It can easily be replaced by the generic
soc_find_codec().

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent b8257be5
Loading
Loading
Loading
Loading
+4 −22
Original line number Diff line number Diff line
@@ -1649,32 +1649,13 @@ static void soc_unregister_ac97_dai_link(struct snd_soc_pcm_runtime *rtd)
}
#endif

static struct snd_soc_codec *soc_find_matching_codec(struct snd_soc_card *card,
	int num)
{
	struct snd_soc_aux_dev *aux_dev = &card->aux_dev[num];
	struct snd_soc_codec *codec;

	/* find CODEC from registered CODECs */
	list_for_each_entry(codec, &codec_list, list) {
		if (aux_dev->codec_of_node &&
		   (codec->dev->of_node != aux_dev->codec_of_node))
			continue;
		if (aux_dev->codec_name &&
			strcmp(codec->component.name, aux_dev->codec_name))
			continue;
		return codec;
	}

	return NULL;
}

static int soc_check_aux_dev(struct snd_soc_card *card, int num)
{
	struct snd_soc_aux_dev *aux_dev = &card->aux_dev[num];
	const char *codecname = aux_dev->codec_name;
	struct snd_soc_codec *codec = soc_find_matching_codec(card, num);
	struct snd_soc_codec *codec;

	codec = soc_find_codec(aux_dev->codec_of_node, aux_dev->codec_name);
	if (codec)
		return 0;
	if (aux_dev->codec_of_node)
@@ -1689,8 +1670,9 @@ static int soc_probe_aux_dev(struct snd_soc_card *card, int num)
	struct snd_soc_aux_dev *aux_dev = &card->aux_dev[num];
	const char *codecname = aux_dev->codec_name;
	int ret = -ENODEV;
	struct snd_soc_codec *codec = soc_find_matching_codec(card, num);
	struct snd_soc_codec *codec;

	codec = soc_find_codec(aux_dev->codec_of_node, aux_dev->codec_name);
	if (!codec) {
		if (aux_dev->codec_of_node)
			codecname = of_node_full_name(aux_dev->codec_of_node);