sound/soc/sof/ipc4-topology.h
Source file repositories/reference/linux-study-clean/sound/soc/sof/ipc4-topology.h
File Facts
- System
- Linux kernel
- Corpus path
sound/soc/sof/ipc4-topology.h- Extension
.h- Size
- 16824 bytes
- Lines
- 538
- Domain
- Driver Families
- Bucket
- sound/soc
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
sound/sof/ipc4/header.h
Detected Declarations
struct sof_ipc4_copier_config_set_sink_formatstruct sof_ipc4_pipelinestruct ipc4_pipeline_set_state_datastruct sof_ipc4_pin_formatstruct sof_ipc4_available_audio_formatstruct sof_copier_gateway_cfgstruct sof_ipc4_copier_datastruct sof_ipc4_gtw_attributesstruct sof_ipc4_dma_device_stream_ch_mapstruct sof_ipc4_dma_stream_ch_mapstruct sof_ipc4_dma_configstruct sof_ipc4_dma_config_tlvstruct sof_ipc4_alh_configuration_blobstruct sof_ipc4_copierstruct sof_ipc4_ctrl_value_chanstruct sof_ipc4_control_datastruct sof_ipc4_control_msg_payloadstruct sof_ipc4_gain_paramsstruct sof_ipc4_gain_datastruct sof_ipc4_gainstruct sof_ipc4_mixerstruct sof_ipc4_src_datastruct sof_ipc4_srcstruct sof_ipc4_asrc_datastruct sof_ipc4_asrcstruct sof_ipc4_base_module_cfg_extstruct sof_ipc4_processenum sof_ipc4_copier_module_config_paramsenum sof_comp_domain
Annotated Snippet
struct sof_ipc4_copier_config_set_sink_format {
/* Id of sink */
u32 sink_id;
/*
* Input format used by the source
* attention must be the same as present if already initialized.
*/
struct sof_ipc4_audio_format source_fmt;
/* Output format used by the sink */
struct sof_ipc4_audio_format sink_fmt;
} __packed __aligned(4);
/**
* struct sof_ipc4_pipeline - pipeline config data
* @priority: Priority of this pipeline
* @lp_mode: Low power mode
* @mem_usage: Memory usage
* @core_id: Target core for the pipeline
* @state: Pipeline state
* @use_chain_dma: flag to indicate if the firmware shall use chained DMA
* @msg: message structure for pipeline
* @skip_during_fe_trigger: skip triggering this pipeline during the FE DAI trigger
* @direction_valid: flag indicating if valid direction is set in topology
* @direction: pipeline direction set in topology if direction_valid is true
*/
struct sof_ipc4_pipeline {
uint32_t priority;
uint32_t lp_mode;
uint32_t mem_usage;
uint32_t core_id;
int state;
bool use_chain_dma;
struct sof_ipc4_msg msg;
bool skip_during_fe_trigger;
bool direction_valid;
u32 direction;
};
/**
* struct sof_ipc4_multi_pipeline_data - multi pipeline trigger IPC data
* @count: Number of pipelines to be triggered
* @pipeline_instance_ids: Flexible array of IDs of the pipelines to be triggered
*/
struct ipc4_pipeline_set_state_data {
u32 count;
DECLARE_FLEX_ARRAY(u32, pipeline_instance_ids);
} __packed;
/**
* struct sof_ipc4_pin_format - Module pin format
* @pin_index: pin index
* @buffer_size: buffer size in bytes
* @audio_fmt: audio format for the pin
*
* This structure can be used for both output or input pins and the pin_index is relative to the
* pin type i.e output/input pin
*/
struct sof_ipc4_pin_format {
u32 pin_index;
u32 buffer_size;
struct sof_ipc4_audio_format audio_fmt;
};
/**
* struct sof_ipc4_available_audio_format - Available audio formats
* @output_pin_fmts: Available output pin formats
* @input_pin_fmts: Available input pin formats
* @num_input_formats: Number of input pin formats
* @num_output_formats: Number of output pin formats
*/
struct sof_ipc4_available_audio_format {
struct sof_ipc4_pin_format *output_pin_fmts;
struct sof_ipc4_pin_format *input_pin_fmts;
u32 num_input_formats;
u32 num_output_formats;
};
/**
* struct sof_copier_gateway_cfg - IPC gateway configuration
* @node_id: ID of Gateway Node
* @dma_buffer_size: Preferred Gateway DMA buffer size (in bytes)
* @config_length: Length of gateway node configuration blob specified in #config_data
* config_data: Gateway node configuration blob
*/
struct sof_copier_gateway_cfg {
uint32_t node_id;
uint32_t dma_buffer_size;
uint32_t config_length;
uint32_t config_data[];
};
Annotation
- Immediate include surface: `sound/sof/ipc4/header.h`.
- Detected declarations: `struct sof_ipc4_copier_config_set_sink_format`, `struct sof_ipc4_pipeline`, `struct ipc4_pipeline_set_state_data`, `struct sof_ipc4_pin_format`, `struct sof_ipc4_available_audio_format`, `struct sof_copier_gateway_cfg`, `struct sof_ipc4_copier_data`, `struct sof_ipc4_gtw_attributes`, `struct sof_ipc4_dma_device_stream_ch_map`, `struct sof_ipc4_dma_stream_ch_map`.
- Atlas domain: Driver Families / sound/soc.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.