提交 a1e5e7e9 编写于 作者: M Mythri P K 提交者: Mark Brown

ASoC: core: Pass kcontrol to bytes tlv callbacks

Add kcontrol to the tlv callbacks in soc_bytes_ext, as it is
needed for referencing the corresponding control in the driver
code

Also fix the only upstream user in topology core
Signed-off-by: NMythri P K <mythri.p.k@intel.com>
Signed-off-by: NJeeja KP <jeeja.kp@intel.com>
Signed-off-by: NVinod Koul <vinod.koul@intel.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 8005c49d
...@@ -92,8 +92,10 @@ struct snd_soc_tplg_kcontrol_ops { ...@@ -92,8 +92,10 @@ struct snd_soc_tplg_kcontrol_ops {
/* Bytes ext operations, for TLV byte controls */ /* Bytes ext operations, for TLV byte controls */
struct snd_soc_tplg_bytes_ext_ops { struct snd_soc_tplg_bytes_ext_ops {
u32 id; u32 id;
int (*get)(unsigned int __user *bytes, unsigned int size); int (*get)(struct snd_kcontrol *kcontrol, unsigned int __user *bytes,
int (*put)(const unsigned int __user *bytes, unsigned int size); unsigned int size);
int (*put)(struct snd_kcontrol *kcontrol,
const unsigned int __user *bytes, unsigned int size);
}; };
/* /*
......
...@@ -1225,8 +1225,10 @@ struct soc_bytes_ext { ...@@ -1225,8 +1225,10 @@ struct soc_bytes_ext {
struct snd_soc_dobj dobj; struct snd_soc_dobj dobj;
/* used for TLV byte control */ /* used for TLV byte control */
int (*get)(unsigned int __user *bytes, unsigned int size); int (*get)(struct snd_kcontrol *kcontrol, unsigned int __user *bytes,
int (*put)(const unsigned int __user *bytes, unsigned int size); unsigned int size);
int (*put)(struct snd_kcontrol *kcontrol, const unsigned int __user *bytes,
unsigned int size);
}; };
/* multi register control */ /* multi register control */
......
...@@ -779,11 +779,11 @@ int snd_soc_bytes_tlv_callback(struct snd_kcontrol *kcontrol, int op_flag, ...@@ -779,11 +779,11 @@ int snd_soc_bytes_tlv_callback(struct snd_kcontrol *kcontrol, int op_flag,
switch (op_flag) { switch (op_flag) {
case SNDRV_CTL_TLV_OP_READ: case SNDRV_CTL_TLV_OP_READ:
if (params->get) if (params->get)
ret = params->get(tlv, count); ret = params->get(kcontrol, tlv, count);
break; break;
case SNDRV_CTL_TLV_OP_WRITE: case SNDRV_CTL_TLV_OP_WRITE:
if (params->put) if (params->put)
ret = params->put(tlv, count); ret = params->put(kcontrol, tlv, count);
break; break;
} }
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册