All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Brown <broonie@kernel.org>
To: "Subhransu S. Prusty" <subhransu.s.prusty@intel.com>
Cc: vinod.koul@intel.com, tiwai@suse.de, alsa-devel@alsa-project.org,
	Lars-Peter Clausen <lars@metafoo.de>,
	lgirdwood@gmail.com
Subject: Re: [PATCH v5 03/12] ALSA: control: Add init callback for kcontrol
Date: Sat, 6 Sep 2014 15:21:24 +0100	[thread overview]
Message-ID: <20140906142124.GG2601@sirena.org.uk> (raw)
In-Reply-To: <1409661367-19047-4-git-send-email-subhransu.s.prusty@intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 2685 bytes --]

On Tue, Sep 02, 2014 at 06:05:58PM +0530, Subhransu S. Prusty wrote:
> Some controls need to initialize stuffs like pvt data, so they need a
> callback if the control creation is successful.

Adding Takashi - this is ALSA core code so he needs to review it.

> Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
> ---
>  include/sound/control.h | 3 +++
>  sound/core/control.c    | 7 +++++++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/include/sound/control.h b/include/sound/control.h
> index 0426139..1389f69 100644
> --- a/include/sound/control.h
> +++ b/include/sound/control.h
> @@ -30,6 +30,7 @@ struct snd_kcontrol;
>  typedef int (snd_kcontrol_info_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_info * uinfo);
>  typedef int (snd_kcontrol_get_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
>  typedef int (snd_kcontrol_put_t) (struct snd_kcontrol * kcontrol, struct snd_ctl_elem_value * ucontrol);
> +typedef int (snd_kcontrol_init_t) (struct snd_kcontrol * kcontrol);
>  typedef int (snd_kcontrol_tlv_rw_t)(struct snd_kcontrol *kcontrol,
>  				    int op_flag, /* SNDRV_CTL_TLV_OP_XXX */
>  				    unsigned int size,
> @@ -52,6 +53,7 @@ struct snd_kcontrol_new {
>  	snd_kcontrol_info_t *info;
>  	snd_kcontrol_get_t *get;
>  	snd_kcontrol_put_t *put;
> +	snd_kcontrol_init_t *init;
>  	union {
>  		snd_kcontrol_tlv_rw_t *c;
>  		const unsigned int *p;
> @@ -71,6 +73,7 @@ struct snd_kcontrol {
>  	snd_kcontrol_info_t *info;
>  	snd_kcontrol_get_t *get;
>  	snd_kcontrol_put_t *put;
> +	snd_kcontrol_init_t *init;
>  	union {
>  		snd_kcontrol_tlv_rw_t *c;
>  		const unsigned int *p;
> diff --git a/sound/core/control.c b/sound/core/control.c
> index b961134..9d30663 100644
> --- a/sound/core/control.c
> +++ b/sound/core/control.c
> @@ -256,6 +256,7 @@ struct snd_kcontrol *snd_ctl_new1(const struct snd_kcontrol_new *ncontrol,
>  	kctl.info = ncontrol->info;
>  	kctl.get = ncontrol->get;
>  	kctl.put = ncontrol->put;
> +	kctl.init = ncontrol->init;
>  	kctl.tlv.p = ncontrol->tlv.p;
>  	kctl.private_value = ncontrol->private_value;
>  	kctl.private_data = private_data;
> @@ -362,6 +363,12 @@ int snd_ctl_add(struct snd_card *card, struct snd_kcontrol *kcontrol)
>  		err = -ENOMEM;
>  		goto error;
>  	}
> +	if (kcontrol->init) {
> +		err = kcontrol->init(kcontrol);
> +		if (err < 0)
> +			goto error;
> +	}
> +
>  	list_add_tail(&kcontrol->list, &card->controls);
>  	card->controls_count += kcontrol->count;
>  	kcontrol->id.numid = card->last_numid + 1;
> -- 
> 1.9.0
> 
> 

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



  reply	other threads:[~2014-09-06 14:21 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-02 12:35 [PATCH v5 00/12] Add mrfld DSP topology and widgets Subhransu S. Prusty
2014-09-02 12:35 ` [PATCH v5 01/12] ASoC: mfld: pcm: Replace pr_ with dev_ Subhransu S. Prusty
2014-09-06 14:21   ` Mark Brown
2014-09-02 12:35 ` [PATCH v5 02/12] ASoC: Intel: mfld-pcm: don't call trigger ops to DSP for internal streams Subhransu S. Prusty
2014-09-02 12:35 ` [PATCH v5 03/12] ALSA: control: Add init callback for kcontrol Subhransu S. Prusty
2014-09-06 14:21   ` Mark Brown [this message]
2014-09-06 15:56     ` Takashi Iwai
2014-09-08  4:14       ` Vinod Koul
2014-09-08  8:04         ` Takashi Iwai
2014-09-08  8:08           ` Vinod Koul
2014-09-08  8:36             ` Takashi Iwai
2014-09-08 11:08               ` Vinod Koul
2014-09-09 11:44             ` Mark Brown
2014-09-10  8:05               ` Vinod Koul
2014-09-02 12:35 ` [PATCH v5 04/12] ASoC: Intel: mrfld: add bytes control for modules Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 05/12] ASoC: Intel: mrfld: add the gain controls Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 06/12] ASoC: Intel: mfld-pcm: add control for powering up/down dsp Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 07/12] ASoC: Intel: mrfld: add DSP core controls Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 08/12] ASoC: Export dapm_kcontrol_get_value Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 09/12] ASoC: Intel: mrfld: add the DSP DAPM widgets Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 10/12] ASoC: Intel: mfld-pcm: add FE and BE ops Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 11/12] ASoC: Intel: mrfld: Use snd_soc_dai_get_drvdata to derive drv data Subhransu S. Prusty
2014-09-02 12:36 ` [PATCH v5 12/12] ASoC: Intel: mrfld: add the DSP mixers Subhransu S. Prusty

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140906142124.GG2601@sirena.org.uk \
    --to=broonie@kernel.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=lars@metafoo.de \
    --cc=lgirdwood@gmail.com \
    --cc=subhransu.s.prusty@intel.com \
    --cc=tiwai@suse.de \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.