Namespaces

Enumerations

enum MsgTarget
Name Value
FW_GEN_MSG 0u
MODULE_MSG 1u

Common structures

Defined at line 31 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum MsgDir
Name Value
MSG_REQUEST 0u
MSG_NOTIFICATION 0u
MSG_REPLY 1u

Defined at line 36 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum GlobalType
Name Value
CREATE_PIPELINE 17u
SET_PIPELINE_STATE 19u
NOTIFICATION 27u

Global Message

Defined at line 44 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum ModuleMsgType
Name Value
INIT_INSTANCE 0u
MODULE_CONFIG_GET 1u
MODULE_CONFIG_SET 2u
LARGE_CONFIG_GET 3u
LARGE_CONFIG_SET 4u
BIND 5u
UNBIND 6u
SET_DX 7u
ENTER_MODULE_RESTORE 9u
EXIT_MODULE_RESTORE 10u
DELETE_INSTANCE 11u

Module Message

Defined at line 52 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum MsgStatus
Name Value
IPC_SUCCESS 0u
ERROR_INVALID_PARAM 1u
UNKNOWN_MESSAGE_TYPE 2u
OUT_OF_MEMORY 3u
BUSY 4u
FAILURE 6u
INVALID_REQUEST 7u
INVALID_RESOURCE_ID 9u
RESOURCE_ID_EXISTS 10u
INVALID_RESOURCE_STATE 12u
POWER_TRANSITION_FAILED 13u
INVALID_MANIFEST 14u
UNAVAILABLE 15u
LOAD_ADDRESS_OUT_OF_RANGE 42u
CSE_VALIDATION_FAILED 44u
MOD_MGMT_ERROR 100u
MOD_LOAD_CL_FAILED 101u
MOD_LOAD_INVALID_HASH 102u
MOD_INSTANCE_EXISTS 103u
MOD_NOT_INITIALIZED 104u
MOD_INVALID_ID 110u
MOD_INST_INVALID_ID 111u
QUEUE_INVALID_ID 112u
QUEUE_DST_INVALID_ID 113u
INVALID_CORE_ID 116u
INVALID_CONFIG_PARAM_ID 120u
INVALID_CONFIG_DATA_LEN 121u
INVALID_CONFIG_DATA_STRUCT 122u
GATEWAY_NOT_INITIALIZED 140u
GATEWAY_NOT_EXIST 141u
GATEWAY_STATE_NOT_SET 142u
SCLK_ALREADY_RUNNING 150u
MCLK_ALREADY_RUNNING 151u
NO_RUNNING_SCLK 152u
NO_RUNNING_MCLK 153u
CORE_INACTIVE 166u

Message Reply

Defined at line 68 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum NhltLinkType
Name Value
NHLT_LINK_TYPE_HDA 0
NHLT_LINK_TYPE_PDM 2
NHLT_LINK_TYPE_SSP 3

Defined at line 72 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/nhlt.h

enum NhltEndpointDirection
Name Value
NHLT_DIRECTION_RENDER 0
NHLT_DIRECTION_CAPTURE 1
NHLT_DIRECTION_BIDIR 2

Defined at line 78 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/nhlt.h

enum VRefEn
Name Value
HiZ 0u
P50 1u
Gnd 2u
P80 4u
P100 5u

VREF Enable definitions used in analog pin widget control

Defined at line 94 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/codec-commands.h

enum EPT
Name Value
Native 0u
HBR 3u

EncodedPacketType definitions used in digital pin widget control

Defined at line 103 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/codec-commands.h

enum NotificationType
Name Value
PHRASE_DETECTED 4u
RESOURCE_EVENT 5u
LOG_BUFFER_STATUS 6u
TIMESTAMP_CAPTURED 7u
FW_READY 8u
EXCEPTION_CAUGHT 10u

Notifications

Defined at line 121 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum ResourceType
Name Value
MODULE_INSTANCE 0u
PIPELINE 1u
GATEWAY 2u
EDF_TASK 3u

