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