|
@@ -823,6 +823,7 @@ static int dapm_create_or_share_kcontrol(struct snd_soc_dapm_widget *w,
|
|
|
case snd_soc_dapm_switch:
|
|
|
case snd_soc_dapm_mixer:
|
|
|
case snd_soc_dapm_pga:
|
|
|
+ case snd_soc_dapm_out_drv:
|
|
|
wname_in_long_name = true;
|
|
|
kcname_in_long_name = true;
|
|
|
break;
|
|
@@ -3049,6 +3050,9 @@ int snd_soc_dapm_get_volsw(struct snd_kcontrol *kcontrol,
|
|
|
}
|
|
|
mutex_unlock(&card->dapm_mutex);
|
|
|
|
|
|
+ if (ret)
|
|
|
+ return ret;
|
|
|
+
|
|
|
if (invert)
|
|
|
ucontrol->value.integer.value[0] = max - val;
|
|
|
else
|
|
@@ -3200,7 +3204,7 @@ int snd_soc_dapm_put_enum_double(struct snd_kcontrol *kcontrol,
|
|
|
if (e->shift_l != e->shift_r) {
|
|
|
if (item[1] > e->items)
|
|
|
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;
|
|
|
}
|
|
|
|