Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

HDAUDIO(4)                   Device Drivers Manual                  HDAUDIO(4)

     hdaudio - High Definition Audio device driver

     hdaudio* at pci? dev ? function ?
     hdafg* at hdaudiobus?
     audio* at audiobus?

     options HDAUDIO_DEBUG
     options HDAFG_DEBUG

     The hdaudio device driver is expected to support any PCI device which is
     compliant to the High Definition Audio Specification 1.0.  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.  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.

     In addition to many on-board sound cards included in mainboards, the
     following add-on card is supported:

     TerraTec Aureon 7.1 PCIe

     audio(4), mixer(4), pci(4), hdaudioctl(8),

     Intel High Definition Audio:

     Audio Device Technologies for Windows:

     The hdaudio device driver appeared in NetBSD 5.1.

     The hdaudio driver was written by Jared McNeill <jmcneill@NetBSD.org>
     under contract by Precedence Technologies Ltd.:
     http://www.precedence.co.uk/ The UAA-compliant widget parser is derived
     from the FreeBSD snd_hda(4) driver.

     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

        24-bit and 20-bit hardware formats cannot yet be used.  Since the
         machine-independent audio layer converts all input from userland and
         the hardware layer to 16-bit precision for processing, there would
         currently be no advantage in using them.

NetBSD 9.99                     March 21, 2022                     NetBSD 9.99