aboutsummaryrefslogtreecommitdiffstats
path: root/sound/isa/sb
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/sb
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/sb')
-rw-r--r--sound/isa/sb/sb16.c14
-rw-r--r--sound/isa/sb/sb8.c14
2 files changed, 8 insertions, 20 deletions
diff --git a/sound/isa/sb/sb16.c b/sound/isa/sb/sb16.c
index 21ea65925a9e..24fa190f33ac 100644
--- a/sound/isa/sb/sb16.c
+++ b/sound/isa/sb/sb16.c
@@ -720,10 +720,8 @@ static int __init alsa_card_sb16_init(void)
720 continue; 720 continue;
721 device = platform_device_register_simple(SND_SB16_DRIVER, 721 device = platform_device_register_simple(SND_SB16_DRIVER,
722 i, NULL, 0); 722 i, NULL, 0);
723 if (IS_ERR(device)) { 723 if (IS_ERR(device))
724 err = PTR_ERR(device); 724 continue;
725 goto errout;
726 }
727 platform_devices[i] = device; 725 platform_devices[i] = device;
728 cards++; 726 cards++;
729 } 727 }
@@ -745,14 +743,10 @@ static int __init alsa_card_sb16_init(void)
745 snd_printk(KERN_ERR "In case, if you have AWE card, try snd-sbawe module\n"); 743 snd_printk(KERN_ERR "In case, if you have AWE card, try snd-sbawe module\n");
746#endif 744#endif
747#endif 745#endif
748 err = -ENODEV; 746 snd_sb16_unregister_all();
749 goto errout; 747 return -ENODEV;
750 } 748 }
751 return 0; 749 return 0;
752
753 errout:
754 snd_sb16_unregister_all();
755 return err;
756} 750}
757 751
758static void __exit alsa_card_sb16_exit(void) 752static void __exit alsa_card_sb16_exit(void)
diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c
index 3efa23d303c3..f75eeb05c1fa 100644
--- a/sound/isa/sb/sb8.c
+++ b/sound/isa/sb/sb8.c
@@ -264,10 +264,8 @@ static int __init alsa_card_sb8_init(void)
264 continue; 264 continue;
265 device = platform_device_register_simple(SND_SB8_DRIVER, 265 device = platform_device_register_simple(SND_SB8_DRIVER,
266 i, NULL, 0); 266 i, NULL, 0);
267 if (IS_ERR(device)) { 267 if (IS_ERR(device))
268 err = PTR_ERR(device); 268 continue;
269 goto errout;
270 }
271 devices[i] = device; 269 devices[i] = device;
272 cards++; 270 cards++;
273 } 271 }
@@ -275,14 +273,10 @@ static int __init alsa_card_sb8_init(void)
275#ifdef MODULE 273#ifdef MODULE
276 snd_printk(KERN_ERR "Sound Blaster soundcard not found or device busy\n"); 274 snd_printk(KERN_ERR "Sound Blaster soundcard not found or device busy\n");
277#endif 275#endif
278 err = -ENODEV; 276 snd_sb8_unregister_all();
279 goto errout; 277 return -ENODEV;
280 } 278 }
281 return 0; 279 return 0;
282
283 errout:
284 snd_sb8_unregister_all();
285 return err;
286} 280}
287 281
288static void __exit alsa_card_sb8_exit(void) 282static void __exit alsa_card_sb8_exit(void)