]> git.karo-electronics.de Git - linux-beck.git/commitdiff
Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
authorMark Brown <broonie@kernel.org>
Thu, 29 Sep 2016 19:43:11 +0000 (12:43 -0700)
committerMark Brown <broonie@kernel.org>
Thu, 29 Sep 2016 19:43:11 +0000 (12:43 -0700)
sound/soc/soc-dapm.c

index d908ff8f97554cacdf6658288222744209287aee..801082fdc3e0eee63addaf21d3c28fd4ba963f54 100644 (file)
@@ -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;
        }