Defined at line 130 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum ResourceEventType
Name Value
BUDGET_VIOLATION 0u
MIXER_UNDERRUN_DETECTED 1u
STREAM_DATA_SEGMENT 2u
PROCESS_DATA_ERROR 3u
STACK_OVERFLOW 4u
BUFFERING_MODE_CHANGED 5u
GATEWAY_UNDERRUN_DETECTED 6u
EDF_DOMAIN_UNSTABLE 7u
WATCHDOG_EXPIRED 8u
GATEWAY_HIGH_THRES 10u
GATEWAY_LOW_THRES 11u

Defined at line 137 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum CodecParam
Name Value
VENDOR_ID 0x00
REVISION_ID 0x02
SUBORDINATE_NODE_COUNT 0x04
FUNCTION_GROUP_TYPE 0x05
AFG_CAPS 0x08
AW_CAPS 0x09
SUPPORTED_PCM_SIZE_RATE 0x0a
SUPPORTED_STREAM_FORMATS 0x0b
PIN_CAPS 0x0c
INPUT_AMP_CAPS 0x0d
OUTPUT_AMP_CAPS 0x12
CONNECTION_LIST_LEN 0x0e
SUPPORTED_PWR_STATES 0x0f
PROCESSING_CAPS 0x10
GPIO_COUNT 0x11
VOLUME_KNOB_CAPS 0x13

Defined at line 145 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/codec-commands.h

enum ProcDomain
Name Value
LOW_LATENCY 0u
DATA_PROCESSING 1u

Init Instance

Defined at line 160 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum SamplingFrequency
Name Value
FS_8000HZ 8000u
FS_11025HZ 11025u
FS_12000HZ 12000u
FS_16000HZ 16000u
FS_22050HZ 22050u
FS_24000HZ 24000u
FS_32000HZ 32000u
FS_44100HZ 44100u
FS_48000HZ 48000u
FS_64000HZ 64000u
FS_88200HZ 88200u
FS_96000HZ 96000u
FS_128000HZ 128000u
FS_176000HZ 176000u
FS_192000HZ 192000u

Defined at line 165 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum BitDepth
Name Value
DEPTH_8BIT 8u
DEPTH_16BIT 16u
DEPTH_24BIT 24u
DEPTH_32BIT 32u

Defined at line 183 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum ChannelIndex
Name Value
LEFT 0u
CENTER 1u
RIGHT 2u
LEFT_SURROUND 3u
CENTER_SURROUND 3u
RIGHT_SURROUND 4u
LEFT_SIDE 5u
RIGHT_SIDE 6u
LFE 7u
INVALID 0xF

Defined at line 190 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum ChannelConfig
Name Value
CONFIG_MONO 0u
CONFIG_STEREO 1u
CONFIG_2_POINT_1 2u
CONFIG_3_POINT_0 3u
CONFIG_3_POINT_1 4u
CONFIG_QUATRO 5u
CONFIG_4_POINT_0 6u
CONFIG_5_POINT_0 7u
CONFIG_5_POINT_1 8u
CONFIG_DUAL_MONO 9u
CONFIG_I2S_DUAL_STEREO_0 10u
CONFIG_I2S_DUAL_STEREO_1 11u

Defined at line 203 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum InterleavingStyle
Name Value
PER_CHANNEL 0
PER_SAMPLE 1

Defined at line 218 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum SampleType
Name Value
INT_MSB 0u
INT_LSB 1u
INT_SIGNED 2u
INT_UNSIGNED 3u
FLOAT 4u

Defined at line 223 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum PipelineState
Name Value
INVALID 0u
UNINITIALIZED 1u
RESET 2u
PAUSED 3u
RUNNING 4u
ERROR_STOP 5u
SAVED 6u
RESTORED 7u

Pipeline Management

