summaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c26
1 files changed, 4 insertions, 22 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 0cd36b781f4d..c8bdac2db377 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -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);