Hi Jaroslav, > > @@ -509,12 +509,16 @@ static int rt711_sdca_set_gain_put(struct > snd_kcontrol *kcontrol, > > (struct soc_mixer_control *)kcontrol->private_value; > > struct rt711_sdca_priv *rt711 = > snd_soc_component_get_drvdata(component); > > unsigned int read_l, read_r, gain_l_val, gain_r_val; > > - unsigned int i, adc_vol_flag = 0; > > + unsigned int i, adc_vol_flag = 0, changed = 0; > > + unsigned int lvalue, rvalue; > > > > if (strstr(ucontrol->id.name, "FU1E Capture Volume") || > > strstr(ucontrol->id.name, "FU0F Capture Volume")) > > adc_vol_flag = 1; > > > > + regmap_read(rt711->mbq_regmap, mc->reg, &lvalue); > > + regmap_read(rt711->mbq_regmap, mc->rreg, &rvalue); > > + > > /* control value to 2's complement value */ > > /* L Channel */ > > gain_l_val = ucontrol->value.integer.value[0]; @@ -560,6 +564,9 @@ > > static int rt711_sdca_set_gain_put(struct snd_kcontrol *kcontrol, > > gain_r_val &= 0xffff; > > } > > > > + if (lvalue != gain_l_val || rvalue != gain_r_val) > > + changed = 1; > > I think that it's safe to return early with the zero return value here? Why to > rewrite the identical value in the hw registers? OK, will fix. Thanks. > > Jaroslav > > -- > Jaroslav Kysela <perex@xxxxxxxx> > Linux Sound Maintainer; ALSA Project; Red Hat, Inc. > ------Please consider the environment before printing this e-mail.