diff options
author | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-01-12 15:20:31 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-01-14 11:35:55 -0500 |
commit | 0cd03a0cb20c75a70a154b946dcf4b3461ceff36 (patch) | |
tree | b12641850b95356ba427eeca663c7ab3e1960652 | |
parent | 229295f1d6713bc8c8ba900ba62bca03e34bba52 (diff) |
[media] em28xx-audio: simplify error handling
Cleanup the error handling code at em28xx-audio init.
Reviewed-by: Frank Schäfer <fschaefer.oss@googlemail.com>
Tested-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r-- | drivers/media/usb/em28xx/em28xx-audio.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/media/usb/em28xx/em28xx-audio.c b/drivers/media/usb/em28xx/em28xx-audio.c index 47766b796acb..97d9105e6830 100644 --- a/drivers/media/usb/em28xx/em28xx-audio.c +++ b/drivers/media/usb/em28xx/em28xx-audio.c | |||
@@ -893,10 +893,8 @@ static int em28xx_audio_init(struct em28xx *dev) | |||
893 | adev->udev = dev->udev; | 893 | adev->udev = dev->udev; |
894 | 894 | ||
895 | err = snd_pcm_new(card, "Em28xx Audio", 0, 0, 1, &pcm); | 895 | err = snd_pcm_new(card, "Em28xx Audio", 0, 0, 1, &pcm); |
896 | if (err < 0) { | 896 | if (err < 0) |
897 | snd_card_free(card); | 897 | goto card_free; |
898 | return err; | ||
899 | } | ||
900 | 898 | ||
901 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_em28xx_pcm_capture); | 899 | snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_em28xx_pcm_capture); |
902 | pcm->info_flags = 0; | 900 | pcm->info_flags = 0; |
@@ -927,20 +925,23 @@ static int em28xx_audio_init(struct em28xx *dev) | |||
927 | } | 925 | } |
928 | 926 | ||
929 | err = em28xx_audio_urb_init(dev); | 927 | err = em28xx_audio_urb_init(dev); |
930 | if (err) { | 928 | if (err) |
931 | snd_card_free(card); | 929 | goto card_free; |
932 | return -ENODEV; | ||
933 | } | ||
934 | 930 | ||
935 | err = snd_card_register(card); | 931 | err = snd_card_register(card); |
936 | if (err < 0) { | 932 | if (err < 0) |
937 | em28xx_audio_free_urb(dev); | 933 | goto urb_free; |
938 | snd_card_free(card); | ||
939 | return err; | ||
940 | } | ||
941 | 934 | ||
942 | em28xx_info("Audio extension successfully initialized\n"); | 935 | em28xx_info("Audio extension successfully initialized\n"); |
943 | return 0; | 936 | return 0; |
937 | |||
938 | urb_free: | ||
939 | em28xx_audio_free_urb(dev); | ||
940 | |||
941 | card_free: | ||
942 | snd_card_free(card); | ||
943 | |||
944 | return err; | ||
944 | } | 945 | } |
945 | 946 | ||
946 | static int em28xx_audio_fini(struct em28xx *dev) | 947 | static int em28xx_audio_fini(struct em28xx *dev) |