diff options
| -rw-r--r-- | sound/soc/codecs/da7210.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sound/soc/codecs/da7210.c b/sound/soc/codecs/da7210.c index 3e42d1e0e601..3c51d6a57523 100644 --- a/sound/soc/codecs/da7210.c +++ b/sound/soc/codecs/da7210.c | |||
| @@ -499,7 +499,7 @@ static int da7210_init(struct da7210_priv *da7210) | |||
| 499 | ret = snd_soc_register_dai(&da7210_dai); | 499 | ret = snd_soc_register_dai(&da7210_dai); |
| 500 | if (ret) { | 500 | if (ret) { |
| 501 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); | 501 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); |
| 502 | goto init_err; | 502 | goto codec_err; |
| 503 | } | 503 | } |
| 504 | 504 | ||
| 505 | /* FIXME | 505 | /* FIXME |
| @@ -585,6 +585,8 @@ static int da7210_init(struct da7210_priv *da7210) | |||
| 585 | 585 | ||
| 586 | return ret; | 586 | return ret; |
| 587 | 587 | ||
| 588 | codec_err: | ||
| 589 | snd_soc_unregister_codec(codec); | ||
| 588 | init_err: | 590 | init_err: |
| 589 | kfree(codec->reg_cache); | 591 | kfree(codec->reg_cache); |
| 590 | codec->reg_cache = NULL; | 592 | codec->reg_cache = NULL; |
| @@ -612,8 +614,10 @@ static int __devinit da7210_i2c_probe(struct i2c_client *i2c, | |||
| 612 | codec->control_data = i2c; | 614 | codec->control_data = i2c; |
| 613 | 615 | ||
| 614 | ret = da7210_init(da7210); | 616 | ret = da7210_init(da7210); |
| 615 | if (ret < 0) | 617 | if (ret < 0) { |
| 616 | pr_err("Failed to initialise da7210 audio codec\n"); | 618 | pr_err("Failed to initialise da7210 audio codec\n"); |
| 619 | kfree(da7210); | ||
| 620 | } | ||
| 617 | 621 | ||
| 618 | return ret; | 622 | return ret; |
| 619 | } | 623 | } |
