aboutsummaryrefslogtreecommitdiff
path: root/sound/soc/codecs/wm8731.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm8731.c')
-rw-r--r--sound/soc/codecs/wm8731.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c
index 8151b45a280..9956d654b6f 100644
--- a/sound/soc/codecs/wm8731.c
+++ b/sound/soc/codecs/wm8731.c
@@ -696,8 +696,8 @@ static int wm8731_init(struct snd_soc_device *socdev)
/* register pcms */
ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
if (ret < 0) {
- kfree(codec->reg_cache);
- return ret;
+ printk(KERN_ERR "wm8731: failed to create pcms\n");
+ goto pcm_err;
}
/* power on device */
@@ -717,11 +717,18 @@ static int wm8731_init(struct snd_soc_device *socdev)
wm8731_add_widgets(codec);
ret = snd_soc_register_card(socdev);
if (ret < 0) {
- snd_soc_free_pcms(socdev);
- snd_soc_dapm_free(socdev);
+ printk(KERN_ERR "wm8731: failed to register card\n");
+ goto card_err;
}
return ret;
+
+card_err:
+ snd_soc_free_pcms(socdev);
+ snd_soc_dapm_free(socdev);
+pcm_err:
+ kfree(codec->reg_cache);
+ return ret;
}
static struct snd_soc_device *wm8731_socdev;