[alsa-devel] [PATCH] ASoC: Fix long name of control for dapm_switch
Joonyoung Shim
dofmind at gmail.com
Wed Mar 4 02:47:09 CET 2009
The length of long control name doesn't include the length of widget
name at present when widget->id is snd_soc_dapm_switch, so the long
control name of dapm_switch is shortened.
To avoid this problem, the long control name only for dapm_mixer_named_ctl
must have simply the kcontrol name.
Signed-off-by: Joonyoung Shim <jy0922.shim at samsung.com>
---
sound/soc/soc-dapm.c | 21 +++++++++------------
1 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
index 4b8dbbf..7a1fed1 100644
--- a/sound/soc/soc-dapm.c
+++ b/sound/soc/soc-dapm.c
@@ -331,26 +331,23 @@ static int dapm_new_mixer(struct snd_soc_codec *codec,
* for dapm_mixer_named_ctl this is simply the
* kcontrol name.
*/
- name_len = strlen(w->kcontrols[i].name) + 1;
- if (w->id == snd_soc_dapm_mixer)
- name_len += 1 + strlen(w->name);
+ if (w->id == snd_soc_dapm_mixer_named_ctl)
+ name_len = strlen(w->kcontrols[i].name) + 1;
+ else
+ name_len = 2 + strlen(w->name)
+ + strlen(w->kcontrols[i].name);
path->long_name = kmalloc(name_len, GFP_KERNEL);
if (path->long_name == NULL)
return -ENOMEM;
- switch (w->id) {
- case snd_soc_dapm_mixer:
- default:
- snprintf(path->long_name, name_len, "%s %s",
- w->name, w->kcontrols[i].name);
- break;
- case snd_soc_dapm_mixer_named_ctl:
+ if (w->id == snd_soc_dapm_mixer_named_ctl)
snprintf(path->long_name, name_len, "%s",
w->kcontrols[i].name);
- break;
- }
+ else
+ snprintf(path->long_name, name_len, "%s %s",
+ w->name, w->kcontrols[i].name);
path->long_name[name_len - 1] = '\0';
--
1.5.6.3
--
- Joonyoung Shim
More information about the Alsa-devel
mailing list