1.\" $NetBSD: hdaudio.4,v 1.6 2010/09/28 12:25:27 wiz Exp $ 2.\" 3.\" Copyright (c) 2009, 2010 The NetBSD Foundation, Inc. 4.\" All rights reserved. 5.\" 6.\" This code is derived from software contributed to The NetBSD Foundation 7.\" by Precedence Technologies Ltd 8.\" 9.\" Redistribution and use in source and binary forms, with or without 10.\" modification, are permitted provided that the following conditions 11.\" are met: 12.\" 1. Redistributions of source code must retain the above copyright 13.\" notice, this list of conditions and the following disclaimer. 14.\" 2. Redistributions in binary form must reproduce the above copyright 15.\" notice, this list of conditions and the following disclaimer in the 16.\" documentation and/or other materials provided with the distribution. 17.\" 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28.\" POSSIBILITY OF SUCH DAMAGE. 29.\" 30.Dd September 28, 2010 31.Dt HDAUDIO 4 32.Os 33.Sh NAME 34.Nm hdaudio 35.Nd High Definition Audio device driver 36.Sh SYNOPSIS 37.Cd "hdaudio* at pci? dev ? function ?" 38.Cd "hdafg* at hdaudiobus?" 39.Cd "audio* at audiobus?" 40.Pp 41.Cd "options HDAUDIO_DEBUG" 42.Cd "options HDAUDIO_AFG_DEBUG" 43.Sh DESCRIPTION 44The 45.Nm 46device driver is expected to support any PCI device which is 47compliant to the High Definition Audio Specification 1.0. 48It is a replacement for 49.Xr azalia 4 . 50It was written from scratch following the Intel HD Audio and Microsoft 51Universal Audio Architecture specifications. 52.Pp 53The driver consists of two interlinked components, which reflects the 54hardware design. 55The 56.Nm 57component interfaces with a PCI/PCIe bus and provides an 58.Xr hdaudiobus 4 59onto which different function groups attach. 60Each function group (e.g. audio, vendor-specific modem) is exported as a 61separate child device of the 62.Nm 63controller. 64Audio function groups (a.k.a. audio codec) are exported as 65.Xr hdafg 4 66devices. 67.Pp 68Audio codecs are available from a number of manufacturers and are made up of a 69number of widgets (e.g. audio mixer, output pin, analog-to-digital converter). 70The way the widgets are interlinked varies significantly between 71implementations. 72The tree of widgets must be parsed and mapped to 73.Xr mixer 4 74controls. 75As part of this process, loops in the inter-codec links must be detected 76and muted, bi-directional pins must be set up appropriately and the locations 77of pins determined. 78Unlike the 79.Xr azalia 4 80driver (which tends to generate a large number of unclearly named 81.Xr mixer 4 82controls), 83.Nm 84works backwards by starting with a list of desired, consistent and compatible 85.Xr mixer 4 86controls and configuring/discovering appropriate widget link routes to fit. 87.Pp 88By following the published mechanisms for common implementations of widget 89parsing, it is expected that nearly all High Definition Audio devices will 90be supported without requiring per-device quirks. 91.Sh SEE ALSO 92.Xr audio 4 , 93.Xr mixer 4 , 94.Xr pci 4 , 95.Xr hdaudioctl 8 , 96.Pa http://www.intel.com/standards/hdaudio/ 97.Pa http://www.microsoft.com/whdc/device/audio/ 98.Sh HISTORY 99The 100.Nm 101device driver appeared in 102.Nx 5.1 . 103.Sh AUTHORS 104The 105.Nm 106driver was written by 107.An Jared McNeill Aq jmcneill@NetBSD.org 108under contract by 109.An Precedence Technologies Ltd Aq http://www.precedence.co.uk/ . 110The UAA-compliant widget parser is derived from the 111.Fx 112snd_hda(4) driver. 113.Sh BUGS 114The following items are not yet implemented: 115.Bl -bullet 116.It 117Improve power management support when driver is idle 118.It 119Add support for non-PCM output formats 120.It 121Handle unsolicited RIRB messages 122.It 123Modem function groups 124.El 125