Manual browser: hdaudio(4)
|HDAUDIO(4)||Kernel Interfaces Manual||HDAUDIO(4)|
NAMEhdaudio — High Definition Audio device driver
SYNOPSIShdaudio* at pci? dev ? function ?
hdafg* at hdaudiobus?
audio* at audiobus?
DESCRIPTIONThe 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.
HARDWAREIn addition to many on-board sound cards included in mainboards, the following add-on card is supported:
- TerraTec Aureon 7.1 PCIe
SEE ALSOaudio(4), mixer(4), pci(4), hdaudioctl(8),
HISTORYThe hdaudio device driver appeared in NetBSD 5.1.
AUTHORSThe hdaudio driver was written by <jmcneill@NetBSD.org> under contract by Precedence Technologies Ltd. The UAA-compliant widget parser is derived from the FreeBSD snd_hda(4) driver.
BUGSThe 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
|May 10, 2013||NetBSD 7.0|