Via 686 Audio Driver for Linux

Jeff Garzik

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.


Table of Contents
1. Introduction
2. Driver Installation
3. Submitting a bug report
3.1. Description of problem
3.2. Diagnostic output
3.3. Driver debug output
3.4. Bigger kernel message buffer
4. Known Bugs And Assumptions
5. Thanks
6. Random Notes
7. Driver ChangeLog
7.1. Version 1.9.1
7.2. Version 1.1.15
7.3. Version 1.1.14
7.4. Version 1.1.12
7.5. Version 1.1.11
7.6. Version 1.1.10
7.7. Version 1.1.9
7.8. Version 1.1.8
7.9. Version 1.1.7
7.10. Version 1.1.6
7.11. Version 1.1.5
7.12. Version 1.1.4
8. Internal Functions
via_chan_stop --  Terminate DMA on specified PCM channel
via_chan_status_clear --  Clear status flags on specified DMA channel
sg_begin --  Begin recording or playback on a PCM channel
via_syscall_down --  down the card-specific syscell semaphore
via_stop_everything --  Stop all audio operations
via_set_rate --  Set PCM rate for given channel
via_chan_init_defaults --  Initialize a struct via_channel
via_chan_init --  Initialize PCM channel
via_chan_buffer_init --  Initialize PCM channel buffer
via_chan_free --  Release a PCM channel
via_chan_pcm_fmt --  Update PCM channel settings
via_chan_clear --  Stop DMA channel operation, and reset pointers
via_chan_set_speed --  Set PCM sample rate for given channel
via_chan_set_fmt --  Set PCM sample size for given channel
via_chan_set_stereo --  Enable or disable stereo for a DMA channel
via_chan_dump_bufs --  Display DMA table contents
via_chan_flush_frag --  Flush partially-full playback buffer to hardware
via_chan_maybe_start --  Initiate audio hardware DMA operation
via_ac97_wait_idle --  Wait until AC97 codec is not busy
via_ac97_read_reg --  Read AC97 standard register
via_ac97_write_reg --  Write AC97 standard register
via_intr_channel --  handle an interrupt for a single channel
via_interrupt_init --  Initialize interrupt handling
via_dsp_drain_playback --  sleep until all playback samples are flushed
via_dsp_ioctl_space --  get information about channel buffering
via_dsp_ioctl_ptr --  get information about hardware buffer ptr