summaryrefslogtreecommitdiffstats
path: root/Documentation/sound
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-08-25 09:12:35 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-08-25 09:12:35 +0000
commitc7fc24dc4420057f103afe8fc64524ebc25c5d37 (patch)
tree3682407a599b8f9f03fc096298134cafba1c9b2f /Documentation/sound
parent1d793fade8b063fde3cf275bf1a5c2d381292cd9 (diff)
o Merge with Linux 2.1.116.
o New Newport console code. o New G364 console code.
Diffstat (limited to 'Documentation/sound')
-rw-r--r--Documentation/sound/ALS00740
-rw-r--r--Documentation/sound/AWE32171
-rw-r--r--Documentation/sound/CS423246
-rw-r--r--Documentation/sound/ChangeLog.multisound137
-rw-r--r--Documentation/sound/ESS186884
-rw-r--r--Documentation/sound/MultiSound234
-rw-r--r--Documentation/sound/OPL3-SA81
-rw-r--r--Documentation/sound/Opti28
-rw-r--r--Documentation/sound/Soundblaster25
-rw-r--r--Documentation/sound/Tropez+26
-rw-r--r--Documentation/sound/Wavefront371
-rw-r--r--Documentation/sound/es137062
-rw-r--r--Documentation/sound/es137156
-rw-r--r--Documentation/sound/mwave75
-rw-r--r--Documentation/sound/sonicvibes73
-rw-r--r--Documentation/sound/ultrasound15
16 files changed, 1378 insertions, 146 deletions
diff --git a/Documentation/sound/ALS007 b/Documentation/sound/ALS007
new file mode 100644
index 000000000..69a264815
--- /dev/null
+++ b/Documentation/sound/ALS007
@@ -0,0 +1,40 @@
+ALS-007 based sound cards
+=========================
+
+Support for sound cards based around the Avance Logic ALS-007 chip is
+included. The ALS-007 is a single chip PnP sound solution which is mostly
+hardware compatible with the Sound Blaster 16 card, with most differences
+occurring in the use of the mixer registers. For this reason the ALS-007
+code is integrated as part of the Sound Blaster 16 driver (adding only 800
+bytes to the SB16 driver).
+
+To use an ALS-007 sound card under Linux, enable the following options in the
+sound configuration section of the kernel config:
+ - 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support
+ - FM synthesizer (YM3812/OPL-3) support
+Since the ALS-007 is a PnP card, the sound driver probably should be
+compiled as a module, with the isapnptools used to wake up the sound card.
+Set the "I/O base for SB", "Sound Blaster IRQ" and "Sound Blaster DMA" (8 bit -
+either 0, 1 or 3) to the values used in your particular installation (they
+should match the values used to configure the card using isapnp). The
+ALS-007 does NOT implement 16 bit DMA, so the "Sound Blaster 16 bit DMA"
+should be set to -1. If you wish to use the external MPU-401 interface on
+the card, "MPU401 I/O base of SB16" and "SB MPU401 IRQ" should be set to
+the appropriate values for your installation. (Note that the ALS-007
+requires a separate IRQ for the MPU-401, so don't specify -1 here). (Note
+that the base port of the internal FM synth is fixed at 0x388 on the ALS007;
+in any case the FM synth location cannot be set in the kernel configuration).
+
+The resulting sound driver will provide the following capabilities:
+ - 8 and 16 bit audio playback
+ - 8 and 16 bit audio recording
+ - Software selection of record source (line in, CD, FM, mic, master)
+ - Record and playback of midi data via the external MPU-401
+ - Playback of midi data using inbuilt FM synthesizer
+ - Control of the ALS-007 mixer via any OSS-compatible mixer programs.
+ Controls available are Master (L&R), Line in (L&R), CD (L&R),
+ DSP/PCM/audio out (L&R), FM (L&R) and Mic in (mono).
+
+Jonathan Woithe
+jwoithe@physics.adelaide.edu.au
+30 March 1998
diff --git a/Documentation/sound/AWE32 b/Documentation/sound/AWE32
index 351f88a38..a21b46bc6 100644
--- a/Documentation/sound/AWE32
+++ b/Documentation/sound/AWE32
@@ -1,63 +1,122 @@
-From: Nicola Bernardelli <nbern@mail.protos.it>
-
- In order to load SB-AWE related drivers on recent kernels (tested
-with 2.1.86 and 2.1.88) with modularized sound support these lines can
-be issued (of course with the suitable values for the parameters)
-after PNP setup:
-
-insmod sound.o
-insmod uart401.o
-insmod sb.o io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
-insmod awe_wave.o
-
- Alternatively, in order to also have automatic load on demand
-(not of the awe support, which would anyway most likely also require a
-call to sfxload), these lines can be added to /etc/conf.modules, of
-course with the suitable values for the parameters):
-
-alias char-major-14 sb
-post-install sb modprobe "-k" "adlib_card"
-options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
-options adlib_card io=0x388 # FM synthesiser
-
-and then these two commands can be issued:
-
-modprobe sb
+ Installing and using Creative AWE midi sound under Linux.
+
+This documentation is devoted to the Creative Sound Blaster AWE32, AWE64 and
+SB32.
+
+1) Make sure you have an ORIGINAL Creative SB32, AWE32 or AWE64 card. This is
+important, because the driver works only with real Creative cards.
+
+2) If your card is NOT "Plug-n-Play" (I myself don't know Creative AWE non
+plug'n'play cards however) then go to 5th step now. In the other case
+proceed to step 3.
+
+3) You should obtain isapnptools. I looked through other PnP packages
+for Linux, but all they are either in deep unstable beta/alpha releases or
+they are much worse than isapnptools. In my case isapnptools were included in
+a Linux distribution (Red Hat 5.0). If you also already have them then go to
+step 4.
+
+The latest copy of isapnptools-1.15 is available from
+ftp://ftp.demon.co.uk/pub/unix/linux/utils/ (I tested isapnptools-1.15.tgz)
+You should gunzip/untar it to something like /usr/local/
+(cp isapnptools-1.15.tgz /usr/local/; cd /usr/local/;
+tar -xzf isapnptools-1.15.tgz).
+
+Compile the package (make) and install it (make install).
+If something goes wrong check the INSTALL file in isapnptools-1.15 directory.
+
+4) Now do a "pnpdump > /etc/isapnp.conf". File /etc/isapnp.conf will contain
+info about PnP devices you may have. If you want you can read the manual page
+about isapnp.conf file (man isapnp.conf). Most lines of your isapnp.conf file are
+commented. You should uncomment lines which don't conflict with your
+configuration.
+
+ATTENTION! Device Audio should have 1 IRQ, 2 DMA and 3 base I/O resources.
+If you don't have such a configuration you should manually add the resources to
+the isapnp.conf file. After editing I got these lines in the Audio device
+section (I ripped out all the comments):
+
+"(CONFIGURE CTL0044/1132685 (LD 0 (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 1))
+ (DMA 1 (CHANNEL 5)) (IO 0 (BASE 0x220)) (IO 1 (BASE 0x330)) (IO 2 (BASE 0x388))
+ (ACT Y)))"
+
+(In your case CTL044/1132685 numbers may be other)
+
+Don't forget to uncomment (ACT Y)!
+
+The next device is the on-board IDE controller. You may enable it if you wish,
+but it will not effect sound.
+
+Then WaveTable goes. For some reason Plug-n-Play detects only one I/O port,
+but the wavetable needs THREE! My working string is:
+
+"(CONFIGURE CTL044/1132685 (LD 2 (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20))
+(IO 3 (BASE 0x0E20)) (ACT Y) ))"
+
+Resources 0x0620, 0x0A20 and 0x0E20 should work. Other on-board devices:
+Gameport and StereoEnhance are not required to be inited.
+
+Now you can execute "isapnp /etc/isapnp.conf". No errors should be reported.
+If you correctly installed isapnptools, then isapnp will run every boot time.
+
+5) Now you should recompile the kernel. I recommend using development kernels,
+because the AWE32 driver is included in them. ATTENTION! In kernels 2.1.102,
+2.1.103, 2.1.104-pre1 and 2.1.104 (not the others) the lowlevel sound driver
+is not working. You should use the patch available at
+http://members.xoom.com/yar/history.html. If you are using stable kernel
+releases 2.0.x, then get the latest version (3.8s9) of
+OSS/Free at ftp://ftp.4front-tech.com/ossfree/ossfree38s9-linux20x.tar.gz
+and gunzip/untar it in /usr/src/ (assuming you keep your kernel source in
+/usr/src/linux). Then go to /usr/src/linux/ and view the README file. That
+file contains info about kernel compilation and installation.
+
+In "make (x,menu)config" select in "Sound":
+"Sound card support", "100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support",
+"Generic OPL2/OPL3 FM synthesizer support" and "FM synthesizer (YM3812/OPL-3)
+support" as <M> (module).
+
+If you use kernel version 2.0.x or version 2.1.y (y <= 2.1.104) skip substep a,
+on 2.1.105 or later go through it.
+
+substep a:
+In "make (x,menu)config" select in "Sound":
+select "OSS sound modules" as <M> (module)
+
+In "Additional low level sound drivers":
+"Additional low level sound drivers", "AWE32 synth" as <M> (module).
+Select "Additional low level sound drivers" as [y] (or [*] (yes)) (If it is not
+available as [y], select it as <M> (module))
+Now recompile the kernel (make dep; make (b)zImage; make modules;
+make modules_install), update your boot loader and boot new kernel.
+
+6) Now download awesfx program from
+http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/index.html#Latest. Compile it.
+Copy sfxload program to /bin (or /sbin if you wish). To enable AWE midi
+synthesis you should also get the sound bank file for general midi from
+http://members.xoom.com/yar/synthgm.sbk.gz. Copy it to
+/usr and gunzip it there.
+
+7) Edit /etc/rc.d/rc.local, inserting at the end of the file:
+
+modprobe sound
+insmod uart401
+insmod sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
insmod awe_wave
+sfxload /usr/synthfm.sbk
-------------------------------------------------------------------------------
-
-After picking up the second approach, you may want to put these lines
-on an ossfreeOn script:
-
- -----
-#!/bin/sh
-
-modprobe sb
-insmod awe_wave
-
-# A call to 'aumix -L' (attention to what the home dir is at boot
-# time, you may put a link /.aumixrc -> /home/<sounduser>/.aumixrc) to
-# restore mixer device levels and a call to 'sfxload <path to
-# soundfont bank>' may be added in a customized ossfreeSetup script:
-
-if [ -x /usr/local/sbin/ossfreeSetup ] ; then
- /usr/local/sbin/ossfreeSetup
-fi
- -----
+(on io=0xaaa irq=b.... you should use your own settings)
+That will enable the Sound Blaster and AWE wave synthesis.
-And these lines in an ossfreeOff script:
+To play midi files you should get one of these programs:
- -----
-#!/bin/sh
+Playmidi 2.4 or higher: http://playmidi.openprojects.net
+Drvmidi 4.2.b: http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/index.html#Latest
-# NOT set -e, maybe not all of them are currently loaded.
+(These are available at all major Linux FTP sites and may already be
+ in your distribution)
-rmmod awe_wave
-rmmod adlib_card
-rmmod opl3
-rmmod sb
-rmmod uart401
-rmmod sound
- -----
+If something goes wrong please e-mail me. All comments and suggestions are
+welcome.
+ Yaroslav Rosomakho (alons55@dialup.ptt.ru)
+ http://members.xoom.com/yar
diff --git a/Documentation/sound/CS4232 b/Documentation/sound/CS4232
index b4906b148..7d6af7a5c 100644
--- a/Documentation/sound/CS4232
+++ b/Documentation/sound/CS4232
@@ -1,23 +1,23 @@
-
-insmod sound
-insmod ad1848
-insmod uart401
-insmod cs4232 io=* irq=* dma=* dma2=*
-
-This configures the crystal CS423x sound chip and activates its DSP
-functions. On some cards the non PnP setup the board attempts to do fails.
-If you have problems use the kernel PnP facilities.
-
-io is the I/O address of the WSS (normally 0x534)
-irq is the IRQ of this device
-dma/dma2 are the DMA channels. DMA2 may well be 0
-
-
-To get midi synth facilities add
-
-insmod opl3 io=*
-
-io= I/O address of the OPL3 synthesizer. This will be shown in /proc/sys/pnp
-and is normally 0x388
-
-
+To configure the Crystal CS423x sound chip and activate its DSP functions,
+modules may be loaded in this order:
+
+ modprobe sound
+ insmod ad1848
+ insmod uart401
+ insmod cs4232 io=* irq=* dma=* dma2=*
+
+This is the meaning of the parameters:
+
+ io--I/O address of the Windows Sound System (normally 0x534)
+ irq--IRQ of this device
+ dma and dma2--DMA channels (DMA2 may be 0)
+
+On some cards, the board attempts to do non-PnP setup, and fails. If you
+have problems, use Linux' PnP facilities.
+
+To get MIDI facilities add
+
+ insmod opl3 io=*
+
+where "io" is the I/O address of the OPL3 synthesizer. This will be shown
+in /proc/sys/pnp and is normally 0x388.
diff --git a/Documentation/sound/ChangeLog.multisound b/Documentation/sound/ChangeLog.multisound
new file mode 100644
index 000000000..fcd5b19f4
--- /dev/null
+++ b/Documentation/sound/ChangeLog.multisound
@@ -0,0 +1,137 @@
+1998-08-06 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.7.2
+
+ * After A/D calibration, do an explicit set to the line input,
+ rather than using set_recsrc
+
+1998-07-20 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.7.1
+
+ * Add more OSS ioctls
+
+1998-07-19 Andrew Veliath <andrewtv@usa.net>
+
+ * Update doc file
+
+ * Bring back DIGITAL1 with digital parameter to msnd_pinnacle.c
+ and CONFIG_MSNDPIN_DIGITAL. I'm not sure this actually works,
+ since I find audio playback goes into a very speeded mode of
+ operation, however it might be due to a lack of a digital
+ source, which I don't have to test.
+
+1998-07-18 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.7.0
+
+ * Can now compile with Alan Cox' 2.0.34-modular-sound patch (so
+ now it requires >= 2.1.106 or 2.0.34-ms) (note for 2.0.34-ms it
+ is in the Experimental section)
+
+ * More modularization, consolidation, also some MIDI hooks
+ installed for future MIDI modules
+
+ * Write flush
+
+ * Change default speed, channels, bit size to OSS/Free defaults
+
+1998-06-02 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.5b
+
+ * Fix version detection
+
+ * Remove underflow and overflow resets (delay was too long)
+
+ * Replace spinlocked bitops with atomic bit ops
+
+1998-05-27 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.5a
+
+ * Better recovery from underflow or overflow conditions
+
+ * Fix a deadlock condition with one thread reading and the other
+ writing
+
+1998-05-26 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.5
+
+ * Separate reset queue functions for play and record
+
+ * Add delays in dsp_halt
+
+1998-05-24 Andrew Veliath <andrewtv@usa.net>
+
+ * Add a check for Linux >= 2.1.95
+
+ * Remove DIGITAL1 input until I figure out how to make it work
+
+ * Add HAVE_DSPCODEH which when not defined will load firmware from
+ files using mod_firmware_load, then release memory after they
+ are uploaded (requires reorganized OSS).
+
+1998-05-22 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.4c
+
+ * Hopefully fix the mixer volume problem
+
+1998-05-19 Andrew Veliath <andrewtv@usa.net>
+
+ * Add __initfuncs and __initdatas to reduce resident code size
+
+ * Move bunch of code around, remove some protos
+
+ * Integrate preliminary changes for Alan Cox's OSS reorganization
+ for non-OSS drivers to coexist with OSS devices on the same
+ major. To compile standalone, must now define STANDALONE.
+
+1998-05-16 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.4b
+
+ * Integrated older card support into a unified driver, tested on a
+ MultiSound Classic c/o Kendrick Vargas.
+
+1998-05-15 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.4
+
+ * Fix read/write return values
+
+1998-05-13 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.3
+
+ * Stop play gracefully
+
+ * Add busy flag
+
+ * Add major and calibrate_signal module parameters
+
+ * Add ADC calibration
+
+ * Add some OSS compatibility ioctls
+
+ * Add mixer record selection
+
+ * Add O_NONBLOCK support, separate read/write wait queues
+
+ * Add sample bit size ioctl, expanded sample rate ioctl
+
+ * Playback suspension now resumes
+
+ * Use signal_pending after interruptible_sleep_on
+
+ * Add recording, change ints to bit flags
+
+1998-05-11 Andrew Veliath <andrewtv@usa.net>
+
+ * Update version to 0.2
+
+ * Add preliminary playback support
+
+ * Use new Turtle Beach DSP code
diff --git a/Documentation/sound/ESS1868 b/Documentation/sound/ESS1868
new file mode 100644
index 000000000..d508349dc
--- /dev/null
+++ b/Documentation/sound/ESS1868
@@ -0,0 +1,84 @@
+Documentation for the ESS1868F AudioDrive PnP sound card
+
+The ESS1868 sound card is a PnP ESS1688-compatible 16-bit sound card.
+
+Notes about configuring the sound card:
+
+ * The ESS1868 does not allow use of a 16-bit DMA, thus DMA 0, 1, 2, and 3
+ may only be used.
+
+ * isapnptools version 1.14 does work with ESS1868. Earlier versions might
+ not.
+
+ * Sound support MUST be compiled as MODULES, not statically linked
+ into the kernel.
+
+For configuring the sound card's I/O addresses, IRQ and DMA, here is a
+sample copy of the isapnp.conf directives regarding the ESS1868:
+
+(CONFIGURE ESS1868/-1 (LD 1
+(IO 0 (BASE 0x0220))
+(IO 1 (BASE 0x0388))
+(IO 2 (BASE 0x0330))
+(DMA 0 (CHANNEL 1))
+(INT 0 (IRQ 5 (MODE +E)))
+(ACT Y)
+))
+
+(for a full working isapnp.conf file, remember the
+(ISOLATE)
+(IDENTIFY *)
+at the beginning and the
+(WAITFORKEY)
+at the end.)
+
+In this setup, the main card I/O is 0x0220, FM synthesizer is 0x0388, and
+the MPU-401 MIDI port is located at 0x0330. IRQ is IRQ 5, DMA is channel 1.
+
+After configuring the sound card via isapnp, to use the card you must load
+the sound modules with the proper I/O information. Here is my setup:
+
+# ESS1868F AudioDrive initialization
+
+/sbin/insmod sound
+/sbin/insmod uart401
+/sbin/insmod sb io=0x220 irq=5 dma=1 dma16=-1
+/sbin/insmod mpu401 io=0x330
+/sbin/insmod opl3 io=0x388
+/sbin/insmod v_midi
+
+opl3 is the FM synthesizer--I have not tried the SoftOSS wavetable
+synthesizer yet, but I assume it would work as well. Also, doing:
+/sbin/insmod opl3
+/sbin/insmod adlib_card io=0x388
+works, but I believe the sound quality is a bit distorted when playing MIDI
+files.
+
+When using the above setup, my /proc/sound gives the following:
+
+OSS/Free:3.8s2++-971130
+Load type: Driver loaded as a module
+Kernel: Linux scitus.dyn.ml.org 2.1.104 #1 SMP Sun May 24 11:04:27 EDT 1998 i486
+Config options: 0
+
+Installed drivers:
+
+Card config:
+
+Audio devices:
+0: ESS ES1688 AudioDrive (rev 11) (3.1)
+
+Synth devices:
+0: Yamaha OPL-3
+
+Midi devices:
+0: Loopback MIDI Port 1
+1: Loopback MIDI Port 2
+
+Timers:
+0: System clock
+
+Mixers:
+0: Sound Blaster
+
+
diff --git a/Documentation/sound/MultiSound b/Documentation/sound/MultiSound
new file mode 100644
index 000000000..4d4313134
--- /dev/null
+++ b/Documentation/sound/MultiSound
@@ -0,0 +1,234 @@
+Getting Firmware
+~~~~~~~~~~~~~~~~
+
+See the end of this document on how to obtain and create the necessary
+firmware files.
+
+
+Supported Features
+~~~~~~~~~~~~~~~~~~
+
+Currently digital audio and mixer functionality is supported. (memory
+mapped digital audio is not yet supported). Modular MultiSound
+support is composed of the following modules:
+
+msnd - MultiSound base (requires soundcore)
+msnd_classic - Base audio/mixer support for Classic, Monetery and
+ Tahiti cards
+msnd_pinnacle - Base audio/mixer support for Pinnacle and Fiji cards
+
+
+Important Notes - Read Before Using
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+* The firmware files are not included (may change in future). You
+must obtain these images from Turtle Beach (they are included in the
+MultiSound Development Kits), and place them in /etc/sound for
+example, and give the full paths in the Linux configuration. Please
+note these files must be binary files, not assembler.
+
+* You need the following information to use this driver: the card's
+I/O base (i.e. 0x250), the IRQ (i.e. 5), and the shared memory area
+(i.e. 0xd8000).
+
+* Probing is not currently implemented, and only the msnd_classic
+driver will actually program the card's IRQ and SMA locations; the
+msnd_pinnacle is primarily for use with the card in PnP mode, however
+it should work if you know what the card's resource values are (this
+will change in the future).
+
+* Note the Turtle Beach Pinnacle card contains a Kurzweil MA-1
+synthesizer with an MPU compatible interface, which should work with
+the mpu401 module. You must know the resource values of the MA-1.
+
+
+Examples
+~~~~~~~~
+
+* If you have a MultiSound Classic/Monterey/Tahiti:
+
+insmod soundcore
+insmod msnd
+insmod msnd_classic io=0x290 irq=7 mem=0xd0000
+
+* If you have a MultiSound Pinnacle:
+
+insmod soundcore
+insmod msnd
+insmod msnd_pinnacle io=0x210 irq=5 mem=0xd8000
+
+* To use the MPU-compatible Kurzweil synth on the Pinnacle, add the
+following:
+
+insmod sound
+insmod mpu401 io=0x330 irq=9
+
+
+msnd_classic, msnd_pinnacle Required Options
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If the following options are not given, the module will not load.
+Examine the kernel message log for informative error messages.
+WARNING--probing isn't supported so try to make sure you have the
+correct shared memory area, otherwise you may experience problems.
+
+io I/O base of DSP, e.g. io=0x210
+irq IRQ number, e.g. irq=5
+mem Shared memory area, e.g. mem=0xd8000
+
+
+msnd_classic, msnd_pinnacle Additional Options
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+fifosize The digital audio FIFOs, in kilobytes. The
+ default is 64kB (two FIFOs are allocated, so
+ this uses up 128kB).
+
+calibrate_signal Setting this to one calibrates the ADCs to the
+ signal, zero calibrates to the card (defaults
+ to zero).
+
+
+msnd_pinnacle Additional Options
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+digital Specify digital=1 to enable the S/PDIF input
+ if you have the digital daughterboard
+ adapter. This will enable access to the
+ DIGITAL1 input for the soundcard in the mixer.
+ Some mixer programs might have trouble setting
+ the DIGITAL1 source as an input. If you have
+ trouble, you can try the setdigital.c program
+ at the bottom of this document.
+
+
+Obtaining and Creating Firmware Files
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ For the Classic/Tahiti/Monterey
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Download to /tmp and unzip the following file from Turtle Beach:
+
+ ftp://ftp.tbeach.com/pub/tbs/pinn/msndvkit.zip
+
+When unzipped, unzip the file named MsndFiles.zip. Then copy the
+following firmware files to /etc/sound (note the file renaming):
+
+ cp DSPCODE/MSNDINIT.BIN /etc/sound/msndinit.bin
+ cp DSPCODE/MSNDPERM.REB /etc/sound/msndperm.bin
+
+When configuring the Linux kernel, specify /etc/sound/msndinit.bin and
+/etc/sound/msndperm.bin for the two firmware files (Linux kernel
+versions older than 2.2 do not ask for firmware paths, and are
+hardcoded to /etc/sound).
+
+
+ For the Pinnacle/Fiji
+ ~~~~~~~~~~~~~~~~~~~~~
+
+Download to /tmp and unzip the following file from Turtle Beach (be
+sure to use the entire URL; some have had trouble navigating to the
+URL):
+
+ ftp://ftp.tbeach.com/oldpub/tbs/pinn/pnddk100.zip
+
+Put the following lines into a file named conv.l (between the start
+and end lines):
+
+-- conv.l start --
+%%
+[ \n\t,\r]
+\;.*
+DB
+[0-9A-Fa-f]+H { int n; sscanf(yytext, "%xH", &n); printf("%c", n); }
+-- conv.l end --
+
+Then, compile the conv program with GNU make with the following
+command:
+
+ make LEX=flex LOADLIBES=-lfl conv
+
+This should give you an executable named conv. Now, we create the
+binary firmware files by doing the following conversion (assuming the
+archive unpacked into a directory named PINNDDK):
+
+ ./conv < PINNDDK/dspcode/pndspini.asm > /etc/sound/pndspini.bin
+ ./conv < PINNDDK/dspcode/pndsperm.asm > /etc/sound/pndsperm.bin
+
+The conv (and conv.l) program is not needed after conversion and can
+be safely deleted. Then, when configuring the Linux kernel, specify
+/etc/sound/pndspini.bin and /etc/sound/pndsperm.bin for the two
+firmware files (Linux kernel versions older than 2.2 do not ask for
+firmware paths, and are hardcoded to /etc/sound).
+
+
+Recording from the S/PDIF Input
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you have a Pinnacle or Fiji with S/PDIF input and want to set it as
+the input source, you can use this program if you have trouble trying
+to do it with a mixer program (be sure to insert the module with the
+digital=1 option).
+
+Compile with:
+cc -O setdigital.c -o setdigital
+
+-- start setdigital.c --
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/soundcard.h>
+
+int main(int argc, char *argv[])
+{
+ int fd;
+ unsigned long recmask, recsrc;
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: setdigital <mixer device>\n");
+ exit(1);
+ } else
+
+ if ((fd = open(argv[1], O_RDWR)) < 0) {
+ perror(argv[1]);
+ exit(1);
+ }
+
+ if (ioctl(fd, SOUND_MIXER_READ_RECMASK, &recmask) < 0) {
+ fprintf(stderr, "error: ioctl read recmask failed\n");
+ perror("ioctl");
+ close(fd);
+ exit(1);
+ }
+
+ if (!(recmask & SOUND_MASK_DIGITAL1)) {
+ fprintf(stderr, "error: cannot find DIGITAL1 device in mixer\n");
+ close(fd);
+ exit(1);
+ }
+
+ if (ioctl(fd, SOUND_MIXER_READ_RECSRC, &recsrc) < 0) {
+ fprintf(stderr, "error: ioctl read recsrc failed\n");
+ perror("ioctl");
+ close(fd);
+ exit(1);
+ }
+
+ recsrc |= SOUND_MASK_DIGITAL1;
+
+ if (ioctl(fd, SOUND_MIXER_WRITE_RECSRC, &recsrc) < 0) {
+ fprintf(stderr, "error: ioctl write recsrc failed\n");
+ perror("ioctl");
+ close(fd);
+ exit(1);
+ }
+
+ close(fd);
+
+ return 0;
+}
+-- end setdigital.c --
diff --git a/Documentation/sound/OPL3-SA b/Documentation/sound/OPL3-SA
new file mode 100644
index 000000000..153082c46
--- /dev/null
+++ b/Documentation/sound/OPL3-SA
@@ -0,0 +1,81 @@
+OPL3-SA1 sound driver (opl3sa.o)
+
+---
+Note: This howto only describes how to setup the OPL3-SA1 chip; this info
+does not apply to the SA2, SA3, or SA4. Contact hannu@opensound.com for
+the support details of these other SAx chips.
+---
+
+The Yamaha OPL3-SA1 sound chip is usually found built into motherboards, and
+it's a decent little chip offering a WSS mode, a SB Pro emulation mode, MPU401
+and OPL3 FM Synth capabilities.
+
+You can enable inclusion of the driver via CONFIG_SOUND_OPL3SA1=m, or
+CONFIG_SOUND_OPL3SA1=y through 'make config/xconfig/menuconfig'.
+
+You'll need to know all of the relevant info (irq, dma, and io port) for the
+chip's WSS mode, since that is the mode the kernel sound driver uses, and of
+course you'll also need to know about where the MPU401 and OPL3 ports and
+irq's are if you want to use those.
+
+Here's the skinny on how to load it as a module:
+
+ modprobe opl3sa io=0x530 irq=11 dma=0 dma2=1 mpu_io=0x330 mpu_irq=5
+
+Module options in detail:
+
+ io: This is the WSS's port base.
+ irq: This is the WSS's irq.
+ dma: This is the WSS's dma line. In my BIOS setup screen this was
+ listed as "WSS Play DMA"
+ dma2: This is the WSS's secondary dma line. My BIOS calls it the
+ "WSS capture DMA"
+
+ mpu_io: This is the MPU401's port base.
+ mpu_irq: This is the MPU401's irq.
+
+If you'd like to use the OPL3 FM Synthesizer, make sure you enable
+CONFIG_YM3812 (in 'make config'). That'll build the opl3.o module.
+
+Then a simple 'insmod opl3 io=0x388', and you now have FM Synth.
+
+You can also use the SoftOSS software synthesizer instead of the builtin OPL3.
+Here's how:
+
+Say 'y' or 'm' to "SoftOSS software wave table engine" in make config.
+
+If you said yes, the software synth is availible once you boot your new
+kernel.
+
+If you chose to build it as a module, just insmod the resulting softoss2.o
+
+A 'cat /dev/sndstat' with all the above options should look similar to this:
+
+ OSS/Free:3.8s2++-971130
+ Load type: Driver loaded as a module
+ Kernel: Linux iniquity 2.1.105 #145 Mon Jun 8 11:40:47 MST 1998 i586
+ Config options: 0
+
+ Installed drivers:
+
+ Card config:
+
+ Audio devices:
+ 0: MSS audio codec (CS4231) (DUPLEX)
+
+ Synth devices:
+ 0: Yamaha OPL-3
+ 1: SoftOSS
+
+ Midi devices:
+ 0: OPL3-SA (MPU401)
+
+ Timers:
+ 0: System clock
+ 1: MSS audio codec (CS4231)
+
+ Mixers:
+ 0: MSS audio codec (CS4231)
+
+Questions? Comments?
+<stiker@northlink.com>
diff --git a/Documentation/sound/Opti b/Documentation/sound/Opti
index bc8b15290..34b0f4331 100644
--- a/Documentation/sound/Opti
+++ b/Documentation/sound/Opti
@@ -10,8 +10,8 @@ kernel release will include these features.
Please do not report inconsistencies on older Linux
kernels.
-The OPTi 82C931 is supported in its non PnP mode.
-Usually you do not need to set jumpers etc... The sound driver
+The OPTi 82C931 is supported in its non-PnP mode.
+Usually you do not need to set jumpers, etc. The sound driver
will check the card status and if it is required it will
force the card into a mode in which it can be programmed.
@@ -34,7 +34,7 @@ Answer 'm' for these items:
Support for OPTi MAD16 and/or Mozart based cards (CONFIG_MAD16)
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812)
-The configuration menu may ask for addresses, irq lines or dma
+The configuration menu may ask for addresses, IRQ lines or DMA
channels. If the card is used as a module the module loading
options will override these values.
@@ -49,8 +49,8 @@ Go on and compile your kernel and modules. Install the modules. Run depmod -a.
Using isapnptools
-----------------
-In most systems with a PnP bios you do not need to use isapnp. The
-initialization provided by the bios is sufficient for the driver
+In most systems with a PnP BIOS you do not need to use isapnp. The
+initialization provided by the BIOS is sufficient for the driver
to pick up the card and continue initialization.
If that fails, or if you have other PnP cards, you need to use isapnp
@@ -61,8 +61,8 @@ about your PnP cards. Then edit the resulting file and select
the options of your choice. This file is normally installed as
/etc/isapnp.conf.
-The driver had one limitation WRT io port resources.
-IO3 base should be 0x0E0C. Isapnp allows other io ports but this
+The driver has one limitation with respect to I/O port resources:
+IO3 base must be 0x0E0C. Although isapnp allows other ports, this
address is hard-coded into the driver.
Using kmod and autoloading the sound driver
@@ -82,6 +82,14 @@ options mad16 irq=10 dma=0 dma16=1 io=0x530 joystick=1 cdtype=0
options opl3 io=0x388
post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6
+If you have an MPU daughtercard or onboard MPU you will want to add to the
+"options mad16" line - eg
+
+options mad16 irq=5 dma=0 dma16=3 io=0x530 mpu_io=0x330 mpu_irq=9
+
+To set the I/O and IRQ of the MPU.
+
+
Explain:
alias mixer0 mad16
@@ -117,7 +125,7 @@ options opl3 io=0x388
post-install mad16 /sbin/ad1848_mixer_reroute 14 8 15 3 16 6
This sets resources and options for the mad16 and opl3 drivers.
-I use 2 dma channels (only one is required) to enable full duplex.
+I use two DMA channels (only one is required) to enable full duplex.
joystick=1 enables the joystick port. cdtype=0 disables the cd port.
You can also set mpu_io and mpu_irq in the mad16 options for the
uart401 driver.
@@ -155,10 +163,10 @@ the mad16 driver (use "modprobe mad16" to prevent auto-unloading)
before the cdrom is accessed the first time.
Using the sound driver built-in to the kernel may help here, but...
-Most new systems have a PnP bios and also two IDE controllers.
+Most new systems have a PnP BIOS and also two IDE controllers.
The IDE controller on the sound card may be needed only on older
systems (which have only one IDE controller) but these systems
-also do not have a PnP bios - requiring isapnptools and a modularized
+also do not have a PnP BIOS - requiring isapnptools and a modularized
driver.
Known problems
diff --git a/Documentation/sound/Soundblaster b/Documentation/sound/Soundblaster
index 8fe9d42ef..ad4cb5567 100644
--- a/Documentation/sound/Soundblaster
+++ b/Documentation/sound/Soundblaster
@@ -1,17 +1,16 @@
-
-insmod sound
+modprobe sound
insmod uart401
insmod sb ...
-This loads the driver for the soundblaster and assorted clones. Cards that
+This loads the driver for the Sound Blaster and assorted clones. Cards that
are covered by other drivers should not be using this driver.
-The soundblaster module takes the following arguments
+The Sound Blaster module takes the following arguments
-io I/O address of the soundblaster chip
-irq IRQ of the soundblaster chip
-dma 8bit DMA channel for the soundblaster
-dma16 16bit DMA channel for SB16 and equivalent cards
+io I/O address of the Sound Blaster chip
+irq IRQ of the Sound Blaster chip
+dma 8-bit DMA channel for the Sound Blaster
+dma16 16-bit DMA channel for SB16 and equivalent cards
mpu_io I/O for MPU chip if present
mad16=1 Set when loading this as part of the MAD16 setup only
@@ -29,10 +28,14 @@ insmod opl3 io=0x388
Using Mwave
To make this driver work with Mwave you must set mwave_bug. You also need
-to warmboot from DOS/Windows with the required firmware loaded under this
+to warm boot from DOS/Windows with the required firmware loaded under this
OS. IBM are being difficult about documenting how to load this firmware.
Avance Logic ALS007
-This card isn't currently supported. I have patches to merge however that
-add limited support.
+This card is supported; see the separate file ALS007 for full details.
+
+Avance Logic ALS100
+
+This card is supported; setup should be as for a standard Sound Blaster 16.
+The driver will identify the audio device as a "Sound Blaster 16 (ALS-100)".
diff --git a/Documentation/sound/Tropez+ b/Documentation/sound/Tropez+
new file mode 100644
index 000000000..b93a6b734
--- /dev/null
+++ b/Documentation/sound/Tropez+
@@ -0,0 +1,26 @@
+From: Paul Barton-Davis <pbd@op.net>
+
+Here is the configuration I use with a Tropez+ and my modular
+driver:
+
+ alias char-major-14 wavefront
+ alias synth0 wavefront
+ alias mixer0 cs4232
+ alias audio0 cs4232
+ pre-install wavefront modprobe "-k" "cs4232"
+ post-install wavefront modprobe "-k" "opl3"
+ options wavefront io=0x200 irq=9
+ options cs4232 synthirq=9 synthio=0x200 io=0x530 irq=5 dma=1 dma2=0
+ options opl3 io=0x388
+
+Things to note:
+
+ the wavefront options "io" and "irq" ***MUST*** match the "synthio"
+ and "synthirq" cs4232 options.
+
+ you can do without the opl3 module if you don't
+ want to use the OPL/[34] synth on the soundcard
+
+ the opl3 io parameter is conventionally not adjustable.
+
+Please see drivers/sound/README.wavefront for more details.
diff --git a/Documentation/sound/Wavefront b/Documentation/sound/Wavefront
new file mode 100644
index 000000000..aadbfd23f
--- /dev/null
+++ b/Documentation/sound/Wavefront
@@ -0,0 +1,371 @@
+ An OSS/Free Driver for WaveFront soundcards
+ (Turtle Beach Maui, Tropez, Tropez Plus)
+
+ Paul Barton-Davis, July 1998
+
+ VERSION 0.2.4
+
+Driver Status
+-------------
+
+Requires: Kernel 2.1.106 or later (a version of the driver is included
+with kernels 2.1.109 and above)
+
+As of 7/20/1998, this driver is currently in *BETA* state. This means
+that it compiles and runs, and that I use it on my system (Linux
+2.1.106) with some reasonably demanding applications and uses. I
+believe the code is approaching an initial "finished" state that
+provides bug-free support for the Tropez Plus.
+
+Please note that to date, the driver has ONLY been tested on a Tropez
+Plus. I would very much like to hear (and help out) people with Tropez
+and Maui cards, since I think the driver can support those cards as
+well.
+
+Finally, the driver has not been tested (or even compiled) as a static
+(non-modular) part of the kernel. Alan Cox's good work in modularizing
+OSS/Free for Linux makes this rather unnecessary.
+
+Some Questions
+--------------
+
+**********************************************************************
+0) What does this driver do that the maui driver did not ?
+**********************************************************************
+
+* can fully initialize a WaveFront card from cold boot - no DOS
+ utilities needed
+* working patch/sample/program loading and unloading (the maui
+ driver didn't document how to make this work, and assumed
+ user-level preparation of the patch data for writing
+ to the board. ick.)
+* full user-level access to all WaveFront commands
+* for the Tropez Plus, (primitive) control of the YSS225 FX processor
+* Virtual MIDI mode supported - 2 MIDI devices accessible via the
+ WaveFront's MPU401/UART emulation. One
+ accesses the WaveFront synth, the other accesses the
+ external MIDI connector. Full MIDI read/write semantics
+ for both devices.
+* OSS-compliant /dev/sequencer interface for the WaveFront synth,
+ including native and GUS-format patch downloading.
+* semi-intelligent patch management (prototypical at this point)
+
+**********************************************************************
+1) What to do about MIDI interfaces ?
+**********************************************************************
+
+The Tropez Plus (and perhaps other WF cards) can in theory support up
+to 2 physical MIDI interfaces. One of these is connected to the
+ICS2115 chip (the WaveFront synth itself) and is controlled by
+MPU/UART-401 emulation code running as part of the WaveFront OS. The
+other is controlled by the CS4232 chip present on the board. However,
+physical access to the CS4232 connector is difficult, and it is
+unlikely (though not impossible) that you will want to use it.
+
+An older version of this driver introduced an additional kernel config
+variable which controlled whether or not the CS4232 MIDI interface was
+configured. Because of Alan Cox's work on modularizing the sound
+drivers, and now backporting them to 2.0.34 kernels, there seems to be
+little reason to support "static" configuration variables, and so this
+has been abandoned in favor of *only* module parameters. Specifying
+"mpuio" and "mpuirq" for the cs4232 parameter will result in the
+CS4232 MIDI interface being configured; leaving them unspecified will
+leave it unconfigured (and thus unusable).
+
+BTW, I have heard from one Tropez+ user that the CS4232 interface is
+more reliable than the ICS2115 one. I have had no problems with the
+latter, and I don't have the right cable to test the former one
+out. Reports welcome.
+
+**********************************************************************
+2) Why does line XXX of the code look like this .... ?
+**********************************************************************
+
+Either because its not finished yet, or because you're a better coder
+than I am, or because you don't understand some aspect of how the card
+or the code works.
+
+I absolutely welcome comments, criticisms and suggestions about the
+design and implementation of the driver.
+
+**********************************************************************
+3) What files are included ?
+**********************************************************************
+
+ drivers/sound/README.wavefront -- this file
+
+ drivers/sound/wavefront.patch -- patches for the 2.1.106 sound drivers
+ needed to make the rest of this work
+ DO NOT USE IF YOU'VE APPLIED THEM
+ BEFORE, OR HAVE 2.1.109 OR ABOVE
+
+ drivers/sound/wavfront.c -- the driver
+ drivers/sound/ys225.h -- data declarations for FX config
+ drivers/sound/ys225.c -- data definitions for FX config
+ drivers/sound/wf_midi.c -- the "uart401" driver
+ to support virtual MIDI mode.
+ include/wavefront.h -- the header file
+ Documentation/sound/Tropez+ -- short docs on configuration
+
+**********************************************************************
+4) How do I compile/install/use it ?
+**********************************************************************
+
+PART ONE: install the source code into your sound driver directory
+
+ cd <top-of-your-2.1.106-code-base-e.g.-/usr/src/linux>
+ tar -zxvf <where-you-put/wavefront.tar.gz>
+
+PART TWO: apply the patches
+
+ DO THIS ONLY IF YOU HAVE A KERNEL VERSION BELOW 2.1.109
+ AND HAVE NOT ALREADY INSTALLED THE PATCH(ES).
+
+ cd drivers/sound
+ patch < wavefront.patch
+
+PART THREE: configure your kernel
+
+ cd <top of your kernel tree>
+ make xconfig (or whichever config option you use)
+
+ - choose YES for Sound Support
+ - choose MODULE (M) for OSS Sound Modules
+ - choose MODULE(M) to YM3812/OPL3 support
+ - choose MODULE(M) for WaveFront support
+ - choose MODULE(M) for CS4232 support
+
+ - choose "N" for everything else (unless you have other
+ soundcards you want support for)
+
+
+ make dep
+ make boot
+ .
+ .
+ .
+ <whatever you normally do for a kernel install>
+ make modules
+ .
+ .
+ .
+ make modules_isntall
+
+Here's my autoconf.h SOUND section:
+
+/*
+ * Sound
+ */
+#define CONFIG_SOUND 1
+#undef CONFIG_SOUND_OSS
+#define CONFIG_SOUND_OSS_MODULE 1
+#undef CONFIG_SOUND_PAS
+#undef CONFIG_SOUND_SB
+#undef CONFIG_SOUND_ADLIB
+#undef CONFIG_SOUND_GUS
+#undef CONFIG_SOUND_MPU401
+#undef CONFIG_SOUND_PSS
+#undef CONFIG_SOUND_MSS
+#undef CONFIG_SOUND_SSCAPE
+#undef CONFIG_SOUND_TRIX
+#undef CONFIG_SOUND_MAD16
+#undef CONFIG_SOUND_WAVEFRONT
+#define CONFIG_SOUND_WAVEFRONT_MODULE 1
+#undef CONFIG_SOUND_CS4232
+#define CONFIG_SOUND_CS4232_MODULE 1
+#undef CONFIG_SOUND_MAUI
+#undef CONFIG_SOUND_SGALAXY
+#undef CONFIG_SOUND_OPL3SA1
+#undef CONFIG_SOUND_SOFTOSS
+#undef CONFIG_SOUND_YM3812
+#define CONFIG_SOUND_YM3812_MODULE 1
+#undef CONFIG_SOUND_VMIDI
+#undef CONFIG_SOUND_UART6850
+/*
+ * Additional low level sound drivers
+ */
+#undef CONFIG_LOWLEVEL_SOUND
+
+************************************************************
+6) How do I configure my card ?
+************************************************************
+
+You need to edit /etc/conf.modules. Here's mine (edited to show the
+relevant details):
+
+ # Sound system
+ alias char-major-14 wavefront
+ alias synth0 wavefront
+ alias mixer0 cs4232
+ alias audio0 cs4232
+ pre-install wavefront modprobe "-k" "cs4232"
+ post-install wavefront modprobe "-k" "opl3"
+ options wavefront io=0x200 irq=9
+ options cs4232 synthirq=9 synthio=0x200 io=0x530 irq=5 dma=1 dma2=0
+ options opl3 io=0x388
+
+Things to note:
+
+ the wavefront options "io" and "irq" ***MUST*** match the "synthio"
+ and "synthirq" cs4232 options.
+
+ you can do without the opl3 module if you don't
+ want to use the OPL/[34] FM synth on the soundcard
+
+ the opl3 io parameter is conventionally not adjustable.
+ In theory, any not-in-use IO port address would work, but
+ just use 0x388 and stick with the crowd.
+
+**********************************************************************
+7) What about firmware ?
+**********************************************************************
+
+Turtle Beach have not given me permission to distribute their firmware
+for the ICS2115. However, if you have a WaveFront card, then you
+almost certainly have the firmware, and if not, its freely available
+on their website, at:
+
+ http://www.tbeach.com/tbs/downloads/scardsdown.htm#tropezplus
+
+The file is called WFOS2001.MOT (for the Tropez+).
+
+This driver, however, doesn't use the pure firmware as distributed,
+but instead relies on a somewhat processed form of it. You can
+generate this very easily. Following an idea from Andrew Veliath's
+Pinnacle driver, the following flex program will generate the
+processed version:
+
+---- cut here -------------------------
+%option main
+%%
+^S[28].*\r$ printf ("%c%.*s", yyleng-1,yyleng-1,yytext);
+<<EOF>> { fputc ('\0', stdout); return; }
+\n {}
+. {}
+---- cut here -------------------------
+
+To use it, put the above in file (say, ws.l) compile it like this:
+
+ shell> flex -ows.c ws.l
+ shell> cc -o ws ws.c
+
+and then use it like this:
+
+ ws < my-copy-of-the-oswf.mot-file > /etc/sound/wavefront.os
+
+If you put it somewhere else, you'll always have to use the wf_ospath
+module parameter (see below) or alter the source code.
+
+**********************************************************************
+7) How do I get it working ?
+**********************************************************************
+
+Optionally, you can reboot with the "new" kernel (even though the only
+changes have really been made to a module).
+
+Then, as root do:
+
+ modprobe wavefront
+
+You should get something like this in /var/log/messages:
+
+ WaveFront: firmware 1.20 already loaded.
+
+or
+
+ WaveFront: no response to firmware probe, assume raw.
+
+then:
+
+ WaveFront: waiting for memory configuration ...
+ WaveFront: hardware version 1.64
+ WaveFront: available DRAM 8191k
+ WaveFront: 332 samples used (266 real, 13 aliases, 53 multi), 180 empty
+ WaveFront: 128 programs slots in use
+ WaveFront: 256 patch slots filled, 142 in use
+
+The whole process takes about 16 seconds, the longest waits being
+after reporting the hardware version (during the firmware download),
+and after reporting program status (during patch status inquiry). Its
+shorter (about 10 secs) if the firmware is already loaded (i.e. only
+warm reboots since the last firmware load).
+
+The "available DRAM" line will vary depending on how much added RAM
+your card has. Mine has 8MB.
+
+Next, check /dev/sndstat, which on my machine says:
+---------------------------------------------------------------------
+OSS/Free:3.8s2++-971130
+Load type: Driver loaded as a module
+Kernel: Linux bd 2.1.106 #12 SMP Fri Jul 3 00:37:34 EDT 1998 i486
+Config options: 0
+
+Installed drivers:
+
+Card config:
+
+Audio devices:
+0: Crystal audio controller (CS4232) (DUPLEX)
+
+Synth devices:
+0: Turtle Beach WaveFront
+1: Yamaha OPL-3
+
+Midi devices:
+0: WaveFront Internal MIDI
+1: WaveFront External MIDI
+
+Timers:
+0: System clock
+1: Crystal audio controller (CS4232)
+
+Mixers:
+0: Crystal audio controller (CS4232)
+-----------------------------------------------------------
+
+To check basically functionality, use play(1) or splay(1) to send a
+.WAV or other audio file through the audio portion. Then use playmidi
+to play a General MIDI file. Try the "-D 0" to hear the
+difference between sending MIDI to the WaveFront and using the OPL/3,
+which is the default (I think ...). If you have an external synth(s)
+hooked to the soundcard, you can use "-e" to route to the
+external synth(s) (in theory, -D 1 should work as well, but I think
+there is a bug in playmidi which prevents this from doing what it
+should).
+
+**********************************************************************
+8) What are the module parameters ?
+**********************************************************************
+
+Its best to read wavefront.c for this, but here is a summary:
+
+integers:
+ wf_raw - if set, ignore apparent presence of firmware
+ loaded onto the ICS2115, reset the whole
+ board, and initialize it from scratch. (default = 0)
+
+ fx_raw - if set, always initialize the YSS225 processor
+ on the Tropez plus. (default = 1)
+
+ < The next 4 are basically for kernel hackers to allow
+ tweaking the driver for testing purposes. >
+
+ wait_usecs - loop timer used when waiting for
+ status conditions on the board.
+ The default is 150.
+
+ debug_default - debugging flags. See sound/wavefront.h
+ for WF_DEBUG_* values. Default is zero.
+ Setting this allows you to debug the
+ driver during module installation.
+strings:
+ ospath - path to get to the pre-processed OS firmware.
+ (default: /etc/sound/wavefront.os)
+
+**********************************************************************
+9) Who should I contact if I have problems?
+**********************************************************************
+
+Just me: Paul Barton-Davis <pbd@op.net>
+
+
diff --git a/Documentation/sound/es1370 b/Documentation/sound/es1370
new file mode 100644
index 000000000..8c37df406
--- /dev/null
+++ b/Documentation/sound/es1370
@@ -0,0 +1,62 @@
+ALaw/uLaw sample formats
+------------------------
+
+This driver does not support the ALaw/uLaw sample formats.
+ALaw is the default mode when opening a sound device
+using OSS/Free. The reason for the lack of support is
+that the hardware does not support these formats, and adding
+conversion routines to the kernel would lead to very ugly
+code in the presence of the mmap interface to the driver.
+And since xquake uses mmap, mmap is considered important :-)
+and no sane application uses ALaw/uLaw these days anyway.
+In short, playing a Sun .au file as follows:
+
+cat my_file.au > /dev/dsp
+
+does not work. Instead, you may use the play script from
+Chris Bagwell's sox-12.14 package (available from the URL
+below) to play many different audio file formats.
+The script automatically determines the audio format
+and does do audio conversions if necessary.
+http://home.sprynet.com/sprynet/cbagwell/projects.html
+
+
+Blocking vs. nonblocking IO
+---------------------------
+
+Unlike OSS/Free this driver honours the O_NONBLOCK file flag
+not only during open, but also during read and write.
+This is an effort to make the sound driver interface more
+regular. Timidity has problems with this; a patch
+is available from http://www.ife.ee.ethz.ch/~sailer/linux/pciaudio.html.
+(Timidity patched will also run on OSS/Free).
+
+
+MIDI UART
+---------
+
+The driver supports a simple MIDI UART interface, with
+no ioctl's supported.
+
+
+MIDI synthesizer
+----------------
+
+This soundcard does not have any hardware MIDI synthesizer;
+MIDI synthesis has to be done in software. To allow this
+the driver/soundcard supports two PCM (/dev/dsp) interfaces.
+The second one goes to the mixer "synth" setting and supports
+only a limited set of sampling rates (44100, 22050, 11025, 5512).
+By setting lineout to 1 on the driver command line
+(eg. insmod es1370 lineout=1) it is even possible on some
+cards to convert the LINEIN jack into a second LINEOUT jack, thus
+making it possible to output four independent audio channels!
+
+There is a freely available software package that allows
+MIDI file playback on this soundcard called Timidity.
+See http://www.cgs.fi/~tt/timidity/.
+
+
+
+Thomas Sailer
+sailer@ife.ee.ethz.ch
diff --git a/Documentation/sound/es1371 b/Documentation/sound/es1371
new file mode 100644
index 000000000..a6b1c0257
--- /dev/null
+++ b/Documentation/sound/es1371
@@ -0,0 +1,56 @@
+ALaw/uLaw sample formats
+------------------------
+
+This driver does not support the ALaw/uLaw sample formats.
+ALaw is the default mode when opening a sound device
+using OSS/Free. The reason for the lack of support is
+that the hardware does not support these formats, and adding
+conversion routines to the kernel would lead to very ugly
+code in the presence of the mmap interface to the driver.
+And since xquake uses mmap, mmap is considered important :-)
+and no sane application uses ALaw/uLaw these days anyway.
+In short, playing a Sun .au file as follows:
+
+cat my_file.au > /dev/dsp
+
+does not work. Instead, you may use the play script from
+Chris Bagwell's sox-12.14 package (available from the URL
+below) to play many different audio file formats.
+The script automatically determines the audio format
+and does do audio conversions if necessary.
+http://home.sprynet.com/sprynet/cbagwell/projects.html
+
+
+Blocking vs. nonblocking IO
+---------------------------
+
+Unlike OSS/Free this driver honours the O_NONBLOCK file flag
+not only during open, but also during read and write.
+This is an effort to make the sound driver interface more
+regular. Timidity has problems with this; a patch
+is available from http://www.ife.ee.ethz.ch/~sailer/linux/pciaudio.html.
+(Timidity patched will also run on OSS/Free).
+
+
+MIDI UART
+---------
+
+The driver supports a simple MIDI UART interface, with
+no ioctl's supported.
+
+
+MIDI synthesizer
+----------------
+
+This soundcard does not have any hardware MIDI synthesizer;
+MIDI synthesis has to be done in software. To allow this
+the driver/soundcard supports two PCM (/dev/dsp) interfaces.
+
+There is a freely available software package that allows
+MIDI file playback on this soundcard called Timidity.
+See http://www.cgs.fi/~tt/timidity/.
+
+
+
+Thomas Sailer
+sailer@ife.ee.ethz.ch
diff --git a/Documentation/sound/mwave b/Documentation/sound/mwave
index 8bf73a039..b0f847cd6 100644
--- a/Documentation/sound/mwave
+++ b/Documentation/sound/mwave
@@ -1,7 +1,7 @@
- How to try and survive an IBM Mwave under Linux SB drivers
+ How to try to survive an IBM Mwave under Linux SB drivers
-* IBM refuse to provide documentation. If anyone can ever find out what
+* IBM refuses to provide documentation. If anyone can ever find out what
MWD50430.EXE actually does to load firmware then this comedy could go
away.
@@ -12,34 +12,35 @@
----------------------------------------------------------------------------
-OK, First thing - the IRQ problem IS a problem, whether the test is bypassed or
-not. And it is NOT a linux problem - it is an MWAVE problem that is fixed with
-the latest MWAVE patches. So, in other words, DON'T bypass the test for MWAVES!!
+OK, first thing - the IRQ problem IS a problem, whether the test is bypassed or
+not. It is NOT a Linux problem, but an MWAVE problem that is fixed with the
+latest MWAVE patches. So, in other words, don't bypass the test for MWAVES!
-My config is Win 95 on HDA1, swap on HDA2, RH 5 on HDA3.
+I have Windows 95 on /dev/hda1, swap on /dev/hda2, and Red Hat 5 on /dev/hda3.
The steps, then:
Boot to Linux.
- Mount Win95 file system (assume mount mount = /dos95)
+ Mount Windows 95 file system (assume mount point = /dos95).
mkdir /dos95/linux
mkdir /dos95/linux/boot
mkdir /dos95/linux/boot/parms
- Copy the kernel, any initrd image, and loadlin to /dos95/linux/boot
+ Copy the kernel, any initrd image, and loadlin to /dos95/linux/boot/.
- Reboot to win 95
+ Reboot to Windows 95.
- Edit C:/msdos.sys and add/change the following:
+ Edit C:/msdos.sys and add or change the following:
Logo=0
BootGUI=0
- [Note msdos.sys IS a text file but it needs to be 'unhidden' and make
- read-writable before it can be edited]
+ Note that msdos.sys is a text file but it needs to be made 'unhidden',
+ readable and writable before it can be edited. This can be done with
+ DOS' "attrib" command.
- Edit Config .sys to have multiple config menus. I have one for win95, and
- five for linux. Like this:
+ Edit config.sys to have multiple config menus. I have one for windows 95 and
+ five for Linux, like this:
------------
[menu]
menuitem=W95, Windows 95
@@ -70,11 +71,11 @@ DEVICE=C:\MWW\MANAGER\MWD50430.EXE
SHELL=c:\command.com /e:2048
-------------------
-The important things are the SHELL and DEVICE statements
+The important things are the SHELL and DEVICE statements.
- Then change Autoexec.bat. Basically everything in there originally should be
- done ONLY when Win95 is booted. Then you add new things specifically for
- Linux. Mine is as follows
+ Then change autoexec.bat. Basically everything in there originally should be
+ done ONLY when Windows 95 is booted. Then you add new things specifically
+ for Linux. Mine is as follows
---------------
@ECHO OFF
@@ -111,35 +112,35 @@ win
------------------------
-Now build a file in c:\linux\boot\parms for each linux config that you have.
+Now build a file in c:\linux\boot\parms for each Linux config that you have.
For example, my LINDOC3 config is for a docked Thinkpad at runlevel 3 with no
-initrd image, and has a parm file named LINDOC3.PAR in c:\linux\boot\parms:
+initrd image, and has a parameter file named LINDOC3.PAR in c:\linux\boot\parms:
-----------------------
# LOADLIN @param_file image=other_image root=/dev/other
#
# Linux Console in docking station
#
-c:\linux\boot\zImage.krn # first value must be the filename of the Linux-kernel
-root=/dev/hda3 # the device which gets mounted as root FS
-ro # Other kernel arguments go here
+c:\linux\boot\zImage.krn # First value must be filename of Linux kernel.
+root=/dev/hda3 # device which gets mounted as root FS
+ro # Other kernel arguments go here.
apm=off
doc=yes
3
-----------------------
-the doc=yes parm is an environment variable that my init scripts use, it is not
+The doc=yes parameter is an environment variable used by my init scripts, not
a kernel argument.
-However, the apm=off parm IS a kernel argument!!!!!!! APM, at least in my setup,
+However, the apm=off parameter IS a kernel argument! APM, at least in my setup,
causes the kernel to crash when loaded via loadlin (but NOT when loaded via
LILO). The APM stuff COULD be forced out of the kernel via the kernel compile
-options. BUT I, instead, got hold of an unofficial patch to the APM drivers that
-allows them to be dynamically deactivated via kernel arguments. Whatever you
-chose to document, APM, it seems, MUST be off for setups like mine.
+options. Instead, I got an unofficial patch to the APM drivers that allows them
+to be dynamically deactivated via kernel arguments. Whatever you chose to
+document, APM, it seems, MUST be off for setups like mine.
-Now check the C:\MWW\MWCONFIG.REF looks like this:
+Now make sure C:\MWW\MWCONFIG.REF looks like this:
----------------------
[NativeDOS]
@@ -167,16 +168,16 @@ OR the Default= line COULD be
Default=SBPRO
-Reboot to Win95 and choose Linux. When booted, use sndconfig to configure the
-sound modules and VOILA - ThinkPad sound with Linux.
+Reboot to Windows 95 and choose Linux. When booted, use sndconfig to configure
+the sound modules and voilą - ThinkPad sound with Linux.
-Now the gotchas - You can either have CD sound OR Mixers but not both. That's a
-problem with the SB1.5(CD sound) or SBPRO(Mixers) settings. No-one knows why
+Now the gotchas - you can either have CD sound OR Mixers but not both. That's a
+problem with the SB1.5 (CD sound) or SBPRO (Mixers) settings. No one knows why
this is!
-And, for some reason MPEG3 files, when played through mpg123, sound like they
-are playing at 1/8th speed - not very useful!!!!!!!!!!!! If you have ANY insight
-on why this second thing might be happening I would be grateful.
+For some reason MPEG3 files, when played through mpg123, sound like they
+are playing at 1/8th speed - not very useful! If you have ANY insight
+on why this second thing might be happening, I would be grateful.
===========================================================
_/ _/_/_/_/
@@ -188,5 +189,3 @@ _/ _/_/_/_/
_/ _/
_/_/
===========================================================
-
-
diff --git a/Documentation/sound/sonicvibes b/Documentation/sound/sonicvibes
new file mode 100644
index 000000000..4a4eb2526
--- /dev/null
+++ b/Documentation/sound/sonicvibes
@@ -0,0 +1,73 @@
+ALaw/uLaw sample formats
+------------------------
+
+This driver does not support the ALaw/uLaw sample formats.
+ALaw is the default mode when opening a sound device
+using OSS/Free. The reason for the lack of support is
+that the hardware does not support these formats, and adding
+conversion routines to the kernel would lead to very ugly
+code in the presence of the mmap interface to the driver.
+And since xquake uses mmap, mmap is considered important :-)
+and no sane application uses ALaw/uLaw these days anyway.
+In short, playing a Sun .au file as follows:
+
+cat my_file.au > /dev/dsp
+
+does not work. Instead, you may use the play script from
+Chris Bagwell's sox-12.14 package (available from the URL
+below) to play many different audio file formats.
+The script automatically determines the audio format
+and does do audio conversions if necessary.
+http://home.sprynet.com/sprynet/cbagwell/projects.html
+
+
+Blocking vs. nonblocking IO
+---------------------------
+
+Unlike OSS/Free this driver honours the O_NONBLOCK file flag
+not only during open, but also during read and write.
+This is an effort to make the sound driver interface more
+regular. Timidity has problems with this; a patch
+is available from http://www.ife.ee.ethz.ch/~sailer/linux/pciaudio.html.
+(Timidity patched will also run on OSS/Free).
+
+
+MIDI UART
+---------
+
+The driver supports a simple MIDI UART interface, with
+no ioctl's supported.
+
+
+MIDI synthesizer
+----------------
+
+The card both has an OPL compatible FM synthesizer as well as
+a wavetable synthesizer.
+
+I haven't managed so far to get the OPL synth running.
+
+Using the wavetable synthesizer requires allocating
+1-4MB of physically contiguous memory, which isn't possible
+currently on Linux without ugly hacks like the bigphysarea
+patch. Therefore, the driver doesn't support wavetable
+synthesis.
+
+
+No support from S3
+------------------
+
+I do not get any support from S3. Therefore, the driver
+still has many problems. For example, although the manual
+states that the chip should be able to access the sample
+buffer anywhere in 32bit address space, I haven't managed to
+get it working with buffers above 16M. Therefore, the card
+has the same disadvantages as ISA soundcards.
+
+Given that the card is also very noisy, and if you haven't
+already bought it, you should strongly opt for one of the
+comparatively priced Ensoniq products.
+
+
+Thomas Sailer
+sailer@ife.ee.ethz.ch
diff --git a/Documentation/sound/ultrasound b/Documentation/sound/ultrasound
index 51abe84a7..32cd50478 100644
--- a/Documentation/sound/ultrasound
+++ b/Documentation/sound/ultrasound
@@ -1,19 +1,18 @@
-
-insmod sound
+modprobe sound
insmod ad1848
insmod gus io=* irq=* dma=* ...
-This loads the driver for the Gravis Ultrasound family of soundcards.
+This loads the driver for the Gravis Ultrasound family of sound cards.
-The gus modules takes the following arguments
+The gus module takes the following arguments
-io I/O address of the ultrasound card (eg. io=0x220)
-irq IRQ of the soundblaster card
-dma DMA channel for the soundblaster
+io I/O address of the Ultrasound card (eg. io=0x220)
+irq IRQ of the Sound Blaster card
+dma DMA channel for the Sound Blaster
dma16 2nd DMA channel, only needed for full duplex operation
type 1 for PnP card
gus16 1 for using 16 bit sampling daughter board
-no_wave_dma Set to disable dma usage for wavetable (see note)
+no_wave_dma Set to disable DMA usage for wavetable (see note)
db16 ???