|
@@ -2515,19 +2515,13 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
|
|
int wi;
|
|
int wi;
|
|
|
|
|
|
val = (ucontrol->value.integer.value[0] & mask);
|
|
val = (ucontrol->value.integer.value[0] & mask);
|
|
|
|
+ connect = !!val;
|
|
|
|
|
|
if (invert)
|
|
if (invert)
|
|
val = max - val;
|
|
val = max - val;
|
|
mask = mask << shift;
|
|
mask = mask << shift;
|
|
val = val << shift;
|
|
val = val << shift;
|
|
|
|
|
|
- if (val)
|
|
|
|
- /* new connection */
|
|
|
|
- connect = invert ? 0 : 1;
|
|
|
|
- else
|
|
|
|
- /* old connection must be powered down */
|
|
|
|
- connect = invert ? 1 : 0;
|
|
|
|
-
|
|
|
|
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);
|
|
mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);
|
|
|
|
|
|
change = snd_soc_test_bits(widget->codec, reg, mask, val);
|
|
change = snd_soc_test_bits(widget->codec, reg, mask, val);
|