[PATCH] cmi8330: find OPL3 port automatically

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



My CMI8329 had OPL3 port specified in SB16 resources. But now I found out that 
it was my modification of the card's PnP EEPROM a couple of years ago (can be 
done using C9SETROM.EXE utility). I did it because the OPL3 port was 
completely missing from PnP data. It seems to be hardwired to 0x388 on 
CMI8329.


Find OPL3 port automatically by searching in WSS and SB16 resources. If not 
found, assume that it's hardwired to 0x388.


Signed-off-by: Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx>

--- linux-test/sound/isa/cmi8330.c	2009-07-06 21:18:06.000000000 +0200
+++ linux-2.6.30-pentium/sound/isa/cmi8330.c	2009-07-06 21:45:29.000000000 
+0200
@@ -362,7 +362,7 @@
 	wssport[dev] = pnp_port_start(pdev, 0);
 	wssdma[dev] = pnp_dma(pdev, 0);
 	wssirq[dev] = pnp_irq(pdev, 0);
-	if (acard->type == CMI8330)
+	if (pnp_port_start(pdev, 1))
 		fmport[dev] = pnp_port_start(pdev, 1);
 
 	/* allocate SB16 resources */
@@ -377,8 +377,13 @@
 	sbdma8[dev] = pnp_dma(pdev, 0);
 	sbdma16[dev] = pnp_dma(pdev, 1);
 	sbirq[dev] = pnp_irq(pdev, 0);
-	if (acard->type == CMI8329)
-		fmport[dev] = pnp_port_start(pdev, 1);
+	/* On CMI8239, the OPL3 port might be present in SB16 PnP resources */
+	if (fmport[dev] == SNDRV_AUTO_PORT) {
+		if (pnp_port_start(pdev, 1))
+			fmport[dev] = pnp_port_start(pdev, 1);
+		else
+			fmport[dev] = 0x388;	/* Or hardwired */
+	}
 
 	/* allocate MPU-401 resources */
 	pdev = acard->mpu;

-- 
Ondrej Zary
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux