aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/es1688
diff options
context:
space:
mode:
authorRene Herman <rene.herman@keyaccess.nl>2006-04-11 08:08:33 -0400
committerJaroslav Kysela <perex@suse.cz>2006-04-12 05:55:30 -0400
commitd0ac642d76c79c5cc673c4cdfe43e926379784e1 (patch)
tree676e529b860634706ff98978d0328a71e584bc4f /sound/isa/es1688
parent12831c15f35dcc9f55fa63d50fd4892c7c6a0a1c (diff)
[ALSA] continue on IS_ERR from platform device registration
Continue with the next one on error from device registration. This would seem the correct thing to do, even if it's not the probe() error that we're getting. Signed-off-by: Rene Herman <rene.herman@keyaccess.nl> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/isa/es1688')
-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)