diff options
Diffstat (limited to 'sound/soc/codecs/wm8971.c')
-rw-r--r-- | sound/soc/codecs/wm8971.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c index d66efb0546ea..a65b781af512 100644 --- a/sound/soc/codecs/wm8971.c +++ b/sound/soc/codecs/wm8971.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/pm.h> | 20 | #include <linux/pm.h> |
21 | #include <linux/i2c.h> | 21 | #include <linux/i2c.h> |
22 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
23 | #include <linux/slab.h> | ||
23 | #include <sound/core.h> | 24 | #include <sound/core.h> |
24 | #include <sound/pcm.h> | 25 | #include <sound/pcm.h> |
25 | #include <sound/pcm_params.h> | 26 | #include <sound/pcm_params.h> |
@@ -338,8 +339,6 @@ static int wm8971_add_widgets(struct snd_soc_codec *codec) | |||
338 | 339 | ||
339 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); | 340 | snd_soc_dapm_add_routes(codec, audio_map, ARRAY_SIZE(audio_map)); |
340 | 341 | ||
341 | snd_soc_dapm_new_widgets(codec); | ||
342 | |||
343 | return 0; | 342 | return 0; |
344 | } | 343 | } |
345 | 344 | ||
@@ -703,16 +702,9 @@ static int wm8971_init(struct snd_soc_device *socdev, | |||
703 | snd_soc_add_controls(codec, wm8971_snd_controls, | 702 | snd_soc_add_controls(codec, wm8971_snd_controls, |
704 | ARRAY_SIZE(wm8971_snd_controls)); | 703 | ARRAY_SIZE(wm8971_snd_controls)); |
705 | wm8971_add_widgets(codec); | 704 | wm8971_add_widgets(codec); |
706 | ret = snd_soc_init_card(socdev); | 705 | |
707 | if (ret < 0) { | ||
708 | printk(KERN_ERR "wm8971: failed to register card\n"); | ||
709 | goto card_err; | ||
710 | } | ||
711 | return ret; | 706 | return ret; |
712 | 707 | ||
713 | card_err: | ||
714 | snd_soc_free_pcms(socdev); | ||
715 | snd_soc_dapm_free(socdev); | ||
716 | err: | 708 | err: |
717 | kfree(codec->reg_cache); | 709 | kfree(codec->reg_cache); |
718 | return ret; | 710 | return ret; |