[alsa-devel] [PATCH] ASoC: core: Pass kcontrol pointer to bytes tlv callbacks

Vinod Koul vinod.koul at intel.com
Fri Jun 12 09:30:48 CEST 2015


On Tue, Jun 02, 2015 at 03:24:03PM -0700, Ben Zhang wrote:
> The get/put callbacks need the kcontrol pointer to get context
> information like snd_soc_codec and drvdata.
> 
> Signed-off-by: Ben Zhang <benzh at chromium.org>
I did have this change in my internal tree as well and is required, thanks
for sending, I need this is SKL driver..

Reviewed-by: Vinod Koul <vinod.koul at intel.com>

-- 
~Vinod

> ---
>  include/sound/soc.h | 6 ++++--
>  sound/soc/soc-ops.c | 4 ++--
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/include/sound/soc.h b/include/sound/soc.h
> index fcb312b..404265d 100644
> --- a/include/sound/soc.h
> +++ b/include/sound/soc.h
> @@ -1169,8 +1169,10 @@ struct soc_bytes {
>  struct soc_bytes_ext {
>  	int max;
>  	/* used for TLV byte control */
> -	int (*get)(unsigned int __user *bytes, unsigned int size);
> -	int (*put)(const unsigned int __user *bytes, unsigned int size);
> +	int (*get)(struct snd_kcontrol *kcontrol,
> +		   unsigned int __user *bytes, unsigned int size);
> +	int (*put)(struct snd_kcontrol *kcontrol,
> +		   const unsigned int __user *bytes, unsigned int size);
>  };
>  
>  /* multi register control */
> diff --git a/sound/soc/soc-ops.c b/sound/soc/soc-ops.c
> index 100d92b..7f53da9 100644
> --- a/sound/soc/soc-ops.c
> +++ b/sound/soc/soc-ops.c
> @@ -751,11 +751,11 @@ int snd_soc_bytes_tlv_callback(struct snd_kcontrol *kcontrol, int op_flag,
>  	switch (op_flag) {
>  	case SNDRV_CTL_TLV_OP_READ:
>  		if (params->get)
> -			ret = params->get(tlv, count);
> +			ret = params->get(kcontrol, tlv, count);
>  		break;
>  	case SNDRV_CTL_TLV_OP_WRITE:
>  		if (params->put)
> -			ret = params->put(tlv, count);
> +			ret = params->put(kcontrol, tlv, count);
>  		break;
>  	}
>  	return ret;
> -- 
> 2.2.0.rc0.207.ga3a616c
> 

-- 


More information about the Alsa-devel mailing list