Commit 59dd50d1 authored by Chen-Yu Tsai's avatar Chen-Yu Tsai Committed by Ben Hutchings

ASoC: dapm: Fix value setting for _ENUM_DOUBLE MUX's second channel

commit 071133a2 upstream.

The value for the second channel in _ENUM_DOUBLE (double channel) MUXs
is not correctly updated, due to using the wrong bit shift.

Use the correct bit shift, so both channels toggle together.

Fixes: 3727b496 (ASoC: dapm: Consolidate MUXs and value MUXs)
Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent 29bcabf8
...@@ -2870,7 +2870,7 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol, ...@@ -2870,7 +2870,7 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
if (e->shift_l != e->shift_r) { if (e->shift_l != e->shift_r) {
if (item[1] > e->items) if (item[1] > e->items)
return -EINVAL; return -EINVAL;
val |= snd_soc_enum_item_to_val(e, item[1]) << e->shift_l; val |= snd_soc_enum_item_to_val(e, item[1]) << e->shift_r;
mask |= e->mask << e->shift_r; mask |= e->mask << e->shift_r;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment