aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/es1688/es1688.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/isa/es1688/es1688.c')
-rw-r--r--sound/isa/es1688/es1688.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/sound/isa/es1688/es1688.c b/sound/isa/es1688/es1688.c
index 2b69fc829265..d83d7104958f 100644
--- a/sound/isa/es1688/es1688.c
+++ b/sound/isa/es1688/es1688.c
@@ -213,10 +213,8 @@ static int __init alsa_card_es1688_init(void)
213 continue; 213 continue;
214 device = platform_device_register_simple(ES1688_DRIVER, 214 device = platform_device_register_simple(ES1688_DRIVER,
215 i, NULL, 0); 215 i, NULL, 0);
216 if (IS_ERR(device)) { 216 if (IS_ERR(device))
217 err = PTR_ERR(device); 217 continue;
218 goto errout;
219 }
220 devices[i] = device; 218 devices[i] = device;
221 cards++; 219 cards++;
222 } 220 }
@@ -224,14 +222,10 @@ static int __init alsa_card_es1688_init(void)
224#ifdef MODULE 222#ifdef MODULE
225 printk(KERN_ERR "ESS AudioDrive ES1688 soundcard not found or device busy\n"); 223 printk(KERN_ERR "ESS AudioDrive ES1688 soundcard not found or device busy\n");
226#endif 224#endif
227 err = -ENODEV; 225 snd_es1688_unregister_all();
228 goto errout; 226 return -ENODEV;
229 } 227 }
230 return 0; 228 return 0;
231
232 errout:
233 snd_es1688_unregister_all();
234 return err;
235} 229}
236 230
237static void __exit alsa_card_es1688_exit(void) 231static void __exit alsa_card_es1688_exit(void)