patch-2.4.21 linux-2.4.21/drivers/sound/mad16.c
Next file: linux-2.4.21/drivers/sound/maestro.c
Previous file: linux-2.4.21/drivers/sound/kahlua.c
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
2003-06-13 07:51:36.000000000 -0700
- Orig file:
linux-2.4.20/drivers/sound/mad16.c
- Orig date:
2002-08-02 17:39:44.000000000 -0700
diff -urN linux-2.4.20/drivers/sound/mad16.c linux-2.4.21/drivers/sound/mad16.c
@@ -367,6 +367,8 @@
{
unsigned char cfg = 0;
+ cfg |= (0x0f & mad16_conf);
+
if(c931_detected)
{
/* Bit 0 has reversd meaning. Bits 1 and 2 sese
@@ -404,7 +406,10 @@
and the C931. */
cfg = c931_detected ? 0x04 : 0x00;
- mad_write(MC4_PORT, 0x52|cfg);
+ if(mad16_cdsel & 0x20)
+ mad_write(MC4_PORT, 0x62|cfg); /* opl4 */
+ else
+ mad_write(MC4_PORT, 0x52|cfg); /* opl3 */
mad_write(MC5_PORT, 0x3C); /* Init it into mode2 */
mad_write(MC6_PORT, 0x02); /* Enable WSS, Disable MPU and SB */
@@ -561,10 +566,10 @@
*/
tmp &= ~0x0f;
+ tmp |= (mad16_conf & 0x0f); /* CD-ROM and joystick bits */
mad_write(MC1_PORT, tmp);
- tmp = mad_read(MC2_PORT);
-
+ tmp = mad16_cdsel;
mad_write(MC2_PORT, tmp);
mad_write(MC3_PORT, 0xf0); /* Disable SB */
@@ -1051,6 +1056,12 @@
{
if (found_mpu)
unload_mad16_mpu(&cfg_mpu);
+ if (gameport.io) {
+ /* the gameport was initialized so we must free it up */
+ gameport_unregister_port(&gameport);
+ gameport.io = 0;
+ release_region(0x201, 1);
+ }
unload_mad16(&cfg);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)