xref: /netbsd-src/share/man/man4/hdaudio.4 (revision c2f76ff004a2cb67efe5b12d97bd3ef7fe89e18d)
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