20a698a76a8ff59bcbc9b4c38498627e4e8bba9d
[dragonfly.git] / share / man / man4 / snd_hda.4
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: src/share/man/man4/snd_hda.4,v 1.10.2.1 2007/05/15 18:40:22 joel Exp $
26 .\"
27 .Dd April 7, 2012
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
34 To compile this driver into the kernel, place the following lines in your
35 kernel configuration file:
36 .Bd -ragged -offset indent
37 .Cd "device pcm"
38 .Cd "device snd_hda"
39 .Ed
40 .Pp
41 Alternatively, to load the driver as a module at boot time, place the
42 following line in
43 .Xr loader.conf 5 :
44 .Bd -literal -offset indent
45 snd_hda_load="YES"
46 .Ed
47 .Sh DESCRIPTION
48 The
49 .Nm
50 bridge device driver allows the generic audio driver,
51 .Xr sound 4 ,
52 to attach to Intel High Definition Audio devices.
53 The
54 .Nm
55 driver supports hardware that conforms with revision 1.0 of the Intel High
56 Definition Audio specification and tries to behave much like the Microsoft
57 Universal Audio Architecture (UAA) draft (revision 0.7b) for handling audio
58 devices.
59 HDA acts like a primary bus, similar to
60 .Xr miibus 4 ,
61 for handling various child buses such as audio, modem and HDMI (High Definition
62 Multimedia Interface).
63 Only audio is implemented in the
64 .Nm
65 driver.
66 .Pp
67 The High Definition (HD) Audio specification was developed by Intel as the
68 logical successor of the old AC'97 specification and has several advantages,
69 such as higher bandwidth which allows more channels and more detailed formats,
70 support for several logical audio devices, and general purpose DMA channels.
71 .Pp
72 The HDA specification defines the register-level interface, physical link
73 characteristics, codec programming models, and codec architectural components.
74 This specification is intended for both device driver developers and hardware
75 component designers.
76 .Ss Runtime Configuration
77 The following
78 .Xr sysctl 8
79 variables are available in addition to those available to all
80 .Xr sound 4
81 devices:
82 .Bl -tag -width ".Va dev.pcm.%d.polling" -offset indent
83 .It Va dev.pcm.%d.polling
84 Experimental polling mode, where the driver operates by querying the device
85 state on each tick using
86 .Xr callout 9 .
87 Polling is disabled by default.
88 Do not enable it unless you are facing weird interrupt problems or if the
89 device cannot generate interrupts at all.
90 .El
91 .Sh LOADER TUNABLES
92 .Bl -tag -width indent
93 .It Va hw.snd.hdac.msi.enable
94 By default, the driver will use MSI if it is supported.
95 This behavior can be turned off by setting this tunable to 0.
96 .El
97 .Sh HARDWARE
98 The
99 .Nm
100 driver supports the following audio chipsets:
101 .Pp
102 .Bl -bullet -compact
103 .It
104 ATI SB450
105 .It
106 ATI SB600
107 .It
108 Intel 631x/632xESB
109 .It
110 Intel 82801F
111 .It
112 Intel 82801G
113 .It
114 Intel 82801H
115 .It
116 nVidia MCP51
117 .It
118 nVidia MCP55
119 .It
120 nVidia MCP61A
121 .It
122 nVidia MCP61B
123 .It
124 nVidia MCP65A
125 .It
126 nVidia MCP65B
127 .It
128 SiS 966
129 .It
130 VIA VT8251/8237A
131 .El
132 .Pp
133 Generic audio chipsets compatible with the Intel HDA specification should work,
134 but have not been verified yet.
135 The following codecs have been verified to work:
136 .Pp
137 .Bl -bullet -compact
138 .It
139 Analog Device AD1981HD
140 .It
141 Analog Device AD1983
142 .It
143 Analog Device AD1986A
144 .It
145 Analog Device AD1988
146 .It
147 CMedia CMI9880
148 .It
149 Conexant Venice
150 .It
151 Conexant Waikiki
152 .It
153 Realtek ALC260
154 .It
155 Realtek ALC262
156 .It
157 Realtek ALC861
158 .It
159 Realtek ALC861VD
160 .It
161 Realtek ALC880
162 .It
163 Realtek ALC882
164 .It
165 Realtek ALC883
166 .It
167 Realtek ALC885
168 .It
169 Realtek ALC888
170 .It
171 Sigmatel STAC9220
172 .It
173 Sigmatel STAC9220D/9223D
174 .It
175 Sigmatel STAC9221
176 .It
177 Sigmatel STAC9221D
178 .It
179 Sigmatel STAC9227
180 .It
181 Sigmatel STAC9271D
182 .It
183 VIA VT1708
184 .It
185 VIA VT1709
186 .El
187 .Sh SEE ALSO
188 .Xr sound 4 ,
189 .Xr loader.conf 5 ,
190 .Xr sysctl 8
191 .Sh HISTORY
192 The
193 .Nm
194 device driver first appeared in
195 .Fx 7.0 .
196 .Sh AUTHORS
197 .An -nosplit
198 The
199 .Nm
200 driver was written by
201 .An Stephane E. Potvin Aq Mt sepotvin@videotron.ca
202 and
203 .An Ariff Abdullah Aq Mt ariff@FreeBSD.org .
204 This manual page was written by
205 .An Joel Dahl Aq Mt joel@FreeBSD.org .
206 .Sh BUGS
207 There are a couple of missing features, such as support for Digital
208 S/PDIF and multichannel output.
209 .Pp
210 A few Hardware/OEM vendors tend to screw up BIOS settings, thus
211 rendering the
212 .Nm
213 driver useless, which usually results in a state where the
214 .Nm
215 driver seems to attach and work, but without any sound.