diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-11-03 17:13:13 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-11-03 17:14:43 -0500 |
commit | fe3e78e073d25308756f38019956061153267769 (patch) | |
tree | 6590150d5c67f8a5889f3d254fe82e5abf46f83a /sound/soc/codecs/wm8971.c | |
parent | 2624d5fa67a5d3d720613a4ab0672e8c387ba806 (diff) |
ASoC: Factor out snd_soc_init_card()
snd_soc_init_card() is always called as the last part of the CODEC probe
function so we can factor it out into the core card setup rather than
have each CODEC replicate the code to do the initialiastation. This will
be required to support multiple CODECs per card.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8971.c')
-rw-r--r-- | sound/soc/codecs/wm8971.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c index d66efb0546ea..56a66e89ab91 100644 --- a/sound/soc/codecs/wm8971.c +++ b/sound/soc/codecs/wm8971.c | |||
@@ -703,16 +703,9 @@ static int wm8971_init(struct snd_soc_device *socdev, | |||
703 | snd_soc_add_controls(codec, wm8971_snd_controls, | 703 | snd_soc_add_controls(codec, wm8971_snd_controls, |
704 | ARRAY_SIZE(wm8971_snd_controls)); | 704 | ARRAY_SIZE(wm8971_snd_controls)); |
705 | wm8971_add_widgets(codec); | 705 | wm8971_add_widgets(codec); |
706 | ret = snd_soc_init_card(socdev); | 706 | |
707 | if (ret < 0) { | ||
708 | printk(KERN_ERR "wm8971: failed to register card\n"); | ||
709 | goto card_err; | ||
710 | } | ||
711 | return ret; | 707 | return ret; |
712 | 708 | ||
713 | card_err: | ||
714 | snd_soc_free_pcms(socdev); | ||
715 | snd_soc_dapm_free(socdev); | ||
716 | err: | 709 | err: |
717 | kfree(codec->reg_cache); | 710 | kfree(codec->reg_cache); |
718 | return ret; | 711 | return ret; |