diff options
Diffstat (limited to 'sound/isa')
-rw-r--r-- | sound/isa/cmi8330.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c index 33e63faf6aa1..f7acb8dac185 100644 --- a/sound/isa/cmi8330.c +++ b/sound/isa/cmi8330.c | |||
@@ -362,7 +362,7 @@ static int __devinit snd_cmi8330_pnp(int dev, struct snd_cmi8330 *acard, | |||
362 | wssport[dev] = pnp_port_start(pdev, 0); | 362 | wssport[dev] = pnp_port_start(pdev, 0); |
363 | wssdma[dev] = pnp_dma(pdev, 0); | 363 | wssdma[dev] = pnp_dma(pdev, 0); |
364 | wssirq[dev] = pnp_irq(pdev, 0); | 364 | wssirq[dev] = pnp_irq(pdev, 0); |
365 | if (acard->type == CMI8330) | 365 | if (pnp_port_start(pdev, 1)) |
366 | fmport[dev] = pnp_port_start(pdev, 1); | 366 | fmport[dev] = pnp_port_start(pdev, 1); |
367 | 367 | ||
368 | /* allocate SB16 resources */ | 368 | /* allocate SB16 resources */ |
@@ -377,8 +377,13 @@ static int __devinit snd_cmi8330_pnp(int dev, struct snd_cmi8330 *acard, | |||
377 | sbdma8[dev] = pnp_dma(pdev, 0); | 377 | sbdma8[dev] = pnp_dma(pdev, 0); |
378 | sbdma16[dev] = pnp_dma(pdev, 1); | 378 | sbdma16[dev] = pnp_dma(pdev, 1); |
379 | sbirq[dev] = pnp_irq(pdev, 0); | 379 | sbirq[dev] = pnp_irq(pdev, 0); |
380 | if (acard->type == CMI8329) | 380 | /* On CMI8239, the OPL3 port might be present in SB16 PnP resources */ |
381 | fmport[dev] = pnp_port_start(pdev, 1); | 381 | if (fmport[dev] == SNDRV_AUTO_PORT) { |
382 | if (pnp_port_start(pdev, 1)) | ||
383 | fmport[dev] = pnp_port_start(pdev, 1); | ||
384 | else | ||
385 | fmport[dev] = 0x388; /* Or hardwired */ | ||
386 | } | ||
382 | 387 | ||
383 | /* allocate MPU-401 resources */ | 388 | /* allocate MPU-401 resources */ |
384 | pdev = acard->mpu; | 389 | pdev = acard->mpu; |