ASoC: tegra: Add master volume/mute control support
authorSameer Pujar <spujar@nvidia.com>
Tue, 30 Nov 2021 13:23:25 +0000 (18:53 +0530)
committerMark Brown <broonie@kernel.org>
Wed, 1 Dec 2021 14:15:39 +0000 (14:15 +0000)
commit0d242698fa693ab8cb98c11ba7cf7fc8f7242c0b
tree5a3aadc9382b3f49969ed92f83230a0679e68198
parent67140b64b68395b79177efcd16a7530ed5311e49
ASoC: tegra: Add master volume/mute control support

The MVC module has a per channel control bit, based on which it decides
to apply channel specific volume/mute settings. When per channel control
bit is enabled (which is the default HW configuration), all MVC channel
volume/mute can be independently controlled. If the control is disabled,
channel-0 volume/mute setting is applied by HW to all remaining channels.
Thus add support to leverage this HW feature by exposing master controls
for volume/mute.

With this, now there are per channel and master volume/mute controls.
Users need to just use controls which are suitable for their applications.
The per channel control enable/disable is mananged in driver and hidden
from users, so that they need to just worry about respective volume/mute
controls.

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Link: https://lore.kernel.org/r/1638278605-28225-1-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/tegra/tegra210_mvc.c
sound/soc/tegra/tegra210_mvc.h