xref: /freebsd/share/man/man4/snd_hda.4 (revision 271c3a9060f2ee55607ebe146523f888e1db2654)
1.\" Copyright (c) 2006 Joel Dahl <joel@FreeBSD.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd May 11, 2008
28.Dt SND_HDA 4
29.Os
30.Sh NAME
31.Nm snd_hda
32.Nd "Intel High Definition Audio bridge device driver"
33.Sh SYNOPSIS
34To compile this driver into the kernel, place the following lines in your
35kernel configuration file:
36.Bd -ragged -offset indent
37.Cd "device sound"
38.Cd "device snd_hda"
39.Ed
40.Pp
41Alternatively, to load the driver as a module at boot time, place the
42following line in
43.Xr loader.conf 5 :
44.Bd -literal -offset indent
45snd_hda_load="YES"
46.Ed
47.Sh DESCRIPTION
48The
49.Nm
50bridge device driver allows the generic audio driver,
51.Xr sound 4 ,
52to attach to Intel High Definition Audio devices.
53The
54.Nm
55driver supports hardware that conforms with revision 1.0 of the Intel High
56Definition Audio specification and tries to behave much like the Microsoft
57Universal Audio Architecture (UAA) draft (revision 0.7b) for handling audio
58devices.
59HDA acts like a primary bus, similar to
60.Xr miibus 4 ,
61for handling various child buses such as audio, modem and HDMI (High Definition
62Multimedia Interface).
63Only audio is implemented in the
64.Nm
65driver.
66.Pp
67The High Definition (HD) Audio specification was developed by Intel as the
68logical successor of the old AC'97 specification and has several advantages,
69such as higher bandwidth which allows more channels and more detailed formats,
70support for several logical audio devices, and general purpose DMA channels.
71.Pp
72The HDA specification defines the register-level interface, physical link
73characteristics, codec programming models, and codec architectural components.
74This specification is intended for both device driver developers and hardware
75component designers.
76.Ss Boot-time Configuration
77The following variables are available at boot-time through the
78.Xr device.hints 5
79file:
80.Bl -tag -width ".Va hint.pcm.%d.config" -offset indent
81.It Va hint.pcm.%d.config
82Configures a range of possible options.
83Possible values are:
84.Dq Li dmapos ,
85.Dq Li eapdinv ,
86.Dq Li gpio0 ,
87.Dq Li gpio1 ,
88.Dq Li gpio2 ,
89.Dq Li gpio3 ,
90.Dq Li gpio4 ,
91.Dq Li gpio5 ,
92.Dq Li gpio6 ,
93.Dq Li gpio7 ,
94.Dq Li gpioflush ,
95.Dq Li ivref ,
96.Dq Li ivref50 ,
97.Dq Li ivref80 ,
98.Dq Li ivref100 ,
99.Dq Li fixedrate ,
100.Dq Li forcestereo ,
101.Dq Li ovref ,
102.Dq Li ovref50 ,
103.Dq Li ovref80 ,
104.Dq Li ovref100 ,
105.Dq Li softpcmvol ,
106and
107.Dq Li vref .
108An option prefixed with
109.Dq Li no ,
110such as
111.Dq Li nofixedrate ,
112will do the opposite and takes precedence.
113Options can be separated by whitespace and commas.
114.El
115.Ss Runtime Configuration
116The following
117.Xr sysctl 8
118variables are available in addition to those available to all
119.Xr sound 4
120devices:
121.Bl -tag -width ".Va dev.pcm.%d.polling" -offset indent
122.It Va dev.pcm.%d.polling
123Experimental polling mode, where the driver operates by querying the device
124state on each tick using
125.Xr callout 9 .
126Polling is disabled by default.
127Do not enable it unless you are facing weird interrupt problems or if the
128device cannot generate interrupts at all.
129.El
130.Sh HARDWARE
131The
132.Nm
133driver supports the following audio chipsets:
134.Pp
135.Bl -bullet -compact
136.It
137ATI SB450
138.It
139ATI SB600
140.It
141Intel 631x/632xESB
142.It
143Intel 82801F
144.It
145Intel 82801G
146.It
147Intel 82801H
148.It
149Intel 82801I
150.It
151nVidia MCP51
152.It
153nVidia MCP55
154.It
155nVidia MCP61A
156.It
157nVidia MCP61B
158.It
159nVidia MCP65A
160.It
161nVidia MCP65B
162.It
163nVidia MCP67A
164.It
165nVidia MCP67B
166.It
167SiS 966
168.It
169VIA VT8251/8237A
170.El
171.Pp
172Generic audio chipsets compatible with the Intel HDA specification should work,
173but have not been verified yet.
174The following codecs have been verified to work:
175.Pp
176.Bl -bullet -compact
177.It
178Analog Devices AD1981HD
179.It
180Analog Devices AD1983
181.It
182Analog Devices AD1984
183.It
184Analog Devices AD1986A
185.It
186Analog Devices AD1988
187.It
188Analog Devices AD1988B
189.It
190CMedia CMI9880
191.It
192Conexant Venice
193.It
194Conexant Waikiki
195.It
196Realtek ALC260
197.It
198Realtek ALC262
199.It
200Realtek ALC268
201.It
202Realtek ALC660
203.It
204Realtek ALC861
205.It
206Realtek ALC861VD
207.It
208Realtek ALC880
209.It
210Realtek ALC882
211.It
212Realtek ALC883
213.It
214Realtek ALC885
215.It
216Realtek ALC888
217.It
218Sigmatel STAC9205
219.It
220Sigmatel STAC9220
221.It
222Sigmatel STAC9220D/9223D
223.It
224Sigmatel STAC9221
225.It
226Sigmatel STAC9221D
227.It
228Sigmatel STAC9227
229.It
230Sigmatel STAC9271D
231.It
232VIA VT1708
233.It
234VIA VT1709
235.El
236.Sh SEE ALSO
237.Xr sound 4 ,
238.Xr device.hints 5 ,
239.Xr loader.conf 5 ,
240.Xr sysctl 8
241.Sh HISTORY
242The
243.Nm
244device driver first appeared in
245.Fx 6.3 .
246.Sh AUTHORS
247.An -nosplit
248The
249.Nm
250driver was written by
251.An Stephane E. Potvin Aq sepotvin@videotron.ca
252and
253.An Ariff Abdullah Aq ariff@FreeBSD.org .
254This manual page was written by
255.An Joel Dahl Aq joel@FreeBSD.org .
256.Sh BUGS
257There are a couple of missing features, such as support for Digital
258S/PDIF and multichannel output.
259.Pp
260A few Hardware/OEM vendors tend to screw up BIOS settings, thus
261rendering the
262.Nm
263driver useless, which usually results in a state where the
264.Nm
265driver seems to attach and work, but without any sound.
266