aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/isa/opti9xx/miro.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/sound/isa/opti9xx/miro.c b/sound/isa/opti9xx/miro.c
index 02e30d7c6a93..b8170adeeff6 100644
--- a/sound/isa/opti9xx/miro.c
+++ b/sound/isa/opti9xx/miro.c
@@ -118,8 +118,6 @@ struct snd_miro {
118 int dma1; 118 int dma1;
119 int dma2; 119 int dma2;
120 120
121 long fm_port;
122
123 long mpu_port; 121 long mpu_port;
124 int mpu_irq; 122 int mpu_irq;
125 123
@@ -757,7 +755,6 @@ static int __devinit snd_miro_init(struct snd_miro *chip,
757 chip->irq = -1; 755 chip->irq = -1;
758 chip->dma1 = -1; 756 chip->dma1 = -1;
759 chip->dma2 = -1; 757 chip->dma2 = -1;
760 chip->fm_port = -1;
761 chip->mpu_port = -1; 758 chip->mpu_port = -1;
762 chip->mpu_irq = -1; 759 chip->mpu_irq = -1;
763 760
@@ -1261,7 +1258,6 @@ static int __devinit snd_miro_probe(struct device *devptr, unsigned int n)
1261 } 1258 }
1262 1259
1263 miro->wss_base = port; 1260 miro->wss_base = port;
1264 miro->fm_port = fm_port;
1265 miro->mpu_port = mpu_port; 1261 miro->mpu_port = mpu_port;
1266 miro->irq = irq; 1262 miro->irq = irq;
1267 miro->mpu_irq = mpu_irq; 1263 miro->mpu_irq = mpu_irq;
@@ -1276,11 +1272,12 @@ static int __devinit snd_miro_probe(struct device *devptr, unsigned int n)
1276 } 1272 }
1277 } 1273 }
1278 1274
1279 if (miro->mpu_port == SNDRV_AUTO_PORT) { 1275 if (mpu_port == SNDRV_AUTO_PORT) {
1280 if ((miro->mpu_port = snd_legacy_find_free_ioport(possible_mpu_ports, 2)) < 0) { 1276 mpu_port = snd_legacy_find_free_ioport(possible_mpu_ports, 2);
1277 if (mpu_port < 0) {
1281 snd_card_free(card); 1278 snd_card_free(card);
1282 snd_printk(KERN_ERR "unable to find a free MPU401 port\n"); 1279 snd_printk(KERN_ERR "unable to find a free MPU401 port\n");
1283 return -EBUSY; 1280 return -EBUSY
1284 } 1281 }
1285 } 1282 }
1286 if (miro->irq == SNDRV_AUTO_IRQ) { 1283 if (miro->irq == SNDRV_AUTO_IRQ) {
@@ -1380,20 +1377,24 @@ static int __devinit snd_miro_probe(struct device *devptr, unsigned int n)
1380 card->shortname, miro->name, pcm->name, miro->wss_base + 4, 1377 card->shortname, miro->name, pcm->name, miro->wss_base + 4,
1381 miro->irq, miro->dma1, miro->dma2); 1378 miro->irq, miro->dma1, miro->dma2);
1382 1379
1383 if (miro->mpu_port <= 0 || miro->mpu_port == SNDRV_AUTO_PORT) 1380 if (mpu_port <= 0 || mpu_port == SNDRV_AUTO_PORT)
1384 rmidi = NULL; 1381 rmidi = NULL;
1385 else 1382 else {
1386 if ((error = snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401, 1383 error = snd_mpu401_uart_new(card, 0, MPU401_HW_MPU401,
1387 miro->mpu_port, 0, miro->mpu_irq, IRQF_DISABLED, 1384 mpu_port, 0, miro->mpu_irq, IRQF_DISABLED,
1388 &rmidi))) 1385 &rmidi);
1389 snd_printk(KERN_WARNING "no MPU-401 device at 0x%lx?\n", miro->mpu_port); 1386 if (error < 0)
1387 snd_printk(KERN_WARNING "no MPU-401 device at 0x%lx?\n",
1388 mpu_port);
1389 }
1390 1390
1391 if (miro->fm_port > 0 && miro->fm_port != SNDRV_AUTO_PORT) { 1391 if (fm_port > 0 && fm_port != SNDRV_AUTO_PORT) {
1392 struct snd_opl3 *opl3 = NULL; 1392 struct snd_opl3 *opl3 = NULL;
1393 struct snd_opl4 *opl4; 1393 struct snd_opl4 *opl4;
1394 if (snd_opl4_create(card, miro->fm_port, miro->fm_port - 8, 1394 if (snd_opl4_create(card, fm_port, fm_port - 8,
1395 2, &opl3, &opl4) < 0) 1395 2, &opl3, &opl4) < 0)
1396 snd_printk(KERN_WARNING "no OPL4 device at 0x%lx\n", miro->fm_port); 1396 snd_printk(KERN_WARNING "no OPL4 device at 0x%lx\n",
1397 fm_port);
1397 } 1398 }
1398 1399
1399 if ((error = snd_set_aci_init_values(miro)) < 0) { 1400 if ((error = snd_set_aci_init_values(miro)) < 0) {