Skip to content

Commit

Permalink
[ALSA] soc - DAPM - Add bulk control registration
Browse files Browse the repository at this point in the history
Most SoC drivers cut'n'paste a loop iterating over an array to register
their DAPM controls.  Provide a function they can call instead.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Graeme Gregory <graeme@openmoko.org>
Cc: Frank Mandarino <fmandarino@endrelia.com>
Cc: Jarkko Nikula <jarkko.nikula@nokia.com>
Cc: Richard Purdie <rpurdie@rpsys.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
  • Loading branch information
Mark Brown authored and Jaroslav Kysela committed May 19, 2008
1 parent ca1f30a commit 4ba1327
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
3 changes: 3 additions & 0 deletions include/sound/soc-dapm.h
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,9 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
const struct snd_soc_dapm_widget *widget);
int snd_soc_dapm_new_controls(struct snd_soc_codec *codec,
const struct snd_soc_dapm_widget *widget,
int num);

/* dapm path setup */
int snd_soc_dapm_connect_input(struct snd_soc_codec *codec,
Expand Down
27 changes: 27 additions & 0 deletions sound/soc/soc-dapm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1233,6 +1233,33 @@ int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_new_control);

/**
* snd_soc_dapm_new_controls - create new dapm controls
* @codec: audio codec
* @widget: widget array
* @num: number of widgets
*
* Creates new DAPM controls based upon the templates.
*
* Returns 0 for success else error.
*/
int snd_soc_dapm_new_controls(struct snd_soc_codec *codec,
const struct snd_soc_dapm_widget *widget,
int num)
{
int i, ret;

for (i = 0; i < num; i++) {
ret = snd_soc_dapm_new_control(codec, widget);
if (ret < 0)
return ret;
widget++;
}
return 0;
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_new_controls);


/**
* snd_soc_dapm_stream_event - send a stream event to the dapm core
* @codec: audio codec
Expand Down

0 comments on commit 4ba1327

Please sign in to comment.