aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/soc-core.c
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2009-04-15 16:37:46 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2009-04-16 06:03:10 -0400
commitfd5dfad9cf51bc3575b5e50193403de4a3de23bc (patch)
tree98eb875794acc72107a4ea49b637080d20e44f6d /sound/soc/soc-core.c
parent3f1a4d826751d9759fc95da4e47d08d2745e0055 (diff)
ASoC: Volume controls are never of boolean type
Some limited volume controls (mostly simple attenuations) have only two settings so the ASoC info functions misreport them as booleans. Since we currently have no better information check for " Volume" in the control name and always report any controls matching as being integer. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r--sound/soc/soc-core.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 92503927b0c6..af11791a3b8c 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1779,7 +1779,7 @@ int snd_soc_info_volsw_ext(struct snd_kcontrol *kcontrol,
1779{ 1779{
1780 int max = kcontrol->private_value; 1780 int max = kcontrol->private_value;
1781 1781
1782 if (max == 1) 1782 if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
1783 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 1783 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1784 else 1784 else
1785 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 1785 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
@@ -1809,7 +1809,7 @@ int snd_soc_info_volsw(struct snd_kcontrol *kcontrol,
1809 unsigned int shift = mc->shift; 1809 unsigned int shift = mc->shift;
1810 unsigned int rshift = mc->rshift; 1810 unsigned int rshift = mc->rshift;
1811 1811
1812 if (max == 1) 1812 if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
1813 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 1813 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1814 else 1814 else
1815 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 1815 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
@@ -1916,7 +1916,7 @@ int snd_soc_info_volsw_2r(struct snd_kcontrol *kcontrol,
1916 (struct soc_mixer_control *)kcontrol->private_value; 1916 (struct soc_mixer_control *)kcontrol->private_value;
1917 int max = mc->max; 1917 int max = mc->max;
1918 1918
1919 if (max == 1) 1919 if (max == 1 && !strstr(kcontrol->id.name, " Volume"))
1920 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; 1920 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
1921 else 1921 else
1922 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; 1922 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;