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

Nenghua Cao nhcao at marvell.com
Fri Dec 13 12:25:16 CET 2013


On 12/13/2013 12:52 AM, Takashi Iwai wrote:
> 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.
> 
Thanks for your reminder. Fixed them.
>> > ---
>> >  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.
> 
It is a good suggestion. We should avoid touching ALSA core. I also want
to introduce little change. I made another patch per your suggestion.
Please review it again. Thanks!
> 
> Takashi



More information about the Alsa-devel mailing list