diff options
Diffstat (limited to 'drivers/sound/lowlevel')
-rw-r--r-- | drivers/sound/lowlevel/Config.in | 56 | ||||
-rw-r--r-- | drivers/sound/lowlevel/Config.tmpl | 57 | ||||
-rw-r--r-- | drivers/sound/lowlevel/Makefile | 79 | ||||
-rw-r--r-- | drivers/sound/lowlevel/README.awe | 30 | ||||
-rw-r--r-- | drivers/sound/lowlevel/aci.c | 7 | ||||
-rw-r--r-- | drivers/sound/lowlevel/awe_wave.c | 2 | ||||
-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); |