Sound Open Firmware
Loading...
Searching...
No Matches
IPC4 Pipeline Lifecycle & State Machine

Pipeline creation, priority assignments, state machine transitions (RESET, PAUSED, RUNNING, EOS), multi-pipeline synchronization, and save/restore. More...

Collaboration diagram for IPC4 Pipeline Lifecycle & State Machine:

Files

file  pipeline.h
 IPC4 pipeline creation, states, priorities, and management commands.
 

Data Structures

struct  ipc4_pipeline_ext_object
 Header for extended pipeline initialization objects. More...
 
struct  ipc4_pipeline_ext_obj_mem_data
 Memory allocation parameters for pipeline execution context. More...
 
struct  ipc4_pipeline_ext_payload
 Container for extended pipeline creation payload. More...
 
struct  ipc4_pipeline_create
 Pipeline creation command structure (SOF_IPC4_GLB_CREATE_PIPELINE). More...
 
struct  ipc4_pipeline_delete
 Pipeline deletion command structure (SOF_IPC4_GLB_DELETE_PIPELINE). More...
 
struct  ipc4_pipeline_set_state_data
 Payload array containing pipeline IDs for multi-pipeline state transitions. More...
 
struct  ipc4_pipeline_set_state
 Pipeline state transition command structure (SOF_IPC4_GLB_SET_PIPELINE_STATE). More...
 
struct  ipc4_pipeline_set_state_reply
 Reply structure for pipeline state transition. More...
 
struct  ipc4_pipeline_get_state
 Query pipeline current state command (SOF_IPC4_GLB_GET_PIPELINE_STATE). More...
 
struct  ipc4_pipeline_get_state_reply
 Reply structure containing pipeline current operational state. More...
 
struct  ipc4_pipeline_get_context_size
 Query memory context size required to serialize pipeline (SOF_IPC4_GLB_GET_PIPELINE_CONTEXT_SIZE). More...
 
struct  ipc4_pipeline_get_context_size_reply
 Reply structure for pipeline context size query. More...
 
struct  ipc4_chain_dma
 Direct DMA Chaining configuration command (SOF_IPC4_GLB_CHAIN_DMA). More...
 

Enumerations

enum  ipc4_pipeline_priority {
  SOF_IPC4_PIPELINE_PRIORITY_0 = 0 , SOF_IPC4_PIPELINE_PRIORITY_1 , SOF_IPC4_PIPELINE_PRIORITY_2 , SOF_IPC4_PIPELINE_PRIORITY_3 ,
  SOF_IPC4_PIPELINE_PRIORITY_4 , SOF_IPC4_PIPELINE_PRIORITY_5 , SOF_IPC4_PIPELINE_PRIORITY_6 , SOF_IPC4_PIPELINE_PRIORITY_7 ,
  SOF_IPC4_MAX_PIPELINE_PRIORITY = SOF_IPC4_PIPELINE_PRIORITY_7
}
 Pipeline execution scheduling priority levels. More...
 
enum  ipc4_pipeline_state {
  SOF_IPC4_PIPELINE_STATE_INVALID = 0 , SOF_IPC4_PIPELINE_STATE_UNINITIALIZED = 1 , SOF_IPC4_PIPELINE_STATE_RESET = 2 , SOF_IPC4_PIPELINE_STATE_PAUSED = 3 ,
  SOF_IPC4_PIPELINE_STATE_RUNNING = 4 , SOF_IPC4_PIPELINE_STATE_EOS = 5 , SOF_IPC4_PIPELINE_STATE_ERROR_STOP , SOF_IPC4_PIPELINE_STATE_SAVED
}
 Pipeline operational state machine values. More...
 
enum  ipc4_pipeline_ext_obj_id { IPC4_GLB_PIPE_EXT_OBJ_ID_INVALID = 0 , IPC4_GLB_PIPE_EXT_OBJ_ID_MEM_DATA = 1 , IPC4_GLB_PIPE_EXT_OBJ_ID_MAX = IPC4_GLB_PIPE_EXT_OBJ_ID_MEM_DATA }
 Extended pipeline object type identifiers. More...
 

Detailed Description

Pipeline creation, priority assignments, state machine transitions (RESET, PAUSED, RUNNING, EOS), multi-pipeline synchronization, and save/restore.

Enumeration Type Documentation

◆ ipc4_pipeline_ext_obj_id

Extended pipeline object type identifiers.

Enumerator
IPC4_GLB_PIPE_EXT_OBJ_ID_INVALID 

Invalid extension object identifier.

IPC4_GLB_PIPE_EXT_OBJ_ID_MEM_DATA 

Pipeline memory stack/heap allocation parameters.

IPC4_GLB_PIPE_EXT_OBJ_ID_MAX 

Maximum extension object ID.

◆ ipc4_pipeline_priority

Pipeline execution scheduling priority levels.

Enumerator
SOF_IPC4_PIPELINE_PRIORITY_0 

Priority level 0 (highest priority, scheduled first).

SOF_IPC4_PIPELINE_PRIORITY_1 

Priority level 1.

SOF_IPC4_PIPELINE_PRIORITY_2 

Priority level 2.

SOF_IPC4_PIPELINE_PRIORITY_3 

Priority level 3.

SOF_IPC4_PIPELINE_PRIORITY_4 

Priority level 4.

SOF_IPC4_PIPELINE_PRIORITY_5 

Priority level 5.

SOF_IPC4_PIPELINE_PRIORITY_6 

Priority level 6.

SOF_IPC4_PIPELINE_PRIORITY_7 

Priority level 7 (lowest priority).

SOF_IPC4_MAX_PIPELINE_PRIORITY 

Maximum valid priority level.

◆ ipc4_pipeline_state

Pipeline operational state machine values.

Enumerator
SOF_IPC4_PIPELINE_STATE_INVALID 

Invalid or uninitialized pipeline state.

SOF_IPC4_PIPELINE_STATE_UNINITIALIZED 

Created but module initialization is incomplete.

SOF_IPC4_PIPELINE_STATE_RESET 

Reset state: buffers cleared, hardware inactive.

SOF_IPC4_PIPELINE_STATE_PAUSED 

Paused state: buffers pre-allocated, clocks armed.

SOF_IPC4_PIPELINE_STATE_RUNNING 

Running state: audio streaming actively scheduled.

SOF_IPC4_PIPELINE_STATE_EOS 

End Of Stream (EOS): draining final buffered audio.

SOF_IPC4_PIPELINE_STATE_ERROR_STOP 

Pipeline halted due to unrecoverable DSP error.

SOF_IPC4_PIPELINE_STATE_SAVED 

Pipeline context serialized to host memory for D3.