xref: /netbsd-src/share/man/man4/hdaudio.4 (revision 09afef20633f5fe63d92dfe43ee3a9380dc06883)
1.\"	$NetBSD: hdaudio.4,v 1.4 2009/09/26 11:52:16 jmcneill Exp $
2.\"
3.\" Copyright (c) 2009 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 26, 2009
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_CFG_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.Pa http://www.intel.com/standards/hdaudio/
96.Pa http://www.microsoft.com/whdc/device/audio/
97.Sh HISTORY
98The
99.Nm
100device driver appeared in
101.Nx 6.0 .
102.Sh AUTHORS
103The
104.Nm
105driver was written by
106.An Jared McNeill Aq jmcneill@NetBSD.org
107under contract by
108.An Precedence Technologies Ltd Aq http://www.precedence.co.uk/ .
109The UAA-compliant widget parser is derived from the
110.Fx
111snd_hda(4) driver.
112.Sh BUGS
113The following items are not yet implemented:
114.Bl -bullet
115.It
116Improve power management support when driver is idle
117.It
118Add support for non-PCM output formats
119.It
120Handle unsolicited RIRB messages
121.It
122Modem function groups
123.El
124