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
2 changed files with 18 additions and 0 deletions
|
@ -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,
|
struct snd_kcontrol *snd_soc_cnew(const struct snd_kcontrol_new *_template,
|
||||||
void *data, const char *long_name,
|
void *data, const char *long_name,
|
||||||
const char *prefix);
|
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,
|
int snd_soc_add_codec_controls(struct snd_soc_codec *codec,
|
||||||
const struct snd_kcontrol_new *controls, int num_controls);
|
const struct snd_kcontrol_new *controls, int num_controls);
|
||||||
int snd_soc_add_platform_controls(struct snd_soc_platform *platform,
|
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;
|
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.
|
* snd_soc_add_codec_controls - add an array of controls to a codec.
|
||||||
* Convenience function to add a list of controls. Many codecs were
|
* Convenience function to add a list of controls. Many codecs were
|
||||||
|
|
Loading…
Add table
Reference in a new issue