1 .\" $NetBSD: hdaudio.4,v 1.4 2009/09/26 11:52:16 jmcneill Exp $
3 .\" Copyright (c) 2009 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
6 .\" This code is derived from software contributed to The NetBSD Foundation
7 .\" by Precedence Technologies Ltd
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
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.
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.
30 .Dd September 26, 2009
35 .Nd High Definition Audio device driver
37 .Cd "hdaudio* at pci? dev ? function ?"
38 .Cd "hdafg* at hdaudiobus?"
39 .Cd "audio* at audiobus?"
41 .Cd "options HDAUDIO_DEBUG"
42 .Cd "options HDAUDIO_AFG_DEBUG"
46 device driver is expected to support any PCI device which is
47 compliant to the High Definition Audio Specification 1.0.
48 It is a replacement for
50 It was written from scratch following the Intel HD Audio and Microsoft
51 Universal Audio Architecture specifications.
53 The driver consists of two interlinked components, which reflects the
57 component interfaces with a PCI/PCIe bus and provides an
59 onto which different function groups attach.
60 Each function group (e.g. audio, vendor-specific modem) is exported as a
61 separate child device of the
64 Audio function groups (a.k.a. audio codec) are exported as
68 Audio codecs are available from a number of manufacturers and are made up of a
69 number of widgets (e.g. audio mixer, output pin, analog-to-digital converter).
70 The way the widgets are interlinked varies significantly between
72 The tree of widgets must be parsed and mapped to
75 As part of this process, loops in the inter-codec links must be detected
76 and muted, bi-directional pins must be set up appropriately and the locations
80 driver (which tends to generate a large number of unclearly named
84 works backwards by starting with a list of desired, consistent and compatible
86 controls and configuring/discovering appropriate widget link routes to fit.
88 By following the published mechanisms for common implementations of widget
89 parsing, it is expected that nearly all High Definition Audio devices will
90 be supported without requiring per-device quirks.
95 .Pa http://www.intel.com/standards/hdaudio/
96 .Pa http://www.microsoft.com/whdc/device/audio/
100 device driver appeared in
105 driver was written by
106 .An Jared McNeill Aq jmcneill@NetBSD.org
108 .An Precedence Technologies Ltd Aq http://www.precedence.co.uk/ .
109 The UAA-compliant widget parser is derived from the
113 The following items are not yet implemented:
116 Improve power management support when driver is idle
118 Add support for non-PCM output formats
120 Handle unsolicited RIRB messages
122 Modem function groups