aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm8750.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm8750.c')
-rw-r--r--sound/soc/codecs/wm8750.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c
index e7f04b89c8a0..d4a288ba644b 100644
--- a/sound/soc/codecs/wm8750.c
+++ b/sound/soc/codecs/wm8750.c
@@ -1075,8 +1075,8 @@ static int wm8750_init(struct snd_soc_device *socdev)
1075 /* register pcms */ 1075 /* register pcms */
1076 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); 1076 ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1);
1077 if (ret < 0) { 1077 if (ret < 0) {
1078 kfree(codec->reg_cache); 1078 printk(KERN_ERR "wm8750: failed to create pcms\n");
1079 return ret; 1079 goto pcm_err;
1080 } 1080 }
1081 1081
1082 /* charge output caps */ 1082 /* charge output caps */
@@ -1106,10 +1106,16 @@ static int wm8750_init(struct snd_soc_device *socdev)
1106 wm8750_add_widgets(codec); 1106 wm8750_add_widgets(codec);
1107 ret = snd_soc_register_card(socdev); 1107 ret = snd_soc_register_card(socdev);
1108 if (ret < 0) { 1108 if (ret < 0) {
1109 snd_soc_free_pcms(socdev); 1109 printk(KERN_ERR "wm8750: failed to register card\n");
1110 snd_soc_dapm_free(socdev); 1110 goto card_err;
1111 } 1111 }
1112 return ret;
1112 1113
1114card_err:
1115 snd_soc_free_pcms(socdev);
1116 snd_soc_dapm_free(socdev);
1117pcm_err:
1118 kfree(codec->reg_cache);
1113 return ret; 1119 return ret;
1114} 1120}
1115 1121