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