NAME
hdaudio —
High Definition Audio device
driver
SYNOPSIS
hdaudio* at pci? dev ? function ?
hdafg* at hdaudiobus?
audio* at audiobus?
options HDAUDIOVERBOSE
options HDAUDIO_DEBUG
options HDAFG_DEBUG
DESCRIPTION
The
hdaudio device driver is expected to support any PCI
device which is compliant to the High Definition Audio Specification 1.0. It
is a replacement for
azalia(4).
It was written from scratch following the Intel HD Audio and Microsoft
Universal Audio Architecture specifications.
The driver consists of two interlinked components, which reflects the hardware
design. The
hdaudio component interfaces with a PCI/PCIe bus
and provides an
hdaudiobus(4) onto which
different function groups attach. Each function group (e.g. audio,
vendor-specific modem) is exported as a separate child device of the
hdaudio controller. Audio function groups (a.k.a. audio
codec) are exported as
hdafg(4)
devices.
Audio codecs are available from a number of manufacturers and are made up of a
number of widgets (e.g. audio mixer, output pin, analog-to-digital converter).
The way the widgets are interlinked varies significantly between
implementations. The tree of widgets must be parsed and mapped to
mixer(4) controls. As part of
this process, loops in the inter-codec links must be detected and muted,
bi-directional pins must be set up appropriately and the locations of pins
determined. Unlike the
azalia(4)
driver (which tends to generate a large number of unclearly named
mixer(4) controls),
hdaudio works backwards by starting with a list of desired,
consistent and compatible
mixer(4) controls and
configuring/discovering appropriate widget link routes to fit.
By following the published mechanisms for common implementations of widget
parsing, it is expected that nearly all High Definition Audio devices will be
supported without requiring per-device quirks.
HARDWARE
In addition to many on-board sound cards included in mainboards, the following
add-on card is supported:
-
-
- TerraTec Aureon 7.1 PCIe
-
SEE ALSO
audio(4),
mixer(4),
pci(4),
hdaudioctl(8),
Intel High
Definition Audio
Audio Device
Technologies for Windows
HISTORY
The
hdaudio device driver appeared in
NetBSD
5.1.
AUTHORS
The
hdaudio driver was written by
Jared
McNeill
<
jmcneill@NetBSD.org>
under contract by
Precedence
Technologies Ltd. The UAA-compliant widget parser is derived from the
FreeBSD snd_hda(4) driver.
BUGS
The following items are not yet implemented:
- Improve power management support when driver is
idle
- Add support for non-PCM output formats
- Handle unsolicited RIRB messages
- Modem function groups