X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=sound%2Fisa%2Fgus%2Fgusextreme.c;h=22cdddbfd8247088ad8d63b4bcb5f52cb29c3404;hb=075395d228641646159dae3dd170fa3fc6ff477a;hp=31dc20501d0c51937c4acae41d0fec1ab98282b3;hpb=9d8f057acbd38d8177cf2ffd5e151d52c2477372;p=powerpc.git diff --git a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c index 31dc20501d..22cdddbfd8 100644 --- a/sound/isa/gus/gusextreme.c +++ b/sound/isa/gus/gusextreme.c @@ -301,7 +301,7 @@ static int __init snd_gusextreme_probe(struct platform_device *pdev) (err = snd_mpu401_uart_new(card, 0, MPU401_HW_ES1688, es1688->mpu_port, 0, xmpu_irq, - SA_INTERRUPT, + IRQF_DISABLED, NULL)) < 0) goto out; @@ -363,9 +363,11 @@ static int __init alsa_card_gusextreme_init(void) continue; device = platform_device_register_simple(GUSEXTREME_DRIVER, i, NULL, 0); - if (IS_ERR(device)) { - err = PTR_ERR(device); - goto errout; + if (IS_ERR(device)) + continue; + if (!platform_get_drvdata(device)) { + platform_device_unregister(device); + continue; } devices[i] = device; cards++; @@ -374,14 +376,10 @@ static int __init alsa_card_gusextreme_init(void) #ifdef MODULE printk(KERN_ERR "GUS Extreme soundcard not found or device busy\n"); #endif - err = -ENODEV; - goto errout; + snd_gusextreme_unregister_all(); + return -ENODEV; } return 0; - - errout: - snd_gusextreme_unregister_all(); - return err; } static void __exit alsa_card_gusextreme_exit(void)