[alsa-devel] [PATCH] ASOC:DAPM: extend dapm kcontrol to support runtime route update

Takashi Iwai tiwai at suse.de
Thu Dec 12 17:52:59 CET 2013


At Thu, 12 Dec 2013 16:06:59 +0800,
Nenghua Cao wrote:
> 
> From: nhcao <nhcao at marvell.com>
> 
>     DPCM can dynamically alter the FE to BE PCM links at runtime based
> on mixer setting updates. DAPM has provided common get/put function for
> mixer/mux. But these function doesn't call soc_dpcm_runtime_update()
> func to update pcm links. This patch defines a DPCM DPCM kcontrol. For
> this control, the common get/put function will update FE to BE links
> dynamically. This patch has no impact to the current code.
> 
> Change-Id: I45e291f467e4fa17e21aa8923c2b712d52067aca

Don't include such an internal tag in the public patch.

> Signed-off-by: nhcao <nhcao at marvell.com>

You have to provide your real name in from and signed-off-by tags.

> ---
>  include/sound/control.h  |    4 ++++
>  include/sound/soc-dapm.h |   32 ++++++++++++++++++++++++++++++++
>  sound/core/control.c     |    1 +
>  sound/soc/soc-dapm.c     |   28 ++++++++++++++++++++++++----
>  4 files changed, 61 insertions(+), 4 deletions(-)
> 
> diff --git a/include/sound/control.h b/include/sound/control.h
> index 5358892..3788284 100644
> --- a/include/sound/control.h
> +++ b/include/sound/control.h
> @@ -44,6 +44,8 @@ struct snd_kcontrol_new {
>  	unsigned int index;		/* index of item */
>  	unsigned int access;		/* access rights */
>  	unsigned int count;		/* count of same elements */
> +	/* this kcontrol impact fe<->be relationship at runtime */
> +	unsigned char dpcm_checked;
>  	snd_kcontrol_info_t *info;
>  	snd_kcontrol_get_t *get;
>  	snd_kcontrol_put_t *put;
> @@ -63,6 +65,8 @@ struct snd_kcontrol {
>  	struct list_head list;		/* list of controls */
>  	struct snd_ctl_elem_id id;
>  	unsigned int count;		/* count of same elements */
> +	/* this kcontrol impact fe<->be relationship at runtime */
> +	unsigned char dpcm_checked;
>  	snd_kcontrol_info_t *info;
>  	snd_kcontrol_get_t *get;
>  	snd_kcontrol_put_t *put;

You don't need to extend the ALSA core API for such a purpose.  It's
ASoC-specific, so rather extend struct soc_mixer_control instead, if
such a new flag is really needed.


Takashi


More information about the Alsa-devel mailing list