diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-03-05 12:06:23 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-03-06 08:37:14 -0500 |
commit | 07495f3e5af3a472f0f49957692cac15168fa528 (patch) | |
tree | 42667955b46fdad9bb9fef3f564b347f391540fe /sound/soc/soc-dapm.c | |
parent | b0c5033f02182d1e9634edc737df88b82264e820 (diff) |
ASoC: Fix memory allocation for snd_soc_dapm_switch names
snd_soc_dapm_switch ends up ends up in dapm_new_mixer() (since a switch
is a special case of a mixer with only one input) but this wasn't
correctly handled in the code.
Also fix the coding style for the switch below while we're here.
Reported-by: Joonyoung Shim <dofmind@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/soc-dapm.c')
-rw-r--r-- | sound/soc/soc-dapm.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index 7da6d0db40f2..735903a74675 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -332,7 +332,7 @@ static int dapm_new_mixer(struct snd_soc_codec *codec, | |||
332 | * kcontrol name. | 332 | * kcontrol name. |
333 | */ | 333 | */ |
334 | name_len = strlen(w->kcontrols[i].name) + 1; | 334 | name_len = strlen(w->kcontrols[i].name) + 1; |
335 | if (w->id == snd_soc_dapm_mixer) | 335 | if (w->id != snd_soc_dapm_mixer_named_ctl) |
336 | name_len += 1 + strlen(w->name); | 336 | name_len += 1 + strlen(w->name); |
337 | 337 | ||
338 | path->long_name = kmalloc(name_len, GFP_KERNEL); | 338 | path->long_name = kmalloc(name_len, GFP_KERNEL); |
@@ -341,15 +341,14 @@ static int dapm_new_mixer(struct snd_soc_codec *codec, | |||
341 | return -ENOMEM; | 341 | return -ENOMEM; |
342 | 342 | ||
343 | switch (w->id) { | 343 | switch (w->id) { |
344 | case snd_soc_dapm_mixer: | ||
345 | default: | 344 | default: |
346 | snprintf(path->long_name, name_len, "%s %s", | 345 | snprintf(path->long_name, name_len, "%s %s", |
347 | w->name, w->kcontrols[i].name); | 346 | w->name, w->kcontrols[i].name); |
348 | break; | 347 | break; |
349 | case snd_soc_dapm_mixer_named_ctl: | 348 | case snd_soc_dapm_mixer_named_ctl: |
350 | snprintf(path->long_name, name_len, "%s", | 349 | snprintf(path->long_name, name_len, "%s", |
351 | w->kcontrols[i].name); | 350 | w->kcontrols[i].name); |
352 | break; | 351 | break; |
353 | } | 352 | } |
354 | 353 | ||
355 | path->long_name[name_len - 1] = '\0'; | 354 | path->long_name[name_len - 1] = '\0'; |