On Wed, Jun 10, 2020 at 08:45:35PM +0300, Dan Carpenter wrote:
On Wed, Jun 10, 2020 at 10:58:28PM +0530, Vaibhav Agarwal wrote:
@@ -437,11 +433,12 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol, struct gbaudio_module_info *module; struct snd_soc_dapm_widget_list *wlist = snd_kcontrol_chip(kcontrol); struct snd_soc_dapm_widget *widget = wlist->widgets[0];
- struct snd_soc_codec *codec = widget->codec;
- struct gbaudio_codec_info *gb = snd_soc_codec_get_drvdata(codec);
- struct device *codec_dev = widget->dapm->dev;
- struct gbaudio_codec_info *gb = dev_get_drvdata(codec_dev);
- struct snd_soc_dapm_update *update = NULL;
^^^^^^^^^^^^^
struct gb_bundle *bundle;
- dev_dbg(codec->dev, "Entered %s:%s\n", __func__, kcontrol->id.name);
- dev_dbg(codec_dev, "Entered %s:%s\n", __func__, kcontrol->id.name); module = find_gb_module(gb, kcontrol->id.name); if (!module) return -EINVAL;
@@ -458,17 +455,13 @@ static int gbcodec_mixer_dapm_ctl_put(struct snd_kcontrol *kcontrol, max = le32_to_cpu(info->value.integer.max); mask = (1 << fls(max)) - 1; val = ucontrol->value.integer.value[0] & mask;
connect = !!val;
/* update ucontrol */ if (gbvalue.value.integer_value[0] != val) { for (wi = 0; wi < wlist->num_widgets; wi++) { widget = wlist->widgets[wi];
widget->value = val;
widget->dapm->update = NULL;
snd_soc_dapm_mixer_update_power(widget, kcontrol,
connect);
snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
val, update);
^^^^^^
Always NULL. Just delete the update variable.
Aah, my bad! Thanks Dan for sharing your comments. I'll fix this while sharing next patchset.
-- Regards, Vaibhav
regards, dan carpenter