فهرست منبع

[ALSA] soc - DAPM - Add bulk control registration

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>
Mark Brown 17 سال پیش
والد
کامیت
4ba1327ab8
2فایلهای تغییر یافته به همراه30 افزوده شده و 0 حذف شده
  1. 3 0
      include/sound/soc-dapm.h
  2. 27 0
      sound/soc/soc-dapm.c

+ 3 - 0
include/sound/soc-dapm.h

@@ -205,6 +205,9 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
 	struct snd_ctl_elem_value *ucontrol);
 	struct snd_ctl_elem_value *ucontrol);
 int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
 int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
 	const struct snd_soc_dapm_widget *widget);
 	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 */
 /* dapm path setup */
 int snd_soc_dapm_connect_input(struct snd_soc_codec *codec,
 int snd_soc_dapm_connect_input(struct snd_soc_codec *codec,

+ 27 - 0
sound/soc/soc-dapm.c

@@ -1233,6 +1233,33 @@ int snd_soc_dapm_new_control(struct snd_soc_codec *codec,
 }
 }
 EXPORT_SYMBOL_GPL(snd_soc_dapm_new_control);
 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
  * snd_soc_dapm_stream_event - send a stream event to the dapm core
  * @codec: audio codec
  * @codec: audio codec