			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 provides audio via SoundBlaster Pro compatibility,
and MIDI via MPU-401 compatibility.  An AC97 mixing device is also
supported, and is generally preferred over the SoundBlaster mixer.

IMPORTANT NOTE:  Some users report that the SoundBlaster mixer does
not work at all -- use the AC97 mixer if possible.

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's 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 two lines must
be added to your /etc/conf.modules (or /etc/modules.conf) file:

	alias sound via82cxxx
	options sb support=1

The second line is very important:  it tells the required 'sb' module
not to load SoundBlaster support, but to instead let the Via driver
do so at a later time.



Driver notes
------------------------------------------------------------------------
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, this will change when we start handling
our own interrupts in "native mode."

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 (Apollo MVP4)



The Future
------------------------------------------------------------------------
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.

This audio chip supports a DirectSound(tm)-style hardware interface,
with a single 16-bit stereo input channel, and a single 16-bit stereo
output channel.  Data is transferred to/from the hardware using
table-driven scatter-gather DMA buffers.

Work is currently underway to support this "native mode" of the chip.
When complete, SoundBlaster legacy mode will be completely removed.
After a round of testing, this code will become version 2.0.0.

Following the 2.0.0 release, the last major task to complete is
MIDI support.  MPU-401 legacy support is available currently, but
not well tested at all.

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)
------------------------------------------------------------------------
Better docs

Code review by sound guru(s)

Native DSP audio driver using scatter-gather DMA, as described above

Native MIDI driver, as described above



Known bugs (patches/suggestions welcome)
------------------------------------------------------------------------
1) Two MIDI devices are loaded by the sound driver.  Eliminate one of them. 
Sample /proc/sound output:

	Midi devices:
	0: Sound Blaster
	1: VIA 82Cxxx Audio driver 1.1.2

2) Two mixer devices are loaded by the sound driver.  Eliminate one of
them.  At least one bug report says that SB mixer does not work at all,
only AC97 mixer.  Sample /proc/sound output:

	Mixers:
	0: via82cxxxAC97Mixer
	1: Sound Blaster

3) After unloading the driver, a SoundBlaster MIDI device is still 
listed in /proc/sound.  Investigate what is not being unloaded,
and fix it.  Sample /proc/sound output, after 'rmmod via82cxxx':

	Midi devices:
	0: Sound Blaster