Defined at line 273 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum BaseFWParamType
Name Value
ADSP_PROPERTIES 0u
ADSP_RESOURCE_STATE 1u
NOTIFICATION_MASK 3u
ASTATE_TABLE 4u
DMA_CONTROL 5u
ENABLE_LOGS 6u
FIRMWARE_CONFIG 7u
HARDWARE_CONFIG 8u
MODULES_INFO 9u
PIPELINE_LIST_INFO 10u
PIPELINE_PROPS 11u
SCHEDULERS_INFO 12u
GATEWAYS_INFO 13u
MEMORY_STATE_INFO 14u
POWER_STATE_INFO 15u
LIBRARIES_INFO 16u
PERF_MEASUREMENTS_STATE 17u
GLOBAL_PERF_DATA 18u
L2_CACHE_INFO 19u
SYSTEM_TIME 20u

Base FW Run-time Parameters

Defined at line 461 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum FirmwareConfigType
Name Value
FW_VERSION 0u
MEMORY_RECLAIMED 1u
SLOW_CLOCK_FREQ_HZ 2u
FAST_CLOCK_FREQ_HZ 3u
DMA_BUFFER_CONFIG 4u
ALH_SUPPORT_LEVEL 5u
IPC_DL_MAILBOX_BYTES 6u
IPC_UL_MAILBOX_BYTES 7u
TRACE_LOG_BYTES 8u
MAX_PPL_COUNT 9u
MAX_ASTATE_COUNT 10u
MAX_MODULE_PIN_COUNT 11u
MODULES_COUNT 12u
MAX_MOD_INST_COUNT 13u
MAX_LL_TASKS_PER_PRI_COUNT 14u
LL_PRI_COUNT 15u
MAX_DP_TASKS_COUNT 16u
MAX_LIBS_COUNT 17u
SCHEDULER_CONFIG 18u
XTAL_FREQ_HZ 19u

Defined at line 484 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

enum HardwareConfigType
Name Value
CAVS_VERSION 0u
DSP_CORES 1u
MEM_PAGE_BYTES 2u
TOTAL_PHYS_MEM_PAGES 3u
I2S_CAPS 4u
GPDMA_CAPS 5u
GATEWAY_COUNT 6u
HP_EBB_COUNT 7u
LP_EBB_COUNT 8u
EBB_SIZE_BYTES 9u

Defined at line 507 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/intel-audio-dsp-ipc.h

Records

