[PATCH v3 4/7] ASoC: codecs: wcd938x: add basic controls

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Fri Mar 19 17:03:09 CET 2021


> +static int wcd938x_ear_pa_put_gain(struct snd_kcontrol *kcontrol,
> +				   struct snd_ctl_elem_value *ucontrol)
> +{
> +	struct snd_soc_component *component = snd_soc_kcontrol_component(kcontrol);
> +	struct wcd938x_sdw_priv *wcd = snd_soc_component_get_drvdata(component);
> +	struct wcd938x_priv *wcd938x = wcd->wcd938x;
> +
> +	if (wcd938x->comp1_enable) {
> +		dev_err(component->dev, "Can not set EAR PA Gain, compander1 is enabled\n");
> +		return -EINVAL;
> +	}
> +
> +	snd_soc_component_write_field(component, WCD938X_ANA_EAR_COMPANDER_CTL,
> +				      WCD938X_EAR_GAIN_MASK,
> +				      ucontrol->value.integer.value[0]);
> +
> +	return 0;

that goes back to my other comments, the earpiece is connected to the RX 
interface, so what component would be used to set the gain here? the TX 
one? But what tells you this component is active and ready to support 
commands?



More information about the Alsa-devel mailing list