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