[PATCH] ASoC: rt711-sdca: add the notification when volume changed

Shuming [范書銘] shumingf at realtek.com
Thu Apr 22 11:53:21 CEST 2021


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 at perex.cz>
> Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
> ------Please consider the environment before printing this e-mail.


More information about the Alsa-devel mailing list