]> git.dujemihanovic.xyz Git - linux.git/commitdiff
ASoC: tegra: Fix kcontrol put callback in ADX
authorSameer Pujar <spujar@nvidia.com>
Thu, 18 Nov 2021 07:07:10 +0000 (12:37 +0530)
committerMark Brown <broonie@kernel.org>
Thu, 18 Nov 2021 19:02:43 +0000 (19:02 +0000)
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. Filter
out duplicate updates in ADX driver.

Fixes: a99ab6f395a9 ("ASoC: tegra: Add Tegra210 based ADX 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-16-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/tegra/tegra210_adx.c

index d7c7849c2f92c999b8463b7715284e6555fb74b7..933c4503fe50c2e9a617d663997797e57c7b1358 100644 (file)
@@ -193,6 +193,9 @@ static int tegra210_adx_put_byte_map(struct snd_kcontrol *kcontrol,
        struct soc_mixer_control *mc =
                (struct soc_mixer_control *)kcontrol->private_value;;
 
+       if (value == bytes_map[mc->reg])
+               return 0;
+
        if (value >= 0 && value <= 255) {
                /* update byte map and enable slot */
                bytes_map[mc->reg] = value;