Functions

  • zx::result<fbl::String> GetBoardName ()

    Get the name of the board we are running on, such as

    "Standard PC (Q35 + ICH9, 2009)" (qemu) or "Eve" (Pixelbook).

    Defined at line 15 of file ../../src/media/audio/drivers/intel-hda/test/board_name.cc

  • zx_status_t ProbeIntelHdaDevice (ZirconDevice * device, IntelHDADevice * result)

    Defined at line 15 of file ../../src/media/audio/bin/ihda/intel_hda_device.cc

  • zx_status_t WaitCondition (zx_duration_t timeout, zx_duration_t poll_interval, WaitConditionFn cond, Clock * clock)

    Defined at line 23 of file ../../src/media/audio/drivers/lib/intel-hda/utils/utils.cc

  • int main (int argc, const char ** argv)

    Defined at line 24 of file ../../src/media/audio/bin/ihda/ihda.cc

  • fbl::RefPtr<fzl::VmarManager> CreateDriverVmars ()

    Create a set of driver-wide VMARs that we stash all of our register

    mappings in, in order to make efficient use of kernel PTEs

    Defined at line 26 of file ../../src/media/audio/drivers/intel-hda/controller/utils.cc

  • zx::result<fbl::Vector<uint8_t>> ReadSpecificConfig (BinaryDecoder * decoder)

    Read a "specific config" NHLT section.

    This consists of a uint32_t |size| field, followed by |size| bytes of data.

    Defined at line 28 of file ../../src/media/audio/drivers/intel-hda/controller/nhlt.cc

  • template <typename E>
    typename std::underlying_type<E>::type to_underlying (E e)

    Defined at line 39 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/utils.h

  • template <typename T>
    zx_status_t ConvertHandle (zx::handle * abstract_handle, T * concrete_handle)

    Defined at line 58 of file ../../src/media/audio/drivers/lib/intel-hda/include/intel-hda/utils/utils.h

  • zx::result<EndPointConfig> ParseDescriptor (const nhlt_descriptor_t & header, cpp20::span<const uint8_t> additional_bytes)

    Parse a NHLT descriptor.

    This consists of:

    * A header of type nhlt_descriptor.

    * A specific config block.

    * A byte specifying the number of formats.

    * N format blocks.

    Defined at line 67 of file ../../src/media/audio/drivers/intel-hda/controller/nhlt.cc

  • void print_codec_state (const CodecState & codec)

    Defined at line 789 of file ../../src/media/audio/bin/ihda/print_codec_state.cc

  • zx_status_t GetNhltBlob (const Nhlt & nhlt, uint8_t bus_id, uint8_t direction, uint8_t type, const AudioDataFormat & format, const void ** out_blob, size_t * out_size)

    Defined at line 155 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<std::vector<uint8_t>> GetModuleConfig (const Nhlt & nhlt, uint8_t i2s_instance_id, uint8_t direction, uint8_t type, const CopierCfg & base_cfg)

    Defined at line 175 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • CopierCfg CreateGatewayCopierCfg (const AudioDataFormat & input, const AudioDataFormat & output, uint32_t gateway_node_id)

    Defined at line 129 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • SystemAudioDevices GetSystemAudioDevices ()

    Get the audio devices present in the system.

    Defined at line 81 of file ../../src/media/audio/drivers/intel-hda/test/audio_test_tools.cc

  • zx_obj_type_t GetHandleType (const zx::handle & handle)

    Defined at line 100 of file ../../src/media/audio/drivers/lib/intel-hda/utils/utils.cc

  • std::unique_ptr<audio::utils::AudioOutput> CreateAndOpenOutputStream (const char * device)

    Create and open an input/output audio device at |device|.

    Return nullptr on error.

    Defined at line 120 of file ../../src/media/audio/drivers/intel-hda/test/audio_test_tools.cc

  • std::unique_ptr<audio::utils::AudioInput> CreateAndOpenInputStream (const char * device)

    Defined at line 124 of file ../../src/media/audio/drivers/intel-hda/test/audio_test_tools.cc

  • zx::result<fbl::String> GetStreamConfigString (audio::utils::AudioDeviceStream * stream, audio_stream_string_id_t id)

    Fetch the string |id| from the given audio stream / device node.

    Defined at line 100 of file ../../src/media/audio/drivers/intel-hda/test/audio_test_tools.cc

  • std::unique_ptr<DspChannel> CreateHardwareDspChannel (fbl::String log_prefix, MMIO_PTR adsp_registers_t * regs, std::optional<std::function<void (NotificationType)>> notification_callback, zx::duration hardware_timeout)

    Create a new DspChannel backed by real hardware.

    Defined at line 390 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-ipc.cc

  • zx_status_t MakeFormatRangeList (const SampleCaps & sample_caps, uint32_t max_channels, fbl::Vector<audio_stream_format_range_t> * ranges)

    Generate a vector of audio stream format ranges given the supplied sample

    capabilities and max channels.

    Defined at line 112 of file ../../src/media/audio/drivers/lib/intel-hda/utils/utils.cc

  • zx_status_t MakeNewSampleCaps (const SampleCaps & old_sample_caps, const edid::ShortAudioDescriptor[] sad_list, const size_t sad_count, SampleCaps & new_sample_caps)

    Generates new SampleCaps by performing a logical "and" based on an exisiting SampleCaps and

    and ranges.

    Defined at line 225 of file ../../src/media/audio/drivers/lib/intel-hda/utils/utils.cc

  • zx::result<DspPipelineId> CreateSimplePipeline (DspModuleController * controller, std::initializer_list<DspModule> modules)

    Construct a simple pipeline, consisting of a series of modules in

    a straight line:

    A --> B --> C --> D

    Modules should be listed in source to sink order. Each module will be

    joined to the previous module, connecting output pin 0 to input pin 0.

    Defined at line 243 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-modules.cc

  • zx::result<std::map<fbl::String, std::unique_ptr<ModuleEntry>>> ParseModules (cpp20::span<const uint8_t> data)

    Exposed for testing.

    Defined at line 68 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-modules.cc

  • bool operator== (const HdaVersion & left, const HdaVersion & right)

    Defined at line 88 of file ../../src/media/audio/drivers/intel-hda/controller/intel-hda-controller.h

  • bool operator!= (const HdaVersion & left, const HdaVersion & right)

    Defined at line 91 of file ../../src/media/audio/drivers/intel-hda/controller/intel-hda-controller.h

  • bool IsIntelHdaDevicePresent ()

    Defined at line 95 of file ../../src/media/audio/drivers/intel-hda/test/audio_test_tools.cc

  • uint32_t AudioBytesPerSec (const AudioDataFormat & format)

    Defined at line 107 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • CopierCfg CreateCopierCfg (AudioDataFormat input, AudioDataFormat output)

    Defined at line 112 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • std::vector<uint8_t> RawBytesOf (const uint8_t * object, size_t size)

    Copy the given ranges of bytes into a new std::vector

    <uint8

    _t>.

    Defined at line 142 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • template <size_t BufferSize>
    fbl::String ParseUnpaddedString (const char (&)[BufferSize] s)

    Parse a string in an array, where the string may either:

    * Be NUL terminated; or

    * Take up all the elements of the array, and have no NUL termination.

    Defined at line 148 of file ../../src/media/audio/drivers/intel-hda/controller/binary_decoder.h

  • template <typename T>
    std::vector<uint8_t> RawBytesOf (const T * object)

    Copy the underlying bytes of the given object to a new std::vector

    <uint8

    _t>.

    Defined at line 151 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • template <size_t BufferSize>
    fbl::String ParseUnpaddedString (const uint8_t (&)[BufferSize] s)

    Defined at line 152 of file ../../src/media/audio/drivers/intel-hda/controller/binary_decoder.h

  • zx::result<DspPipelineId> ConnectHostToI2S (const Nhlt & nhlt, DspModuleController * controller, uint16_t copier_module_id, uint32_t host_gateway_id, uint32_t i2s_gateway_id, uint8_t i2s_bus, const AudioDataFormat & i2s_format)

    Create a pieline transferring data from the host to an I2S bus.

    The I2S device must be present in the given NHLT table.

    Defined at line 219 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<DspPipelineId> ConnectI2SToHost (const Nhlt & nhlt, DspModuleController * controller, uint16_t copier_module_id, uint32_t i2s_gateway_id, uint8_t i2s_bus, uint32_t host_gateway_id, const AudioDataFormat & i2s_format)

    Create a pieline transferring data from the I2S bus to the host.

    The I2S device must be present in the given NHLT table.

    Defined at line 243 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<uint16_t> GetModuleId (DspModuleController * controller, const char * name)

    Get the module ID corresponding of the given module name.

    Defined at line 264 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<std::vector<DspStream>> SetUpPixelbookEvePipelines (const Nhlt & nhlt, DspModuleController * controller)

    Defined at line 297 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<DspPipelineId> ConnectAtlasDmicToHost (const Nhlt & nhlt, DspModuleController * controller, uint16_t copier_module_id, uint32_t host_gateway_id, uint32_t dmic_gateway_id, uint8_t dmic_bus)

    Defined at line 392 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc

  • zx::result<std::vector<DspStream>> SetUpPixelbookAtlasPipelines (const Nhlt & nhltDspModuleController * controller)

    Defined at line 414 of file ../../src/media/audio/drivers/intel-hda/controller/intel-dsp-topology.cc