Re: Sound as modules - i give up...

Alastair Donlon (adonlon@orca.ucd.ie)
Tue, 6 Jan 1998 21:22:38 +0000 (GMT)


>
> Since the introduction of the New sound drivers into the later 2.1.7x
> kernels i have been unable to figure out how to load the sound drivers
> as moduels. I have looked high and low (but obviously not high or low
> enough,) and can not fine documentation how how SPECIFICALLY to load my
> sound drivers.
>
> I have a Pro Audio Spectrum 16 and I figure the sequence as follows:
>
> 1. compile sound and pas as modules
> 2. insmod sound
> 3. insmod pas2 param=value <- where parm=value is
> are irq, base, dma size etc.
>
> Where are the EXACT names of these parm(s). I have looked in the
> linux/drivers/sound/[A-Z]* and in the sound source itself... and can't
> glean what I need.
>
> HELP!
>
>
> -jeffrey hundstad
>
> BTW: running 2.1.78 - modutils-2.1.71
>
>
>

This is what I had to do to get my PAS16 working as a module. The Config.in
script was totally broken so I fixed it up as best I could. I couldn't even
get 'make xconfig' to work with the original version.

Alastair.

-------------------------------cut here-------------------------------------------
diff -urN linux.latest.clean/drivers/sound/Config.in linux/drivers/sound/Config.in
--- linux.latest.clean/drivers/sound/Config.in Tue Jan 6 19:13:15 1998
+++ linux/drivers/sound/Config.in Tue Jan 6 19:38:09 1998
@@ -1,11 +1,11 @@
dep_tristate 'ProAudioSpectrum 16 support' CONFIG_PAS $CONFIG_SOUND
-if [ "$CONFIG_PAS" = "y" ]; then
+if [ "$CONFIG_PAS" != "n" ]; then
int 'PAS16 IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15' PAS_IRQ 10
int 'PAS16 DMA 0, 1, 3, 5, 6 or 7' PAS_DMA 3
fi

dep_tristate '100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support' CONFIG_SB $CONFIG_SOUND
-if [ "$CONFIG_SB" = "y" ]; then
+if [ "$CONFIG_SB" != "n" ]; then
hex 'I/O base for SB Check from manual of the card' SBC_BASE 220
int 'Sound Blaster IRQ Check from manual of the card' SBC_IRQ 7
int 'Sound Blaster DMA 0, 1 or 3' SBC_DMA 1
@@ -22,12 +22,12 @@
if [ "$CONFIG_GUS" != "n" ]; then
bool '16 bit sampling option of GUS (_NOT_ GUS MAX)' CONFIG_GUS16
bool 'GUS MAX support' CONFIG_GUSMAX
- if [ "$CONFIG_GUS" = "y" ]; then
+ if [ "$CONFIG_GUS" != "n" ]; then
hex 'I/O base for GUS 210, 220, 230, 240, 250 or 260' GUS_BASE 220
int 'GUS IRQ 3, 5, 7, 9, 11, 12 or 15' GUS_IRQ 15
int 'GUS DMA 1, 3, 5, 6 or 7' GUS_DMA 6
int 'Second DMA channel for GUS 1, 3, 5, 6 or 7' GUS_DMA2 -1
- if [ "$CONFIG_GUS16" = "y" ]; then
+ if [ "$CONFIG_GUS16" != "n" ]; then
hex 'I/O base for the 16 bit daughtercard of GUS 530, 604, E80 or F40' GUS16_BASE 530
int 'GUS 16 bit daughtercard IRQ 3, 4, 5, 7, or 9' GUS16_IRQ 7
int 'GUS DMA 0, 1 or 3' GUS16_DMA 3
@@ -36,13 +36,13 @@
fi

dep_tristate 'MPU-401 support (NOT for SB16)' CONFIG_MPU401 $CONFIG_SOUND
-if [ "$CONFIG_MPU401" = "y" ]; then
+if [ "$CONFIG_MPU401" != "n" ]; then
hex 'I/O base for MPU401 Check from manual of the card' MPU_BASE 330
int 'MPU401 IRQ Check from manual of the card' MPU_IRQ 9
fi

dep_tristate 'PSS (ECHO-ADI2111) support' CONFIG_PSS $CONFIG_SOUND
-if [ "$CONFIG_PSS" = "y" ]; then
+if [ "$CONFIG_PSS" != "n" ]; then
hex 'PSS I/O base 220 or 240' PSS_BASE 220
hex 'PSS audio I/O base 530, 604, E80 or F40' PSS_MSS_BASE 530
int 'PSS audio IRQ 7, 9, 10 or 11' PSS_MSS_IRQ 11
@@ -56,7 +56,7 @@
fi

