lkml.org 
[lkml]   [2021]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 082/130] ASoC: tegra: Fix kcontrol put callback in AHUB
    Date
    From: Sameer Pujar <spujar@nvidia.com>

    commit a4e37950c9e9b126f9cbee79b8ab94a94646dcf1 upstream.

    The kcontrol put callback is expected to return 1 when there is change
    in HW or when the update is acknowledged by driver. This would ensure
    that change notifications are sent to subscribed applications. Update
    the AHUB driver accordingly.

    Fixes: 16e1bcc2caf4 ("ASoC: tegra: Add Tegra210 based AHUB driver")
    Signed-off-by: Sameer Pujar <spujar@nvidia.com>
    Suggested-by: Jaroslav Kysela <perex@perex.cz>
    Suggested-by: Mark Brown <broonie@kernel.org>
    Reviewed-by: Takashi Iwai <tiwai@suse.de>
    Link: https://lore.kernel.org/r/1637219231-406-12-git-send-email-spujar@nvidia.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    sound/soc/tegra/tegra210_ahub.c | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    --- a/sound/soc/tegra/tegra210_ahub.c
    +++ b/sound/soc/tegra/tegra210_ahub.c
    @@ -62,6 +62,7 @@ static int tegra_ahub_put_value_enum(str
    unsigned int *item = uctl->value.enumerated.item;
    unsigned int value = e->values[item[0]];
    unsigned int i, bit_pos, reg_idx = 0, reg_val = 0;
    + int change = 0;

    if (item[0] >= e->items)
    return -EINVAL;
    @@ -86,12 +87,14 @@ static int tegra_ahub_put_value_enum(str

    /* Update widget power if state has changed */
    if (snd_soc_component_test_bits(cmpnt, update[i].reg,
    - update[i].mask, update[i].val))
    - snd_soc_dapm_mux_update_power(dapm, kctl, item[0], e,
    - &update[i]);
    + update[i].mask,
    + update[i].val))
    + change |= snd_soc_dapm_mux_update_power(dapm, kctl,
    + item[0], e,
    + &update[i]);
    }

    - return 0;
    + return change;
    }

    static struct snd_soc_dai_driver tegra210_ahub_dais[] = {

    \
     
     \ /
      Last update: 2021-12-06 16:40    [W:5.820 / U:0.196 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site