Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da602ab8 authored by Benoît Thébaudeau's avatar Benoît Thébaudeau Committed by Mark Brown
Browse files

ASoC: dapm: Remove incomplete stereo code



Stereo is not yet supported by dapm widgets, so remove stereo code from
snd_soc_dapm_get_volsw(), and warn if stereo controls are detected.

Signed-off-by: default avatarBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 9c9acc91
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -2464,23 +2464,20 @@ int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol,
		(struct soc_mixer_control *)kcontrol->private_value;
	unsigned int reg = mc->reg;
	unsigned int shift = mc->shift;
	unsigned int rshift = mc->rshift;
	int max = mc->max;
	unsigned int invert = mc->invert;
	unsigned int mask = (1 << fls(max)) - 1;
	unsigned int invert = mc->invert;

	if (snd_soc_volsw_is_stereo(mc))
		dev_warn(widget->dapm->dev,
			 "Control '%s' is stereo, which is not supported\n",
			 kcontrol->id.name);

	ucontrol->value.integer.value[0] =
		(snd_soc_read(widget->codec, reg) >> shift) & mask;
	if (shift != rshift)
		ucontrol->value.integer.value[1] =
			(snd_soc_read(widget->codec, reg) >> rshift) & mask;
	if (invert) {
	if (invert)
		ucontrol->value.integer.value[0] =
			max - ucontrol->value.integer.value[0];
		if (shift != rshift)
			ucontrol->value.integer.value[1] =
				max - ucontrol->value.integer.value[1];
	}

	return 0;
}
@@ -2514,6 +2511,11 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
	struct snd_soc_dapm_update update;
	int wi;

	if (snd_soc_volsw_is_stereo(mc))
		dev_warn(widget->dapm->dev,
			 "Control '%s' is stereo, which is not supported\n",
			 kcontrol->id.name);

	val = (ucontrol->value.integer.value[0] & mask);
	connect = !!val;