1 Via motherboard audio driver
2 Copyright 1999,2000 Jeff Garzik <jgarzik@mandrakesoft.com>
3
4 Driver software and documentation distributed under the GNU GENERAL
5 PUBLIC LICENSE (GPL) Version 2. See the "COPYING" file distributed with
6 this software for more info.
7
8
9
10 Introduction
11 ------------------------------------------------------------------------
12 The via82cxxx audio driver found in the drivers/sound directory
13 of the kernel source tree is a PCI audio driver for audio chips
14 found on Via-based motherboards, such as the MVP4.
15
16 Currently the driver exports the following features:
17
18 * /dev/dsp and /dev/audio support
19 * 16-bit stereo PCM output channel
20 * AC97 mixer
21
22 Please send bug reports to the mailing list linux-via@gtf.org.
23 To subscribe, e-mail majordomo@gtf.org with "subscribe linux-via" in the
24 body of the message.
25
26
27 Thanks
28 ------------------------------------------------------------------------
29 Via for providing e-mail support, specs, and NDA'd source code.
30
31 MandrakeSoft for providing hacking time.
32
33 AC97 mixer interface fixes and debugging by Ron Cemer <roncemer@gte.net>
34
35
36
37 Installation
38 ------------------------------------------------------------------------
39 If the driver is being statically compiled into the kernel, no
40 configuration should be necessary.
41
42 If the driver is being compiled as a module, generally one line must
43 be added to your /etc/conf.modules (or /etc/modules.conf) file:
44
45 alias sound via82cxxx_audio
46
47
48
49 Driver notes
50 ------------------------------------------------------------------------
51 Two /proc pseudo-files provide diagnostic information. This is generally
52 not useful to most users. Power users can disable VIA_PROC_FS macro in the
53 driver source code, and remove the /proc support code. In any case, once
54 version 2.0.0 is released, the /proc support code will be disabled by
55 default. Available /proc pseudo-files:
56
57 /proc/driver/via/0/info
58 /proc/driver/via/0/ac97
59
60 This driver by default supports all PCI audio devices which report
61 a vendor id of 0x1106, and a device id of 0x3058. Subsystem vendor
62 and device ids are not examined.
63
64 Only supports a single sound chip, as this is a motherboard chipset.
65 Some architecture remains for multiple cards, feel free to submit
66 a patch to clean some of that up. Ideally,
67
68 No consideration for SMP, this chipset is not known to be found on
69 any SMP motherboards. However, spin_locks must be used anyway in order
70 to handle interrupts correctly.
71
72 GNU indent formatting options: -kr -i8 -pcs
73
74
75
76 Tested Hardware
77 ------------------------------------------------------------------------
78 The following is an _incomplete_ list of motherboards supported by this
79 audio driver. If your motherboard (or notebook) is not listed here,
80 please e-mail the maintainer with details.
81
82 AOpen MX59 Pro
83 Compaq Presario 1247
84
85
86
87 Random Developer Notes / Comments
88 ------------------------------------------------------------------------
89 Via has graciously donated e-mail support and source code to help further
90 the development of this driver. Their assistance has been invaluable
91 in the design and coding of the next major version of this driver.
92
93 The Via audio chip apparently provides a second PCM scatter-gather
94 DMA channel just for FM data, but does not have a full hardware MIDI
95 processor. I haven't put much thought towards a solution here, but it
96 might involve using SoftOSS midi wave table, or simply disabling MIDI
97 support altogether and using the FM PCM channel as a second (input? output?)
98
99
100
101 General To-do List (patches/suggestions welcome)
102 ------------------------------------------------------------------------
103 Recording support
104
105 mmap support
106
107 Other advanced ioctls
108
109 Better docs
110
111 Code review
112
113 Native MIDI driver, as described above
114
115
116
117 Known bugs (patches/suggestions welcome)
118 ------------------------------------------------------------------------
119 1) Volume too low on many systems. Workaround: use mixer program
120 such as xmixer to increase volume.
121
122 2) RealPlayer output very scratchy. Workaround: use esd, and
123 configure RealPlayer to output to esd.
124
125 3) Applications which attempt to open the sound device in read/write
126 mode (O_RDWR) will fail. This is incorrect OSS behavior, but since
127 this driver will eventually support recording as well as playback,
128 we will be able to (in the future) support even broken programs which
129 unconditionally use O_RDWR.
130
131
132
133 Submitting a bug report
134 ------------------------------------------------------------------------
135 Describe the application you were using to play/record sound, and how
136 to reproduce the problem.
137
138 Obtain the via-audio-diag diagnostics program from
139 http://gtf.org/garzik/drivers/via82cxxx/ and provide a dump of the
140 audio chip's registers while the problem is occurring. Sample command line:
141 ./via-audio-diag -aps > diag-output.txt
142
143 Define "VIA_DEBUG" at the beginning of the driver, then capture and email
144 the kernel log output. This can be viewed in the system kernel log (if
145 enabled), or via the 'dmesg' program.
146
147 If you wish to increase the size of the buffer displayed by 'dmesg', then
148 change the LOG_BUF_LEN macro at the top of linux/kernel/printk.c, recompile
149 your kernel, and pass the "-s <size>" option to 'dmesg'.
150
151
152
153 Change history
154 ------------------------------------------------------------------------
155 Version 1.1.7:
156 * Fix module unload bug where mixer device left registered
157 after driver exit
158
159 Version 1.1.6:
160 * Rewrite via_set_rate to mimic ALSA basic AC97 rate setting
161 * Remove much dead code
162 * Complete spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl
163 * Fix build problem in via_dsp_ioctl
164 * Optimize included headers to eliminate headers found in linux/drivers/sound
165
166 Version 1.1.5:
167 * Disable some overly-verbose debugging code
168 * Remove unnecessary sound locks
169 * Fix some ioctls for better time resolution
170 * Begin spin_lock_irqsave -> spin_lock_irq conversion in via_dsp_ioctl
171
172 Version 1.1.4:
173 * Completed rewrite of driver. Eliminated SoundBlaster compatibility
174 completely, and now uses the much-faster scatter-gather DMA engine.
175
176
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.