dep_tristate 'Microsoft Sound System support' CONFIG_MSS $CONFIG_SOUND
-if [ "$CONFIG_MSS" = "y" ]; then
+if [ "$CONFIG_MSS" != "n" ]; then
hex 'MSS/WSS I/O base 530, 604, E80 or F40' MSS_BASE 530
int 'MSS/WSS IRQ 7, 9, 10 or 11' MSS_IRQ 11
int 'MSS/WSS DMA 0, 1 or 3' MSS_DMA 3
@@ -64,7 +64,7 @@
fi

dep_tristate 'Ensoniq SoundScape support' CONFIG_SSCAPE $CONFIG_SOUND
-if [ "$CONFIG_SSCAPE" = "y" ]; then
+if [ "$CONFIG_SSCAPE" != "n" ]; then
hex 'SoundScape MIDI I/O base 320, 330, 340 or 350' SSCAPE_BASE 330
int 'SoundScape MIDI IRQ ' SSCAPE_IRQ 9
int 'SoundScape initialization DMA 0, 1 or 3' SSCAPE_DMA 3
@@ -73,7 +73,7 @@
fi

dep_tristate 'MediaTrix AudioTrix Pro support' CONFIG_TRIX $CONFIG_SOUND
-if [ "$CONFIG_TRIX" = "y" ]; then
+if [ "$CONFIG_TRIX" != "n" ]; then
hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' TRIX_BASE 530
int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' TRIX_IRQ 11
int 'OPL3-SA1 audio DMA 0, 1 or 3' TRIX_DMA 0
@@ -90,7 +90,7 @@
fi

dep_tristate 'Support for OPTi MAD16 and/or Mozart based cards' CONFIG_MAD16 $CONFIG_SOUND
-if [ "$CONFIG_MAD16" = "y" ]; then
+if [ "$CONFIG_MAD16" != "n" ]; then
hex 'MAD16 audio I/O base 530, 604, E80 or F40' MAD16_BASE 530
int 'MAD16 audio IRQ 7, 9, 10 or 11' MAD16_IRQ 11
int 'MAD16 audio DMA 0, 1 or 3' MAD16_DMA 3
@@ -100,7 +100,7 @@
fi

dep_tristate 'Support for Crystal CS4232 based (PnP) cards' CONFIG_CS4232 $CONFIG_SOUND
-if [ "$CONFIG_CS4232" = "y" ]; then
+if [ "$CONFIG_CS4232" != "n" ]; then
hex 'CS4232 audio I/O base 530, 604, E80 or F40' CS4232_BASE 530
int 'CS4232 audio IRQ 5, 7, 9, 11, 12 or 15' CS4232_IRQ 11
int 'CS4232 audio DMA 0, 1 or 3' CS4232_DMA 0
@@ -110,7 +110,7 @@
fi

dep_tristate 'Support for Turtle Beach Wave Front (Maui, Tropez) synthesizers' CONFIG_MAUI $CONFIG_SOUND
-if [ "$CONFIG_MAUI" = "y" ]; then
+if [ "$CONFIG_MAUI" != "n" ]; then
hex 'I/O base for Maui 210, 230, 260, 290, 300, 320, 338 or 330' MAUI_BASE 330
int 'Maui IRQ 5, 9, 12 or 15' MAUI_IRQ 9
bool ' Have OSWF.MOT firmware file' MAUI_HAVE_BOOT
@@ -120,7 +120,7 @@
fi

dep_tristate 'Yamaha OPL3-SA1 audio controller' CONFIG_OPL3SA1 $CONFIG_SOUND
-if [ "$CONFIG_OPL3SA1" = "y" ]; then
+if [ "$CONFIG_OPL3SA1" != "n" ]; then
hex 'OPL3-SA1 audio I/O base 530, 604, E80 or F40' OPL3SA1_BASE 530
int 'OPL3-SA1 audio IRQ 7, 9, 10 or 11' OPL3SA1_IRQ 11
int 'OPL3-SA1 audio DMA 0, 1 or 3' OPL3SA1_DMA 0
@@ -130,15 +130,15 @@
fi

dep_tristate 'SoftOSS software wave table engine' CONFIG_SOFTOSS $CONFIG_SOUND
-if [ "$CONFIG_SOFTOSS" = "y" ]; then
+if [ "$CONFIG_SOFTOSS" != "n" ]; then
int 'Sampling rate for SoftOSS 8000 to 48000' SOFTOSS_RATE 22050
int 'Max # of concurrent voices for SoftOSS 4 to 32' SOFTOSS_VOICES 32
fi

