summaryrefslogtreecommitdiffstats
path: root/Documentation/sound
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2001-03-09 20:33:35 +0000
committerRalf Baechle <ralf@linux-mips.org>2001-03-09 20:33:35 +0000
commit116674acc97ba75a720329996877077d988443a2 (patch)
tree6a3f2ff0b612ae2ee8a3f3509370c9e6333a53b3 /Documentation/sound
parent71118c319fcae4a138f16e35b4f7e0a6d53ce2ca (diff)
Merge with Linux 2.4.2.
Diffstat (limited to 'Documentation/sound')
-rw-r--r--Documentation/sound/AWE32129
-rw-r--r--Documentation/sound/Introduction86
-rw-r--r--Documentation/sound/Maestro384
-rw-r--r--Documentation/sound/NM2562
-rw-r--r--Documentation/sound/OPL3-SA2197
-rw-r--r--Documentation/sound/via82cxxx.txt176
6 files changed, 338 insertions, 336 deletions
diff --git a/Documentation/sound/AWE32 b/Documentation/sound/AWE32
index 8cf3966ed..0f50f5d24 100644
--- a/Documentation/sound/AWE32
+++ b/Documentation/sound/AWE32
@@ -3,103 +3,74 @@
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.
+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" then go to 5th step now. In the other case
-proceed to step 3.
+2) The first thing you need to do is re-compile your kernel with support for
+ your sound card. Run your favourite tool to configure the kernel and when
+ you get to the "Sound" menu you should enable support for the following:
-3) You should compile in kernel ISAPnP support or you should obtain isapnptools.
-If you choose kernel level ISAPnP skip to step 5. 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.x). If you also already have them then go to
-step 4.
+ Sound card support,
+ OSS sound modules,
+ 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) support,
+ AWE32 synth
-The latest copy of isapnptools-1.17 is available from
-ftp://sunsite.unc.edu/pub/Linux/system/hardware/isapnptools-1.17.tgz
-You should gunzip/untar it to something like /usr/local/
-(cp isapnptools-1.17.tgz /usr/local/; cd /usr/local/;
-tar -xzf isapnptools-1.17.tgz).
+ If your card is "Plug and Play" you will also need to enable these two
+ options, found under the "Plug and Play configuration" menu:
-Compile the package (make) and install it (make install).
-If something goes wrong check the INSTALL file in isapnptools-1.15 directory.
+ Plug and Play support
+ ISA Plug and Play support
-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.
+ Now compile and install the kernel in normal fashion. If you don't know
+ how to do this you can find instructions for this in the README file
+ located in the root directory of the kernel source.
-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):
+3) Before you can start playing midi files you will have to load a sound
+ bank file. The utility needed for doing this is called "sfxload", and it
+ is one of the utilities found in a package called "awesfx". If this
+ package is not available in your distribution you can download the AWE
+ snapshot from Creative Labs Open Source website:
-"(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)))"
+ http://www.opensource.creative.com/snapshot.html
-(In your case CTL044/1132685 numbers may be other)
+ Once you have unpacked the AWE snapshot you will see a "awesfx"
+ directory. Follow the instructions in awesfx/docs/INSTALL to install the
+ utilities in this package. After doing this, sfxload should be installed
+ as:
-Don't forget to uncomment (ACT Y)!
+ /usr/local/bin/sfxload
-The next device is the on-board IDE controller. You may enable it if you wish,
-but it will not effect sound.
+ To enable AWE general midi synthesis you should also get the sound bank
+ file for general midi from:
-Then WaveTable goes. For some reason Plug-n-Play detects only one I/O port,
-but the wavetable needs THREE! My working string is:
+ http://members.xoom.com/yar/synthgm.sbk.gz
-"(CONFIGURE CTL044/1132685 (LD 2 (IO 0 (BASE 0x0620)) (IO 1 (BASE 0x0A20))
-(IO 2 (BASE 0x0E20)) (ACT Y) ))"
+ Copy it to a directory of your choice, and unpack it there.
-Resources 0x0620, 0x0A20 and 0x0E20 should work. Other on-board devices:
-Gameport and StereoEnhance are not required to be initialized.
+4) Edit /etc/modules.conf, and insert the following lines at the end of the
+ file:
-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.
+ alias sound-slot-0 sb
+ alias sound-service-0-1 awe_wave
+ post-install awe_wave /usr/local/bin/sfxload PATH_TO_SOUND_BANK_FILE
-5) Now you should recompile the kernel.
+ You will of course have to change "PATH_TO_SOUND_BANK_FILE" to the full
+ path of of the sound bank file. That will enable the Sound Blaster and AWE
+ wave synthesis. To play midi files you should get one of these programs if
+ you don't already have them:
-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).
+ Playmidi: http://playmidi.openprojects.net
-In "make (x,menu)config" select in "Sound":
-select "OSS sound modules" as <M> (module)
-select "AWE32 Synth" as <M> (module)
+ AWEMidi Player (drvmidi) Included in the previously mentioned AWE
+ snapshot.
-Now recompile the kernel (make dep; make (b)zImage, b(z)lilo, etc...;
-make modules; make modules_install), update your boot loader (if required) and
-boot new kernel.
+ You will probably have to pass the "-e" switch to playmidi to have it use
+ your midi device. drvmidi should work without switches.
-6) If awesfx program is not included in your distribution, then download it
-from http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/index.html#Latest.
-Compile it. Copy sfxload program to /usr/bin. To enable AWE general 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.
+ If something goes wrong please e-mail me. All comments and suggestions are
+ welcome.
-7) Edit /etc/modules.conf, inserting at the end of the file:
+ Yaroslav Rosomakho (alons55@dialup.ptt.ru)
+ http://www.yar.opennet.ru
-alias midi awe_wave
-post-install awe_wave /usr/bin/sfxload /usr/synthfm.sbk
-
-That will enable the Sound Blaster and AWE wave synthesis.
-
-To play midi files you should get one of these programs:
-
-Playmidi 2.4 or higher: http://playmidi.openprojects.net
-Drvmidi: http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/index.html#Latest
-
-(These are available at all major Linux FTP sites and may already be
- in your distribution)
-Remember to use -a switch if you have playmidi as a compiled binary (ex. RPM)
-
-If something goes wrong please e-mail me. All comments and suggestions are
-welcome.
-
- Yaroslav Rosomakho (alons55@dialup.ptt.ru)
- http://www.yar.opennet.ru
-
-Last Updated: 10Apr2000
+Last Updated: Feb 3 2001
diff --git a/Documentation/sound/Introduction b/Documentation/sound/Introduction
index 289e03c7e..0b7fdc959 100644
--- a/Documentation/sound/Introduction
+++ b/Documentation/sound/Introduction
@@ -1,15 +1,19 @@
Introduction Notes on Modular Sound Drivers and Soundcore
Wade Hampton
-6/30/1999
+2/14/2001
Purpose:
========
This document provides some general notes on the modular
sound drivers and their configuration, along with the
-support modules sound.o, soundlow.o and soundcore.o.
+support modules sound.o and soundcore.o.
Note, some of this probably should be added to the Sound-HOWTO!
+Note, soundlow.o was present with 2.2 kernels but is not
+required for 2.4.x kernels. References have been removed
+to this.
+
Copying:
========
@@ -28,6 +32,8 @@ History:
1.1.1 19991031 Added notes on sound-slot- and sound-service.
(Alan Cox)
1.1.2 20000920 Modified for Kernel 2.4 (Christoph Hellwig)
+1.1.3 20010214 Minor notes and corrections (Wade Hampton)
+ Added examples of sound-slot-0, etc.
Modular Sound Drivers:
@@ -69,8 +75,9 @@ Notes:
1. There is a new OpenSource sound driver called ALSA which is
currently under development: http://www.alsa-project.org/
- I have not tried it nor am I aware of its status, but it is
- currently under development.
+ The ALSA drivers support some newer hardware that may not
+ be supported by this sound driver and also provide some
+ additional features.
2. The commercial OSS driver may be obtained from the site:
http://www/opensound.com. This may be used for cards that
@@ -82,7 +89,8 @@ Notes:
some of the requirements for multiple sound card systems. For
more information, see: http://www.tux.org/~ricdude/EsounD.html
The "esd" program may be used with the real-player and mpeg
- players like mpg123 and x11amp.
+ players like mpg123 and x11amp. The newer real-player
+ and some games even include built-in support for ESD!
Building the Modules:
@@ -104,13 +112,31 @@ the README takes precedence.
4. Select your sound driver(s) as a module. For ProAudio, Sound
Blaster, etc., select M (module) for OSS sound modules.
- [thanks to marvin stodolsky <stodolsk@erols.com>]A
+ [thanks to Marvin Stodolsky <stodolsk@erols.com>]A
5. Make the kernel (e.g., make dep ; make bzImage), and install
the kernel.
6. Make the modules and install them (make modules; make modules_install).
+Note, for 2.4.x kernels, make sure you have the newer modutils
+loaded or modules will not be loaded properly. 2.4.x changed the
+layout of /lib/modules/2.4.x and requires an updated modutils.
+
+
+Plug and Play (PnP:
+===================
+
+If the sound card is an ISA PnP card, isapnp may be used
+to configure the card. See the file isapnp.txt in the
+directory one level up (e.g., /usr/src/linux/Documentation).
+
+Also the 2.4.x kernels provide PnP capabilities, see the
+file NEWS in this directory.
+
+PCI sound cards are highly recommended, as they are far
+easier to configure and from what I have read, they use
+less resources and are more CPU efficient.
INSMOD:
@@ -129,7 +155,6 @@ SB_MPU=0x300
#
echo Starting sound
/sbin/insmod soundcore
-/sbin/insmod soundlow
/sbin/insmod sound
#
echo Starting sound blaster....
@@ -160,6 +185,10 @@ Sound Status:
The status of sound may be read/checked by:
cat (anyfile).au >/dev/audio
+[WWH: This may not work properly for SoundBlaster PCI 128 cards
+such as the es1370/1 (see the es1370/1 files in this directory)
+as they do not automatically support uLaw on /dev/audio.]
+
The status of the modules and which modules depend on
which other modules may be checked by:
/sbin/lsmod
@@ -168,7 +197,6 @@ which other modules may be checked by:
sb 26280 0
uart401 5640 0 [sb]
sound 57112 0 [sb uart401]
- soundlow 208 0 [sound]
soundcore 1968 8 [sb sound]
@@ -186,7 +214,6 @@ in the reverse order in which I loaded the modules):
/sbin/rmmod sb
/sbin/rmmod uart401
/sbin/rmmod sound
-/sbin/rmmod soundlow
/sbin/rmmod soundcore
When using sound as a module, I typically put these commands
@@ -217,7 +244,8 @@ are some great applications like multitrack that support them.
Typically, you need two sound cards of different types. Note, this
uses more precious interrupts and DMA channels and sometimes
can be a configuration nightmare. I have heard reports of 3-4
-sound cards (typically I only use 2).
+sound cards (typically I only use 2). You can sometimes use
+multiple PCI sound cards of the same type.
On my machine I have two sound cards (cs4232 and Soundblaster Vibra
16). By loading sound as modules, I can control which is the first
@@ -236,7 +264,7 @@ twice, you need to do the following:
1. Copy the sound modules to a new name. For example
sb.o could be copied (or symlinked) to sb1.o for the
- second SoundBlasster.
+ second SoundBlaster.
2. Make a second entry in /etc/modules.conf, for example,
sound1 or sb1. This second entry should refer to the
@@ -257,6 +285,7 @@ NOTE: In Linux 2.4 the Sound Blaster driver (and only this one yet)
supports multiple cards with one module by default.
Read the file 'Soundblaster' in this directory for details.
+
Sound Problems:
===============
@@ -314,7 +343,6 @@ in the Sound-HOWTO).
esddsp <program> may be used to play files via a non-esd
aware program.
-
6) Ask for help on the sound list or send E-MAIL to the
sound driver author/maintainer.
@@ -327,6 +355,9 @@ in the Sound-HOWTO).
This makes the sound system allocate its buffers and hang onto them.
+ You may also set persistent DMA when building a 2.4.x kernel.
+
+
Configuring Sound:
==================
@@ -354,10 +385,11 @@ And I am sure, several other ways.
Anyone want to write a linuxconf module for configuring sound?
+
Module Loading:
===============
-When a sound card is first referenced and sound is modular the sound system
+When a sound card is first referenced and sound is modular, the sound system
will ask for the sound devices to be loaded. Initially it requests that
the driver for the sound system is loaded. It then will ask for
sound-slot-0, where 0 is the first sound card. (sound-slot-1 the second and
@@ -370,11 +402,32 @@ the desired device - for example a soundblaster does not directly provide
a midi synth in all cases then it will request "sound-service-0-n" where n
is
-0 Mixer
+ 0 Mixer
+
+ 2 MIDI
+
+ 3, 4 DSP audio
+
-2 MIDI
+For example, I use the following to load my Soundblaster PCI 128
+(ES 1371) card first, followed by my SoundBlaster Vibra 16 card,
+then by my TV card:
-3, 4 DSP audio
+# Load the Soundblaster PCI 128 as /dev/dsp, /dev/dsp1, /dev/mixer
+alias sound-slot-0 es1371
+
+# Load the Soundblaster Vibra 16 as /dev/dsp2, /dev/mixer1
+alias sound-slot-1 sb
+options sb io=0x240 irq=5 dma=1 dma16=5 mpu_io=0x330
+
+# Load the BTTV (TV card) as /dev/mixer2
+alias sound-slot-2 bttv
+alias sound-service-2-0 tvmixer
+
+pre-install bttv modprobe tuner ; modprobe tvmixer
+pre-install tvmixer modprobe msp3400; modprobe tvaudio
+options tuner debug=0 type=8
+options bttv card=0 radio=0 pll=0
For More Information (RTFM):
@@ -405,3 +458,4 @@ For More Information (RTFM):
Contact Information:
====================
Wade Hampton: (whampton@staffnet.com)
+
diff --git a/Documentation/sound/Maestro3 b/Documentation/sound/Maestro3
new file mode 100644
index 000000000..ce6cf791c
--- /dev/null
+++ b/Documentation/sound/Maestro3
@@ -0,0 +1,84 @@
+ An OSS/Lite Driver for the ESS Maestro3 family of sound chips
+
+ Zach Brown, January 2001
+
+Driver Status and Availability
+------------------------------
+
+The most recent version of this driver will hopefully always be available at
+ http://www.zabbo.net/maestro3/
+
+I will try and maintain the most recent stable version of the driver
+in both the stable and development kernel lines.
+
+Historically I've sucked pretty hard at actually doing that, however.
+
+ESS Maestro3 Chip Family
+-----------------------
+
+The 'Maestro3' is much like the Maestro2 chip. The noted improvement
+is the removal of the silicon in the '2' that did PCM mixing. All that
+work is now done through a custom DSP called the ASSP, the Asynchronus
+Specific Signal Processor.
+
+The 'Allegro' is a baby version of the Maestro3. I'm not entirely clear
+on the extent of the differences, but the driver supports them both :)
+
+The 'Allegro' shows up as PCI ID 0x1988 and the Maestro3 as 0x1998,
+both under ESS's vendor ID of 0x125D. The Maestro3 can also show up as
+0x199a when hardware strapping is used.
+
+The chip can also act as a multi function device. The modem IDs follow
+the audio multimedia device IDs. (so the modem part of an Allegro shows
+up as 0x1989)
+
+Driver OSS Behavior
+--------------------
+
+This OSS driver exports /dev/mixer and /dev/dsp to applications, which
+mostly adhere to the OSS spec. This driver doesn't register itself
+with /dev/sndstat, so don't expect information to appear there.
+
+The /dev/dsp device exported behaves as expected. Playback is
+supported in all the various lovely formats. 8/16bit stereo/mono from
+8khz to 48khz, with both read()/write(), and mmap().
+
+/dev/mixer is an interface to the AC'97 codec on the Maestro3. It is
+worth noting that there are a variety of AC'97s that can be wired to
+the Maestro3. Which is used is entirely up to the hardware implementor.
+This should only be visible to the user by the presence, or lack, of
+'Bass' and 'Treble' sliders in the mixer. Not all AC'97s have them.
+The Allegro has an onchip AC'97.
+
+The driver doesn't support MIDI or FM playback at the moment.
+
+Compiling and Installing
+------------------------
+
+With the drivers inclusion into the kernel, compiling and installing
+is the same as most OSS/Lite modular sound drivers. Compilation
+of the driver is enabled through the CONFIG_SOUND_MAESTRO3 variable
+in the config system.
+
+It may be modular or statically linked. If it is modular it should be
+installed with the rest of the modules for the kernel on the system.
+Typically this will be in /lib/modules/ somewhere. 'alias sound-slot-0
+maestro3' should also be added to your module configs (typically
+/etc/modules.conf) if you're using modular OSS/Lite sound and want to
+default to using a maestro3 chip.
+
+There are very few options to the driver. One is 'debug' which will
+tell the driver to print minimal debugging information as it runs. This
+can be collected with 'dmesg' or through the klogd daemon.
+
+The other is 'external_amp', which tells the driver to attempt to enable
+an external amplifier. This defaults to '1', you can tell the driver
+not to bother enabling such an amplifier by setting it to '0'.
+
+Power Management
+----------------
+
+This driver has a minimal understanding of PCI Power Management. It will
+try and power down the chip when the system is suspended, and power
+it up with it is resumed. It will also try and power down the chip
+when the machine is shut down.
diff --git a/Documentation/sound/NM256 b/Documentation/sound/NM256
index 7e66a3009..b50321748 100644
--- a/Documentation/sound/NM256
+++ b/Documentation/sound/NM256
@@ -53,7 +53,7 @@ or CS4232-compatible codec/mixer; you will want to use the appropriate
compatible OSS driver with these chipsets. I cannot provide any
assistance with machines using the SB16, AD1848 or CS4232 compatible
versions. (The driver now attempts to detect the mixer version, and
-will refuse to load if it believes the hardware is not not
+will refuse to load if it believes the hardware is not
AC97-compatible.)
The sound support is very basic, but it does include simultaneous
diff --git a/Documentation/sound/OPL3-SA2 b/Documentation/sound/OPL3-SA2
index d43ba0475..83f9cee2f 100644
--- a/Documentation/sound/OPL3-SA2
+++ b/Documentation/sound/OPL3-SA2
@@ -2,22 +2,26 @@ Documentation for the OPL3-SA2, SA3, and SAx driver (opl3sa2.o)
---------------------------------------------------------------
Scott Murray, scott@spiteful.org
-January 5, 1999
+January 7, 2001
NOTE: All trade-marked terms mentioned below are properties of their
respective owners.
+
+Supported Devices
+-----------------
+
This driver is for PnP soundcards based on the following Yamaha audio
controller chipsets:
YMF711 aka OPL3-SA2
-YMF715 aka OPL3-SA3
-YMF719 aka OPL3-SAx (?)
+YMF715 and YMF719 aka OPL3-SA3
-I'm a little fuzzy on what exactly is classified a SAx, as I've seen
-the label used to refer to the whole 7xx family and as a specific
-identifier for the 719 on my no-name soundcard. To make matters
-worse, there seem to be several revisions of the 715 chipset.
+Up until recently (December 2000), I'd thought the 719 to be a
+different chipset, the OPL3-SAx. After an email exhange with
+Yamaha, however, it turns out that the 719 is just a re-badged
+715, and the chipsets are identical. The chipset detection code
+has been updated to refkect this.
Anyways, all of these chipsets implement the following devices:
@@ -31,75 +35,142 @@ chipsets enforce an either/or situation with the Soundblaster Pro
device and the MSS device. Since the MSS device has better
capabilities, I have implemented the driver to use it.
-Being PnP cards, some configuration is required. There are two ways
-of doing this. The most common is to use the isapnptools package to
-initialize the card, and use the kernel module form of the sound
-subsystem and sound drivers. Alternatively, some BIOS's allow manual
-configuration of installed PnP devices in a BIOS menu, which should
-allow using the non-modular sound drivers, i.e. built into the kernel.
+
+Mixer Channels
+--------------
+
+Older versions of this driver (pre-December 2000) had two mixers,
+an OPL3-SA2 or SA3 mixer and a MSS mixer. The OPL3-SA[23] mixer
+device contained a superset of mixer channels consisting of its own
+channels and all of the MSS mixer channels. To simplify the driver
+considerably, and to partition functionality better, the OPL3-SA[23]
+mixer device now contains has its own specific mixer channels. They
+are:
+
+Volume - Hardware master volume control
+Bass - SA3 only, now supports left and right channels
+Treble - SA3 only, now supports left and right channels
+Microphone - Hardware microphone input volume control
+Digital1 - Yamaha 3D enhancement "Wide" mixer
+
+All other mixer channels (e.g. "PCM", "CD", etc.) now have to be
+controlled via the "MS Sound System (CS4231)" mixer. To facilitate
+this, the mixer device creation order has been switched so that
+the MSS mixer is created first. This allows accessing the majority
+of the useful mixer channels even via single mixer-aware tools
+such as "aumix".
+
+
+Plug 'n Play
+------------
+
+In previous kernels (2.2.x), some configuration was required to
+get the driver to talk to the card. Being the new millenium and
+all, the 2.4.x kernels now support auto-configuration if ISA PnP
+support is configured in. Theoretically, the driver even supports
+having more than one card in this case.
+
+With the addition of PnP support to the driver, two new parameters
+have been added to control it:
+
+isapnp - set to 0 to disable ISA PnP card detection
+
+multiple - set to 0 to disable multiple PnP card detection
+
+
+Optional Parameters
+-------------------
+
+Recent (December 2000) additions to the driver (based on a patch
+provided by Peter Englmaier) are two new parameters:
+
+ymode - Set Yamaha 3D enhancement mode:
+ 0 = Desktop/Normal 5-12 cm speakers
+ 1 = Notebook PC (1) 3 cm speakers
+ 2 = Notebook PC (2) 1.5 cm speakers
+ 3 = Hi-Fi 16-38 cm speakers
+
+loopback - Set A/D input source. Useful for echo cancellation:
+ 0 = Mic Right channel (default)
+ 1 = Mono output loopback
+
+The ymode parameter has been tested and does work. The loopback
+parameter, however, is untested. Any feedback on its usefulness
+would be appreciated.
+
+
+Manual Configuration
+--------------------
+
+If for some reason you decide not to compile ISA PnP support into
+your kernel, or disabled the driver's usage of it by setting the
+isapnp parameter as discussed above, then you will need to do some
+manual configuration. There are two ways of doing this. The most
+common is to use the isapnptools package to initialize the card, and
+use the kernel module form of the sound subsystem and sound drivers.
+Alternatively, some BIOS's allow manual configuration of installed
+PnP devices in a BIOS menu, which should allow using the non-modular
+sound drivers, i.e. built into the kernel.
I personally use isapnp and modules, and do not have access to a PnP
-BIOS machine to test. If you have such a beast, try building both the
-MSS driver and this driver into the kernel (appropriately configured,
-of course). I have received reports of this working, so it should be
-possible for most people with PnP BIOS. If it does not work for you,
-then email me if you are willing to experiment in an effort to make it
-work.
-
-************************************************************************
-* I have now had two such machines, and I have fixed this to work
-* properly when built into the kernel. The Toshiba Libretto series, or
-* at least models 70CT and 110CT which I have owned, use a Yamaha
-* OPL3-SAx (OPL3-SA3 according to documentation) sound chip, IRQ 5,
-* IO addresses 220/530/388/330/370 and DMA 1,0 (_not_ 0,1). All these
-* configuration settings can be gathered by booting another OS which
-* recognizes the card already.
-*
-* I have made things 'just work' for the non-modular case on such
-* machines when configured properly.
-*
-* David Luyer <luyer@ucs.uwa.edu.au>
-************************************************************************
-
-If you are using isapnp, follow the directions in its documentation to
-produce a configuration file. Here is the relevant excerpt I use for
-my SAx card from my isapnp.conf:
+BIOS machine to test. If you have such a beast, configuring the
+driver to be built into the kernel should just work (thanks to work
+done by David Luyer <luyer@ucs.uwa.edu.au>). You will still need
+to specify settings, which can be done by adding:
+
+opl3sa2=<io>,<irq>,<dma>,<dma2>,<mssio>,<mpuio>
+
+to the kernel command line. For example:
+
+opl3sa2=0x370,5,0,1,0x530,0x330
+
+If you are instead using the isapnp tools (as most people have been
+before Linux 2.4.x), follow the directions in their documentation to
+produce a configuration file. Here is the relevant excerpt I used to
+use for my SA3 card from my isapnp.conf:
(CONFIGURE YMH0800/-1 (LD 0
-# Instead of (IO 0 (BASE 0x0220)), disable SB:
-(IO 0 (BASE 0x0000))
+# NOTE: IO 0 is for the unused SoundBlaster part of the chipset.
+(IO 0 (BASE 0x0220))
(IO 1 (BASE 0x0530))
(IO 2 (BASE 0x0388))
(IO 3 (BASE 0x0330))
(IO 4 (BASE 0x0370))
-(INT 0 (IRQ 7 (MODE +E)))
+(INT 0 (IRQ 5 (MODE +E)))
(DMA 0 (CHANNEL 0))
-(DMA 1 (CHANNEL 3))
+(DMA 1 (CHANNEL 1))
Here, note that:
Port Acceptable Range Purpose
---- ---------------- -------
-IO 0 0x0220 - 0x0280 SB base address, I set to 0 just to be safe.
+IO 0 0x0220 - 0x0280 SB base address, unused.
IO 1 0x0530 - 0x0F48 MSS base address
IO 2 0x0388 - 0x03F8 OPL3 base address
IO 3 0x0300 - 0x0334 MPU base address
IO 4 0x0100 - 0x0FFE card's own base address for its control I/O ports
-The IRQ and DMA values can be any that considered acceptable for a
+The IRQ and DMA values can be any that are considered acceptable for a
MSS. Assuming you've got isapnp all happy, then you should be able to
do something like the following (which matches up with the isapnp
configuration above):
-insmod mpu401
-insmod ad1848
-insmod opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3
-insmod opl3 io=0x388
+modprobe mpu401
+modprobe ad1848
+modprobe opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=5 dma=0 dma2=1
+modprobe opl3 io=0x388
+
+See the section "Automatic Module Loading" below for how to set up
+/etc/modules.conf to automate this.
-Remember that the opl3sa2 module's io argument is for it's own control
-port, which handles the card's master mixer for volume (on all cards),
-and bass and treble (on SA3 and SAx cards).
+An important thing to remember that the opl3sa2 module's io argument is
+for it's own control port, which handles the card's master mixer for
+volume (on all cards), and bass and treble (on SA3 cards).
+
+
+Troubleshooting
+---------------
If all goes well and you see no error messages, you should be able to
start using the sound capabilities of your system. If you get an
@@ -112,29 +183,27 @@ butting heads with another device.
If you still cannot get the module to load, look at the contents of
your system log file, usually /var/log/messages. If you see the
-message "Unknown Yamaha audio controller version", then you have a
-different chipset than I've encountered so far. Look for a line in
-the log file that says "opl3sa2.c: chipset version = <some number>".
-If you want me to add support for your card, send me the number from
-this line and any information you have on the make and chipset of your
-sound card, and I should be able to work up a permanent fix.
+message "opl3sa2: Unknown Yamaha audio controller version", then you
+have a different chipset version than I've encountered so far. Look
+for all messages in the log file that start with "opl3sa2: " and see
+if they provide any clues. If you do not see the chipset version
+message, and none of the other messages present in the system log are
+helpful, email me some details and I'll try my best to help.
+
-If you do not see the chipset version message, and none of the other
-messages present in the system log are helpful, email me some details
-and I'll try my best to help.
+Automatic Module Loading
+------------------------
Lastly, if you're using modules and want to set up automatic module
loading with kmod, the kernel module loader, here is the section I
currently use in my modules.conf file:
# Sound
-alias char-major-14 opl3sa2
-pre-install opl3sa2 modprobe "-k" "ad1848"
-post-install opl3sa2 modprobe "-k" "opl3"
+alias sound-slot-0 opl3sa2
options opl3sa2 io=0x370 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3
options opl3 io=0x388
-That's all it currently takes to get an OPL3-SAx card working on my
+That's all it currently takes to get an OPL3-SA3 card working on my
system. Once again, if you have any other problems, email me at the
address listed above.
diff --git a/Documentation/sound/via82cxxx.txt b/Documentation/sound/via82cxxx.txt
deleted file mode 100644
index bfaf99b64..000000000
--- a/Documentation/sound/via82cxxx.txt
+++ /dev/null
@@ -1,176 +0,0 @@
- Via motherboard audio driver
- Copyright 1999,2000 Jeff Garzik <jgarzik@mandrakesoft.com>
-
-Driver software and documentation distributed under the GNU GENERAL
-PUBLIC LICENSE (GPL) Version 2. See the "COPYING" file distributed with
-this software for more info.
-
-
-
-Introduction
-------------------------------------------------------------------------
-The via82cxxx audio driver found in the drivers/sound directory
-of the kernel source tree is a PCI audio driver for audio chips
-found on Via-based motherboards, such as the MVP4.
-
-Currently the driver exports the following features:
-
- * /dev/dsp and /dev/audio support
- * 16-bit stereo PCM output channel
- * AC97 mixer
-
-Please send bug reports to the mailing list linux-via@gtf.org.
-To subscribe, e-mail majordomo@gtf.org with "subscribe linux-via" in the
-body of the message.
-
-
-Thanks
-------------------------------------------------------------------------
-Via for providing e-mail support, specs, and NDA'd source code.
-
-MandrakeSoft for providing hacking time.
-
-AC97 mixer interface fixes and debugging by Ron Cemer <roncemer@gte.net>
-
-
-
-Installation
-------------------------------------------------------------------------
-If the driver is being statically compiled into the kernel, no
-configuration should be necessary.
-
-If the driver is being compiled as a module, generally one line must
-be added to your /etc/conf.modules (or /etc/modules.conf) file:
-
- alias sound via82cxxx_audio
-
-
-
-Driver notes
-------------------------------------------------------------------------
-Two /proc pseudo-files provide diagnostic information. This is generally
-not useful to most users. Power users can disable VIA_PROC_FS macro in the
-driver source code, and remove the /proc support code. In any case, once
-version 2.0.0 is released, the /proc support code will be disabled by
-default. Available /proc pseudo-files:
-
- /proc/driver/via/0/info
- /proc/driver/via/0/ac97
-
-This driver by default supports all PCI audio devices which report
-a vendor id of 0x1106, and a device id of 0x3058. Subsystem vendor
-and device ids are not examined.
-
-Only supports a single sound chip, as this is a motherboard chipset.
-Some architecture remains for multiple cards, feel free to submit
-a patch to clean some of that up. Ideally,
-
-No consideration for SMP, this chipset is not known to be found on
-any SMP motherboards. However, spin_locks must be used anyway in order
-to handle interrupts correctly.
-
-GNU indent formatting options: -kr -i8 -pcs
-
-
-
-Tested Hardware
-------------------------------------------------------------------------
-The following is an _incomplete_ list of motherboards supported by this
-audio driver. If your motherboard (or notebook) is not listed here,
-please e-mail the maintainer with details.
-
- AOpen MX59 Pro
- Compaq Presario 1247
-
-
-
-Random Developer Notes / Comments
-------------------------------------------------------------------------
-Via has graciously donated e-mail support and source code to help further
-the development of this driver. Their assistance has been invaluable
-in the design and coding of the next major version of this driver.
-
-The Via audio chip apparently provides a second PCM scatter-gather
-DMA channel just for FM data, but does not have a full hardware MIDI
-processor. I haven't put much thought towards a solution here, but it
-might involve using SoftOSS midi wave table, or simply disabling MIDI
-support altogether and using the FM PCM channel as a second (input? output?)
-
-
-
-General To-do List (patches/suggestions welcome)
-------------------------------------------------------------------------
-Recording support
-
-mmap support
-
-Other advanced ioctls
-
-Better docs
-
-Code review
-
-Native MIDI driver, as described above
-
-
-
-Known bugs (patches/suggestions welcome)
-------------------------------------------------------------------------
-1) Volume too low on many systems. Workaround: use mixer program
-such as xmixer to increase volume.
-
-2) RealPlayer output very scratchy. Workaround: use esd, and
-configure RealPlayer to output to esd.
-
-3) Applications which attempt to open the sound device in read/write
-mode (O_RDWR) will fail. This is incorrect OSS behavior, but since
-this driver will eventually support recording as well as playback,
-we will be able to (in the future) support even broken programs which
-unconditionally use O_RDWR.
-
-
-
-Submitting a bug report
-------------------------------------------------------------------------
-Describe the application you were using to play/record sound, and how
-to reproduce the problem.
-
-Obtain the via-audio-diag diagnostics program from
-http://gtf.org/garzik/drivers/via82cxxx/ and provide a dump of the
-audio chip's registers while the problem is occurring. Sample command line:
- ./via-audio-diag -aps > diag-output.txt
-
-Define "VIA_DEBUG" at the beginning of the driver, then capture and email
-the kernel log output. This can be viewed in the system kernel log (if
-enabled), or via the 'dmesg' program.
-
-If you wish to increase the size of the buffer displayed by 'dmesg', then
-change the LOG_BUF_LEN macro at the top of linux/kernel/printk.c, recompile
-your kernel, and pass the "-s <size>" option to 'dmesg'.
-
-
-
-Change history
-------------------------------------------------------------------------
-Version 1.1.7:
-* Fix module unload bug where mixer device left registered
- after driver exit
-
-Version 1.1.6:
-* Rewrite via_set_rate to mimic ALSA basic AC97 rate setting
-* Remove much dead code
-* Complete spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl
-* Fix build problem in via_dsp_ioctl
-* Optimize included headers to eliminate headers found in linux/drivers/sound
-
-Version 1.1.5:
-* Disable some overly-verbose debugging code
-* Remove unnecessary sound locks
-* Fix some ioctls for better time resolution
-* Begin spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl
-
-Version 1.1.4:
-* Completed rewrite of driver. Eliminated SoundBlaster compatibility
- completely, and now uses the much-faster scatter-gather DMA engine.
-
-