summaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-05-07 13:05:49 +0200
committerMark Brown <broonie@opensource.wolfsonmicro.com>2010-05-07 17:41:33 +0200
commit637d3847ba0ca2c7780e6521cbe75568d19ff0db (patch)
tree6a9b76e2d0365cabba43f7a273feceb66710bf4c /include/sound
parentMerge branch 'topic/asoc' of git://git.kernel.org/pub/scm/linux/kernel/git/ti... (diff)
downloadlinux-637d3847ba0ca2c7780e6521cbe75568d19ff0db.tar.xz
linux-637d3847ba0ca2c7780e6521cbe75568d19ff0db.zip
ASoC: core: Support for limiting the volume
Add support for the core to limit the maximum volume on an existing control. The function will modify the soc_mixer_control.max value of the given control. The new value must be lower than the original one (chip maximum) If there is a need for limiting a gain on a given control, than machine drivers can do the following in their snd_soc_dai_link.init function: snd_soc_limit_volume(codec, "TPA6140A2 Headphone Playback Volume", 21); This will modify the original 31 (chip maximum) to 21, so user space will not be able to set the gain higher than this. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/soc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 01e9c66ddc6d..9f306f0710df 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -326,6 +326,8 @@ int snd_soc_get_volsw_s8(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
int snd_soc_put_volsw_s8(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol);
+int snd_soc_limit_volume(struct snd_soc_codec *codec,
+ const char *name, int max);
/**
* struct snd_soc_jack_pin - Describes a pin to update based on jack detection