X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=sound%2Fisa%2Fsscape.c;h=b1f25823c652cb8708226d1e38cac5eae86cdd61;hp=48e5552d34448bc562257a62613907469eedaac1;hb=e82ca04387dd6c98722f5f48235089839fd04268;hpb=5b67e8dd5ae889fea7d01b905a570fa9a37b8785 diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c index 48e5552d3444..b1f25823c652 100644 --- a/sound/isa/sscape.c +++ b/sound/isa/sscape.c @@ -897,11 +897,10 @@ static int __devinit create_mpu401(struct snd_card *card, int devnum, unsigned l struct snd_rawmidi *rawmidi; int err; -#define MPU401_SHARE_HARDWARE 1 if ((err = snd_mpu401_uart_new(card, devnum, MPU401_HW_MPU401, - port, MPU401_SHARE_HARDWARE, - irq, SA_INTERRUPT, + port, MPU401_INFO_INTEGRATED, + irq, IRQF_DISABLED, &rawmidi)) == 0) { struct snd_mpu401 *mpu = (struct snd_mpu401 *) rawmidi->private_data; mpu->open_input = mpu401_open; @@ -1427,8 +1426,8 @@ static int __init sscape_manual_probe(void) dma[i] == SNDRV_AUTO_DMA) { printk(KERN_INFO "sscape: insufficient parameters, need IO, IRQ, MPU-IRQ and DMA\n"); - ret = -ENXIO; - goto errout; + sscape_unregister_all(); + return -ENXIO; } /* @@ -1436,17 +1435,15 @@ static int __init sscape_manual_probe(void) */ device = platform_device_register_simple(SSCAPE_DRIVER, i, NULL, 0); - if (IS_ERR(device)) { - ret = PTR_ERR(device); - goto errout; + if (IS_ERR(device)) + continue; + if (!platform_get_drvdata(device)) { + platform_device_unregister(device); + continue; } platform_devices[i] = device; } return 0; - - errout: - sscape_unregister_all(); - return ret; } static void sscape_exit(void)