dep_tristate 'FM synthesizer (YM3812/OPL-3) support' CONFIG_YM3812 $CONFIG_SOUND
dep_tristate 'Loopback MIDI device support' CONFIG_VMIDI $CONFIG_SOUND
-
-if [ "$CONFIG_UART6850" = "y" ]; then
+dep_tristate '6850 UART MIDI Support' CONFIG_UART6850 $CONFIG_SOUND
+if [ "$CONFIG_UART6850" != "n" ]; then
hex 'I/O base for UART 6850 MIDI port (Unknown)' U6850_BASE 0
int 'UART6850 IRQ (Unknown)' U6850_IRQ -1
fi
@@ -149,13 +149,13 @@
if [ "$CONFIG_LOWLEVEL_SOUND" = "y" ]; then
dep_tristate 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND
dep_tristate 'AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND
- dep_tristate 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16
+ dep_tristate 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 $CONFIG_SOUND

- if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
+ if [ "$CONFIG_AEDSP16" != "n" ]; then
hex ' I/O base for Audio Excel DSP 16 220 or 240' AEDSP16_BASE 220
fi

- if [ "$CONFIG_AEDSP16" = "y" ]; then
+ if [ "$CONFIG_AEDSP16" != "n" ]; then
comment 'SC-6600 Audio Cards have no jumper switches at all'
bool 'SC-6600 based audio cards (new Audio Excel DSP 16)' CONFIG_SC6600

diff -urN linux.latest.clean/drivers/sound/Makefile linux/drivers/sound/Makefile
--- linux.latest.clean/drivers/sound/Makefile Tue Jan 6 19:13:15 1998
+++ linux/drivers/sound/Makefile Tue Jan 6 20:44:11 1998
@@ -95,9 +95,7 @@
ifeq ($(CONFIG_SB),m)
M_OBJS += sb.o
MIX_OBJS += sb_card.o
- ifneq ($(CONFIG_UART401),y)
CONFIG_UART401 = m
- endif
endif
endif

diff -urN linux.latest.clean/drivers/sound/pas2_card.c linux/drivers/sound/pas2_card.c
--- linux.latest.clean/drivers/sound/pas2_card.c Mon Jan 5 20:07:55 1998
+++ linux/drivers/sound/pas2_card.c Tue Jan 6 20:06:59 1998
@@ -347,15 +347,15 @@

#ifdef MODULE

-int io = -1;
-int irq = -1;
-int dma = -1;
+int io = PAS_BASE;
+int irq = PAS_IRQ;
+int dma = PAS_DMA;
int dma16 = -1; /* Set this for modules that need it */

-int sb_io = 0;
-int sb_irq = -1;
-int sb_dma = -1;
-int sb_dma16 = -1;
+int sb_io = SBC_BASE;
+int sb_irq = SBC_IRQ;
+int sb_dma = SBC_DMA;
+int sb_dma16 = SB_DMA2;

struct address_info config;
struct address_info sbhw_config;
diff -urN linux.latest.clean/drivers/sound/sb_card.c linux/drivers/sound/sb_card.c
--- linux.latest.clean/drivers/sound/sb_card.c Tue Jan 6 19:52:06 1998
+++ linux/drivers/sound/sb_card.c Tue Jan 6 20:12:16 1998
@@ -58,15 +58,27 @@
* to the 8bit channel.
*/

-int mpu_io = 0;
-int io = -1;
-int irq = -1;
-int dma = -1;
-int dma16 = -1; /* Set this for modules that need it */
+int mpu_io = SB_MPU_BASE;
+int io = SBC_BASE;
+int irq = SBC_IRQ;
+int dma = SBC_DMA;
+int dma16 = SB_DMA2; /* Set this for modules that need it */
int type = 0; /* Can set this to a specific card type */
-int mad16 = 0; /* Set mad16=1 to load this as support for mad16 */
-int trix = 0; /* Set trix=1 to load this as support for trix */
-int pas2 = 0; /* Set pas2=1 to load this as support for pas2 */
+#if defined(CONFIG_MAD16) || defined(CONFIG_MAD16_MODULE)
+int mad16 = 1; /* Set mad16=1 to load this as support for mad16 */
+#else
+int mad16 = 0;
+#endif
+#if defined(CONFIG_TRIX) || defined(CONFIG_TRIX_MODULE)
+int trix = 1; /* Set trix=1 to load this as support for trix */
+#else
+int trix = 0;
+#endif
+#if defined(CONFIG_PAS) || defined(CONFIG_PAS_MODULE)
+int pas2 = 1; /* Set pas2=1 to load this as support for pas2 */
+#else
+int pas2 = 0;
+#endif
int sm_games = 0; /* Mixer - see sb_mixer.c */
int acer = 0; /* Do acer notebook init */
---------------------------------cut here-----------------------------------------