forked from Minki/linux
ASoC: core: Add snd_soc_card_get_kcontrol()
This is useful for drivers who want to grab a pointer to snd_kcontrol outside of the kcontrol callbacks. Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
3b2f64d00c
commit
4fefd69853
@ -475,6 +475,8 @@ int snd_soc_set_ac97_ops(struct snd_ac97_bus_ops *ops);
|
||||
struct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template,
|
||||
void *data, const char *long_name,
|
||||
const char *prefix);
|
||||
struct snd_kcontrol *snd_soc_card_get_kcontrol(struct snd_soc_card *soc_card,
|
||||
const char *name);
|
||||
int snd_soc_add_codec_controls(struct snd_soc_codec *codec,
|
||||
const struct snd_kcontrol_new *controls, int num_controls);
|
||||
int snd_soc_add_platform_controls(struct snd_soc_platform *platform,
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user