xref: /freebsd/share/man/man4/snd_hda.4 (revision 2b743a9e9ddc6736208dc8ca1ce06ce64ad20a19)
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 February 16, 2007
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 gpio0 ,
85.Dq Li gpio1 ,
86.Dq Li gpio2 ,
87.Dq Li gpioflush ,
88.Dq Li eapdinv ,
89.Dq Li fixedrate ,
90.Dq Li forcestereo ,
91.Dq Li softpcmvol ,
92and
93.Dq Li vref .
94An option prefixed with
95.Dq Li no ,
96such as
97.Dq Li nofixedrate ,
98will do the opposite and takes precedence.
99Options can be separated by whitespace and commas.
100.El
101.Ss Runtime Configuration
102The following
103.Xr sysctl 8
104variables are available in addition to those available to all
105.Xr sound 4
106devices:
107.Bl -tag -width ".Va dev.pcm.%d.polling" -offset indent
108.It Va dev.pcm.%d.polling
109Experimental polling mode, where the driver operates by querying the device
110state on each tick using
111.Xr callout 9 .
112Polling is disabled by default.
113Do not enable it unless you are facing weird interrupt problems or if the
114device cannot generate interrupts at all.
115.El
116.Sh HARDWARE
117The
118.Nm
119driver supports the following audio chipsets:
120.Pp
121.Bl -bullet -compact
122.It
123ATI SB450
124.It
125ATI SB600
126.It
127Intel 631x/632xESB
128.It
129Intel 82801F
130.It
131Intel 82801G
132.It
133Intel 82801H
134.It
135nVidia MCP51
136.It
137nVidia MCP55
138.It
139nVidia MCP61A
140.It
141nVidia MCP61B
142.It
143nVidia MCP65A
144.It
145nVidia MCP65B
146.It
147SiS 966
148.It
149VIA VT8251/8237A
150.El
151.Pp
152Generic audio chipsets compatible with the Intel HDA specification should work,
153but have not been verified yet.
154The following codecs have been verified to work:
155.Pp
156.Bl -bullet -compact
157.It
158Analog Device AD1981HD
159.It
160Analog Device AD1983
161.It
162Analog Device AD1986A
163.It
164CMedia CMI9880
165.It
166Conexant Venice
167.It
168Conexant Waikiki
169.It
170Realtek ALC260
171.It
172Realtek ALC861
173.It
174Realtek ALC880
175.It
176Realtek ALC882
177.It
178Realtek ALC883
179.It
180Realtek ALC888
181.It
182Sigmatel STAC9220
183.It
184Sigmatel STAC9220D/9223D
185.It
186Sigmatel STAC9221
187.It
188Sigmatel STAC9221D
189.It
190Sigmatel STAC9227
191.It
192Sigmatel STAC9271D
193.El
194.Sh SEE ALSO
195.Xr sound 4 ,
196.Xr device.hints 5 ,
197.Xr loader.conf 5 ,
198.Xr sysctl 8
199.Sh HISTORY
200The
201.Nm
202device driver first appeared in
203.Fx 7.0 .
204.Sh AUTHORS
205.An -nosplit
206The
207.Nm
208driver was written by
209.An Stephane E. Potvin Aq sepotvin@videotron.ca
210and
211.An Ariff Abdullah Aq ariff@FreeBSD.org .
212This manual page was written by
213.An Joel Dahl Aq joel@FreeBSD.org .
214.Sh BUGS
215There are a couple of missing features, such as support for Digital
216S/PDIF and multichannel output.
217.Pp
218A few Hardware/OEM vendors tend to screw up BIOS settings, thus
219rendering the
220.Nm
221driver useless, which usually results in a state where the
222.Nm
223driver seems to attach and work, but without any sound.
224