|
@@ -2299,6 +2299,22 @@ static int snd_soc_add_controls(struct snd_card *card, struct device *dev,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
|
|
|
+ const char *name)
|
|
|
+{
|
|
|
+ struct snd_card *card = soc_card->snd_card;
|
|
|
+ struct snd_kcontrol *kctl;
|
|
|
+
|
|
|
+ if (unlikely(!name))
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ list_for_each_entry(kctl, &card->controls, list)
|
|
|
+ if (!strncmp(kctl->id.name, name, sizeof(kctl->id.name)))
|
|
|
+ return kctl;
|
|
|
+ return NULL;
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(snd_soc_card_get_kcontrol);
|
|
|
+
|
|
|
/**
|
|
|
* snd_soc_add_codec_controls - add an array of controls to a codec.
|
|
|
* Convenience function to add a list of controls. Many codecs were
|