summaryrefslogtreecommitdiffstats
path: root/drivers/sound/lowlevel
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sound/lowlevel')
-rw-r--r--drivers/sound/lowlevel/Config.in56
-rw-r--r--drivers/sound/lowlevel/Config.tmpl57
-rw-r--r--drivers/sound/lowlevel/Makefile79
-rw-r--r--drivers/sound/lowlevel/README.awe30
-rw-r--r--drivers/sound/lowlevel/aci.c7
-rw-r--r--drivers/sound/lowlevel/awe_wave.c2
-rw-r--r--drivers/sound/lowlevel/soundlow.c (renamed from drivers/sound/lowlevel/init.c)8
7 files changed, 99 insertions, 140 deletions
diff --git a/drivers/sound/lowlevel/Config.in b/drivers/sound/lowlevel/Config.in
new file mode 100644
index 000000000..36928af08
--- /dev/null
+++ b/drivers/sound/lowlevel/Config.in
@@ -0,0 +1,56 @@
+dep_tristate 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER $CONFIG_SOUND_OSS
+
+dep_tristate 'AWE32 synth' CONFIG_AWE32_SYNTH $CONFIG_SOUND_OSS
+
+if [ "$CONFIG_SOUND_OSS" = "y" -o "$CONFIG_SOUND" = "m" ]; then
+ dep_tristate 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16 $CONFIG_SOUND_OSS
+ if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; then
+ hex ' I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
+ fi
+
+ if [ "$CONFIG_AEDSP16" = "y" -o "$CONFIG_AEDSP16" = "m" ]; 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
+ if [ "$CONFIG_SC6600" = "y" ]; then
+ comment 'SC-6600 specific configuration'
+ bool 'Activate SC-6600 Joystick Interface' CONFIG_SC6600_JOY
+ int 'SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?)' CONFIG_SC6600_CDROM 4
+ hex 'SC-6600 CDROM Interface I/O Address' CONFIG_SC6600_CDROMBASE 0
+ fi
+
+ if [ "$CONFIG_SOUND_SB" = "y" -o "$CONFIG_SOUND_SB" = "m" ]; then
+ if [ "$CONFIG_AEDSP16_MSS" != "y" ]; then
+ bool 'Audio Excel DSP 16 (SBPro emulation)' CONFIG_AEDSP16_SBPRO
+ if [ "$CONFIG_AEDSP16_SBPRO" = "y" ]; then
+ comment 'Audio Excel DSP 16 [Sound Blaster Pro]'
+ hex 'I/O base for Audio Excel DSP 16 220, 240' CONFIG_AEDSP16_BASE $CONFIG_SB_BASE
+ int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA
+ fi
+ fi
+ fi
+
+ if [ "$CONFIG_SOUND_MSS" = "y" -o "$CONFIG_SOUND_MSS" = "m" ]; then
+ if [ "$CONFIG_AEDSP16_SBPRO" != "y" ]; then
+ bool 'Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
+ if [ "$CONFIG_AEDSP16_MSS" = "y" ]; then
+ comment 'Audio Excel DSP 16 [Microsoft Sound System]'
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
+ int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ
+ int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA
+ fi
+ fi
+ fi
+
+ if [ "$CONFIG_SOUND_MPU401" = "y" -o "$CONFIG_SOUND_MPU401" = "m" ]; then
+ bool 'Audio Excel DSP 16 (MPU401 emulation)' CONFIG_AEDSP16_MPU401
+ if [ "$CONFIG_AEDSP16_MPU401" = "y" ]; then
+ comment 'Audio Excel DSP 16 [MPU-401]'
+ if [ "$CONFIG_AEDSP16_SBPRO" != "y" -a "$CONFIG_AEDSP16_MSS" != "y" ]; then
+ hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
+ fi
+ int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
+ fi
+ fi
+ fi
+fi
diff --git a/drivers/sound/lowlevel/Config.tmpl b/drivers/sound/lowlevel/Config.tmpl
deleted file mode 100644
index e3ad81dbb..000000000
--- a/drivers/sound/lowlevel/Config.tmpl
+++ /dev/null
@@ -1,57 +0,0 @@
-bool 'Additional low level drivers' CONFIG_LOWLEVEL_SOUND
-
-if [ "$CONFIG_LOWLEVEL_SOUND" = "y" ]; then
- bool 'ACI mixer (miroPCM12)' CONFIG_ACI_MIXER
- bool 'AWE32 synth' CONFIG_AWE32_SYNTH
- bool 'Gallant Audio Cards (SC-6000 and SC-6600 based)' CONFIG_AEDSP16
-
- if [ "$CONFIG_AEDSP16" = "y" ]; 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
-
- if [ "$CONFIG_SB" = "y" -a "$CONFIG_AEDSP16_MSS" != "y" ]; then
- bool 'Audio Excel DSP 16 (SBPro emulation)' CONFIG_AEDSP16_SBPRO
- if [ "$CONFIG_AEDSP16_SBPRO" = "y" ]; then
- comment 'Audio Excel DSP 16 [Sound Blaster Pro]'
- hex 'I/O base for Audio Excel DSP 16 220 or 240' \
- CONFIG_AEDSP16_BASE $CONFIG_SB_BASE
- int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- CONFIG_AEDSP16_SB_IRQ $CONFIG_SB_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_SB_DMA $CONFIG_SB_DMA
- fi
- fi
-
- if [ "$CONFIG_MSS" = "y" -a "$CONFIG_AEDSP16_SBPRO" != "y" ]; then
- bool 'Audio Excel DSP 16 (MSS emulation)' CONFIG_AEDSP16_MSS
- if [ "$CONFIG_AEDSP16_MSS" = "y" ]; then
- comment 'Audio Excel DSP 16 [Microsoft Sound System]'
- hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
- int 'Audio Excel DSP 16 IRQ 5, 7, 9, 10, 11' \
- CONFIG_AEDSP16_MSS_IRQ $CONFIG_MSS_IRQ
- int 'Audio Excel DSP 16 DMA 0, 1 or 3' CONFIG_AEDSP16_MSS_DMA $CONFIG_MSS_DMA
- fi
- fi
-
- if [ "$CONFIG_MPU401" = "y" ]; then
- bool 'Audio Excel DSP 16 (MPU401 emulation)' CONFIG_AEDSP16_MPU401
- if [ "$CONFIG_AEDSP16_MPU401" = "y" ]; then
- comment 'Audio Excel DSP 16 [MPU-401]'
- if [ "$CONFIG_AEDSP16_SBPRO" != "y" \
- -a "$CONFIG_AEDSP16_MSS" != "y" ]; then
- hex 'I/O base for Audio Excel DSP 16 220 or 240' CONFIG_AEDSP16_BASE 220
- fi
- int 'MPU401 IRQ for Audio Excel DSP 16 5, 7, 9, 10 or 0 (disable)' \
- CONFIG_AEDSP16_MPU_IRQ $CONFIG_MPU_IRQ
- fi
- fi
-
- if [ "$CONFIG_SC6600" = "y" ]; then
- comment 'SC-6600 specific configuration'
- bool 'Activate SC-6600 Joystick Interface' CONFIG_SC6600_JOY
- int 'SC-6600 CDROM Interface (4=None, 3=IDE, 1=Panasonic, 0=?Sony?)' \
- CONFIG_SC6600_CDROM 4
- hex 'SC-6600 CDROM Interface I/O Address' CONFIG_SC6600_CDROMBASE 0
- fi
-
- fi
-fi
diff --git a/drivers/sound/lowlevel/Makefile b/drivers/sound/lowlevel/Makefile
index 0340b37b9..921f10362 100644
--- a/drivers/sound/lowlevel/Makefile
+++ b/drivers/sound/lowlevel/Makefile
@@ -1,67 +1,24 @@
-all: lowlevel.o
-
-ALLOBJS = init.o aci.o awe_wave.o aedsp16.o
-OBJS = init.o
-
-ifeq ($(CONFIG_LOWLEVEL_SOUND),y)
-ifeq ($(CONFIG_ACI_MIXER),y)
- OBJS := $(OBJS) aci.o
-endif
-ifeq ($(CONFIG_AWE32_SYNTH),y)
-OBJS := $(OBJS) awe_wave.o
-else
- ifeq ($(CONFIG_AWE32_SYNTH),m)
- MX_OBJS := $(MX_OBJS) awe_wave.o
- endif
-endif
-ifeq ($(CONFIG_AEDSP16),y)
- OBJS := $(OBJS) aedsp16.o
-else
- ifeq ($(CONFIG_AEDSP16),m)
- MX_OBJS := $(MX_OBJS) aedsp16.o
- endif
-endif
-endif
-
-ifndef TOPDIR
-TOPDIR=/usr/src/linux
-endif
-
-lowlevel.o: $(OBJS)
- $(LD) -r -o lowlevel.o $(OBJS)
+# Makefile for the Linux low-level sound card drivers.
+#
+# 11 Feb 1998, Michael Elizabeth Chastain, <mailto:mec@shout.net>
+# Rewritten to use lists instead of if statements.
-module: manual_config.h
- rm -f lowlevel.o
- make CFLAGS="$(CFLAGS) -DLOWLEVEL_MODULE" $(ALLOBJS)
- $(LD) -r -o lowlevel.o $(ALLOBJS)
- touch module
+export-objs := soundlow.o
-manual_config.h:
- @echo You should create `pwd`/manual_config.h.
- @echo See `pwd`/README for more info.
- @exit 1
+list-y :=
+list-m :=
+list-n :=
+list- :=
-clean:
- rm -f core x y z *~ *.o module .depend
+obj-$(CONFIG_SOUND_OSS) += soundlow.o
+obj-$(CONFIG_ACI_MIXER) += aci.o
+obj-$(CONFIG_AEDSP16) += aedsp16.o
+obj-$(CONFIG_AWE32_SYNTH) += awe_wave.o
-dep:
- $(CPP) -M $(CFLAGS) -I. *.c > .depend
+O_TARGET := lowlevel.o
+O_OBJS := $(sort $(filter-out $(export-objs), $(obj-y)))
+OX_OBJS := $(sort $(filter $(export-objs), $(obj-y)))
+M_OBJS := $(sort $(filter-out $(export-objs), $(obj-m)))
+MX_OBJS := $(sort $(filter $(export-objs), $(obj-m)))
-ifndef HOSTCC
-#
-# Running outside the kernel build.
-#
-CC = gcc
-HOSTCC = gcc
-CFLAGS = -O2 -D__KERNEL__ -DMODULE -I/usr/src/linux/include -Wall -Wstrict-prototypes -fomit-frame-pointer -pipe -m486
-USE_DEPEND=y
-else
include $(TOPDIR)/Rules.make
-endif
-
-ifdef USE_DEPEND
-# include a dependency file if one exists
-ifeq (.depend,$(wildcard .depend))
-include .depend
-endif
-endif
diff --git a/drivers/sound/lowlevel/README.awe b/drivers/sound/lowlevel/README.awe
index a0281710a..1765d4b15 100644
--- a/drivers/sound/lowlevel/README.awe
+++ b/drivers/sound/lowlevel/README.awe
@@ -1,12 +1,12 @@
================================================================
- AWE32 Sound Driver for Linux / FreeBSD
+ AWE32 Sound Driver for Linux and FreeBSD
version 0.4.2c; Oct. 7, 1997
================================================================
* GENERAL NOTES
-This is a sound driver extension for SoundBlaster AWE32 and other
-compatible cards (AWE32-PnP, SB32, SB32-PnP, AWE64 & etc) to enable
+This is a sound driver extension for the Sound Blaster AWE32 and other
+compatible cards (AWE32-PnP, SB32, SB32-PnP, AWE64, etc.) to enable
the wave synth operations. The driver is provided for both Linux
1.2.x and 2.[01].x kernels, and also FreeBSD on Intel x86 and DEC
Alpha systems. See INSTALL.awe (or INSTALL.fbsd) document for
@@ -120,8 +120,8 @@ Define them only when the driver couldn't detect the card properly.
[Sample Table Size]
From ver.0.4.0, sample tables are allocated dynamically (except
Linux-1.2.x system), so you need NOT to touch these parameters.
-Linux-1.2.x users may need to increase these values to apropriate size
-if larger DRAM is equipped with the soundcard.
+Linux-1.2.x users may need to increase these values for sound
+cards equipped with more DRAM.
- AWE_MAX_SF_LISTS, AWE_MAX_SAMPLES, AWE_MAX_INFOS
@@ -135,7 +135,7 @@ if larger DRAM is equipped with the soundcard.
passthrough channels.
- AWE_DEBUG_ON (default: defined)
- turns on debuggin messages if defined.
+ turns on debugging messages if defined.
- AWE_HAS_GUS_COMPATIBILITY (default: defined)
Enables GUS compatibility mode if defined, reading GUS patches and
@@ -166,26 +166,26 @@ if larger DRAM is equipped with the soundcard.
* ACKNOWLEDGMENTS
-Thanks to Witold Jachimczyk (witek@xfactor.wpi.edu) for many advices
-to programming of AWE32. Many codes are brought from his AWE32-native
+Thanks to Witold Jachimczyk (witek@xfactor.wpi.edu) for much advice
+on programming of AWE32. Much code is brought from his AWE32-native
MOD player, ALMP.
-The port of awedrv to FreeBSD is done by Randall Hopper
+The port of awedrv to FreeBSD was done by Randall Hopper
(rhh@ct.picker.com).
I also thank linux-awe-ml members for their efforts
-to reboot their system many times :-)
+to reboot their systems many times. :-)
* BUGS & TODO'S
-- Can't detect DRAM size on some card
-- More smart patch management
-- More smart DRAM memory control
-- etc, etc, etc.
+- can't detect DRAM size on some cards
+- smarter patch management
+- smarter DRAM memory control
+- etc., etc., etc.
* COPYRIGHT
-Copyright (C) 1996,1997 Takashi Iwai
+Copyright (C) 1996, 1997 Takashi Iwai
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/drivers/sound/lowlevel/aci.c b/drivers/sound/lowlevel/aci.c
index 84d5c73c2..d46088b8e 100644
--- a/drivers/sound/lowlevel/aci.c
+++ b/drivers/sound/lowlevel/aci.c
@@ -13,7 +13,7 @@
* software.
*
* This Voxware ACI driver currently only supports the ACI functions
- * on the miroSOUND PCM12 card. Support for miro soundcards with
+ * on the miroSOUND PCM12 card. Support for miro sound cards with
* additional ACI functions can easily be added later.
*
* Revision history:
@@ -76,6 +76,7 @@ static int aci_present = 0;
#ifdef MODULE /* Whether the aci mixer is to be reset. */
int aci_reset = 0; /* Default: don't reset if the driver is a */
+MODULE_PARM(aci_reset,"i");
#else /* module; use "insmod sound.o aci_reset=1" */
int aci_reset = 1; /* to override. */
#endif
@@ -88,7 +89,7 @@ int aci_reset = 1; /* to override. */
/*
* Wait until the ACI microcontroller has set the READYFLAG in the
* Busy/IRQ Source Register to 0. This is required to avoid
- * overrunning the soundcard microcontroller. We do a busy wait here,
+ * overrunning the sound card microcontroller. We do a busy wait here,
* because the microcontroller is not supposed to signal a busy
* condition for more than a few clock cycles. In case of a time-out,
* this function returns -1.
@@ -491,7 +492,7 @@ int attach_aci(void)
}
if (aci_idcode[0] == 0x6d) {
- /* it looks like a miro soundcard */
+ /* It looks like a miro sound card. */
switch (aci_idcode[1]) {
case 0x41:
boardname = "PCM1 pro / early PCM12";
diff --git a/drivers/sound/lowlevel/awe_wave.c b/drivers/sound/lowlevel/awe_wave.c
index a9ac8850e..111b0c5be 100644
--- a/drivers/sound/lowlevel/awe_wave.c
+++ b/drivers/sound/lowlevel/awe_wave.c
@@ -48,7 +48,7 @@
#endif
#ifdef AWE_HAS_GUS_COMPATIBILITY
-/* include finetune table */
+/* include fine tuning table */
#ifdef AWE_OBSOLETE_VOXWARE
# ifdef __FreeBSD__
# define SEQUENCER_C
diff --git a/drivers/sound/lowlevel/init.c b/drivers/sound/lowlevel/soundlow.c
index d2e9242e4..64ac00ccd 100644
--- a/drivers/sound/lowlevel/init.c
+++ b/drivers/sound/lowlevel/soundlow.c
@@ -4,10 +4,9 @@
#include "lowlevel.h"
#include <linux/config.h>
+#include <linux/module.h>
#include "../soundvers.h"
-#ifdef CONFIG_LOWLEVEL_SOUND
-
#ifdef LOWLEVEL_MODULE
char *lowlevel_version = SOUND_VERSION_STRING;
#endif
@@ -61,4 +60,7 @@ sound_unload_lowlevel_drivers(void)
#endif
}
-#endif
+
+EXPORT_SYMBOL(sound_init_lowlevel_drivers);
+EXPORT_SYMBOL(sound_unload_lowlevel_drivers);
+EXPORT_SYMBOL(sound_preinit_lowlevel_drivers);