diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-07 20:07:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-08-07 20:07:31 -0400 |
commit | faa38b5e0e092914764cdba9f83d31a3f794d182 (patch) | |
tree | b3e5921bdc36378033b4910eb4f29cb0dfc486e0 /sound/soc/codecs/wm8523.c | |
parent | 78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c (diff) | |
parent | 74bf40f0793fed9e01eb6164c2ce63e8c27ca205 (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)
ALSA: hda - Add pin-fix for HP dc5750
ALSA: als4000: Fix potentially invalid DMA mode setup
ALSA: als4000: enable burst mode
ALSA: hda - Fix initial capsrc selection in patch_alc269()
ASoC: TWL4030: Capture route runtime DAPM ordering fix
ALSA: hda - Add PC-beep whitelist for an Intel board
ALSA: hda - More relax for pending period handling
ALSA: hda - Define AC_FMT_* constants
ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs
ALSA: hda - Add support for HDMI HBR passthrough
ALSA: hda - Set Stream Type in Stream Format according to AES0
ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed
ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF
ASoC: wm9081: fix resource reclaim in wm9081_register error path
ASoC: wm8978: fix a memory leak if a wm8978_register fail
ASoC: wm8974: fix a memory leak if another WM8974 is registered
ASoC: wm8961: fix resource reclaim in wm8961_register error path
ASoC: wm8955: fix resource reclaim in wm8955_register error path
ASoC: wm8940: fix a memory leak if wm8940_register return error
ASoC: wm8904: fix resource reclaim in wm8904_register error path
...
Diffstat (limited to 'sound/soc/codecs/wm8523.c')
-rw-r--r-- | sound/soc/codecs/wm8523.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/soc/codecs/wm8523.c b/sound/soc/codecs/wm8523.c index 37242a7d3077..0ad039b4adf5 100644 --- a/sound/soc/codecs/wm8523.c +++ b/sound/soc/codecs/wm8523.c | |||
@@ -482,7 +482,8 @@ static int wm8523_register(struct wm8523_priv *wm8523, | |||
482 | 482 | ||
483 | if (wm8523_codec) { | 483 | if (wm8523_codec) { |
484 | dev_err(codec->dev, "Another WM8523 is registered\n"); | 484 | dev_err(codec->dev, "Another WM8523 is registered\n"); |
485 | return -EINVAL; | 485 | ret = -EINVAL; |
486 | goto err; | ||
486 | } | 487 | } |
487 | 488 | ||
488 | mutex_init(&codec->mutex); | 489 | mutex_init(&codec->mutex); |
@@ -570,18 +571,19 @@ static int wm8523_register(struct wm8523_priv *wm8523, | |||
570 | ret = snd_soc_register_codec(codec); | 571 | ret = snd_soc_register_codec(codec); |
571 | if (ret != 0) { | 572 | if (ret != 0) { |
572 | dev_err(codec->dev, "Failed to register codec: %d\n", ret); | 573 | dev_err(codec->dev, "Failed to register codec: %d\n", ret); |
573 | return ret; | 574 | goto err_enable; |
574 | } | 575 | } |
575 | 576 | ||
576 | ret = snd_soc_register_dai(&wm8523_dai); | 577 | ret = snd_soc_register_dai(&wm8523_dai); |
577 | if (ret != 0) { | 578 | if (ret != 0) { |
578 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); | 579 | dev_err(codec->dev, "Failed to register DAI: %d\n", ret); |
579 | snd_soc_unregister_codec(codec); | 580 | goto err_codec; |
580 | return ret; | ||
581 | } | 581 | } |
582 | 582 | ||
583 | return 0; | 583 | return 0; |
584 | 584 | ||
585 | err_codec: | ||
586 | snd_soc_unregister_codec(codec); | ||
585 | err_enable: | 587 | err_enable: |
586 | regulator_bulk_disable(ARRAY_SIZE(wm8523->supplies), wm8523->supplies); | 588 | regulator_bulk_disable(ARRAY_SIZE(wm8523->supplies), wm8523->supplies); |
587 | err_get: | 589 | err_get: |