lkml.org 
[lkml]   [2014]   [Jun]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.14 49/68] ASoC: dapm: Make sure to always update the DAPM graph in _put_volsw()
    Date
    3.14-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Lars-Peter Clausen <lars@metafoo.de>

    commit c9e065c27fe9b81e5d6e7681d77a24f7b9616675 upstream.

    When using auto-muted controls it may happen that the register value will not
    change when changing a control from enabled to disabled (since the control might
    be physically disabled due to the auto-muting). We have to make sure to still
    update the DAPM graph and disconnect the mixer input.

    Fixes: commit 5729507 ("ASoC: dapm: Implement mixer input auto-disable")
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    sound/soc/soc-dapm.c | 23 ++++++++++-------------
    1 file changed, 10 insertions(+), 13 deletions(-)

    --- a/sound/soc/soc-dapm.c
    +++ b/sound/soc/soc-dapm.c
    @@ -2888,22 +2888,19 @@ int snd_soc_dapm_put_volsw(struct snd_kc
    mutex_lock_nested(&card->dapm_mutex, SND_SOC_DAPM_CLASS_RUNTIME);

    change = dapm_kcontrol_set_value(kcontrol, val);
    -
    - if (reg != SND_SOC_NOPM) {
    - mask = mask << shift;
    - val = val << shift;
    -
    - change = snd_soc_test_bits(codec, reg, mask, val);
    - }
    -
    if (change) {
    if (reg != SND_SOC_NOPM) {
    - update.kcontrol = kcontrol;
    - update.reg = reg;
    - update.mask = mask;
    - update.val = val;
    + mask = mask << shift;
    + val = val << shift;
    +
    + if (snd_soc_test_bits(codec, reg, mask, val)) {
    + update.kcontrol = kcontrol;
    + update.reg = reg;
    + update.mask = mask;
    + update.val = val;
    + card->update = &update;
    + }

    - card->update = &update;
    }

    ret = soc_dapm_mixer_update_power(card, kcontrol, connect);



    \
     
     \ /
      Last update: 2014-06-24 18:41    [W:7.474 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site