HDA in theory (next)
High Definition Audio architecture introduces the notion of flow and channels in the organization of audio data. Flow is the logical connection established by a DMA channel between the system’s memory and codec. This flow includes one or several components, called data channels, which are sent to a converter to be processed. For example, a stereo flow includes two channels, a left and a right. Each flow sample is doubled to represent both stereo channels.
The samplings are gathered when located in the system´s memory or transferred and can be separated to be sent to two different converters.

The flow is determined by its direction, either in or out. The specificity of “out” flow is that it can be attributed to several numerical and analogical converters, for example, to be available both from the stereo and headphone output. An “in” flow, however, is only intended for one decoder. An HDA controller can simultaneously support up to 15 in- and out-flows and it’s possible to have up to 16 channels integrated to each flow. All channels included in one flow must have the same sampling rate and resolution. Two flows, however, can include and provide channels with different sampling rates and resolutions. This wasn’t possible with the AC97.
The HDA also introduced (and imposes) Jack Sensing and Jack Retasking technology. With Jack Sensing the controller identifies a mini-jack plug when inserted. The principle is simple. Each mini-jack input and output has a switch, which is open when empty and closed when a jack plug is inserted. The system tells the driver, which then asks the user which type of media has been connected to the audio chipset; speakers, headphone, recording source, microphone, etc.

Jack Retasking then comes into effect. This technology assigns various tasks to an input or output. So it’s possible to transform lines and micro inputs to additional outputs, for example, for a 7.1 system. Or you can plug in two microphones, one on the line input and one on the micro input, because all entries with HDA codecs can theoretically benefit from microphone pre-amplification. We will see later that this isn’t necessarily true and that some HDA systems restrict Jack Retasking capabilities to the front panel. These ports are generally meant for stereo output and line input, which can be configured according to your needs.
Do not mistake Jack Sensing and Universal Audio Jack, even if they are intimately related. The Universal Audio Jack is indeed a system, which allows the controller to automatically detect the type of media connected to all inputs and outputs. It requires that the media be compatible with the norm, which is seldom the case, except for some of the latest headphones. HDA specifications as communicated by Intel only indicate Jack Sensing and Jack Retasking and don’t mention automatic detections. That doesn’t mean that HDA chips are compatible with Universal Audio Jack like the Realtek ALC880. The Universal Audio Jack also involves each mini jack connection needing adequate characteristics to become an input or output and a necessary pre-amplification system to be changed into headphone output or microphone input.