STRUCT SOF_IPC4_DMA_CONFIG(9)
โจ struct sof_ipc4_dma_config(9) โจ
okay bestie, gather round ๐ this is the struct sof_ipc4_dma_config page from the Kernel API Manual โ it's the DMA configuration struct, and honestly it's giving "small but mighty." Let's get into it ๐
๐ธ NAME ๐ธ
struct sof_ipc4_dma_config โ DMA configuration, no cap. that's literally the whole job ๐
๐ฆ SYNOPSIS ๐ฆ
struct sof_ipc4_dma_config {
uint8_t dma_method;
uint8_t pre_allocated_by_host;
uint32_t dma_channel_id;
uint32_t stream_id;
struct sof_ipc4_dma_stream_ch_map dma_stream_channel_map;
uint32_t dma_priv_config_size;
uint8_t dma_priv_config[];
};
look at that layout, it's iconic ๐ซถ every field exactly where it belongs.
๐ Members ๐
the vibe check on every single field, one by one โจ
dma_methodโ HDAudio or GPDMA. pick your fighter ๐ that's the DMA method, fr.pre_allocated_by_hostโ1if the host driver allocates DMA channels,0otherwise. lowkey a yes/no situation ๐dma_channel_idโ for HDaudio this is defined asstream_id - 1. do the math, bestie ๐งฎstream_idโ HDaudio stream tag ๐ท๏ธdma_stream_channel_mapโ array of device/channel mappings. it's an array ofstruct sof_ipc4_dma_stream_ch_map, and it's carrying the whole mapping situation on its back ๐ชdma_priv_config_sizeโ currently not used. not me showing up to the group chat just to say nothing ๐ญdma_priv_configโ currently not used either. matching energy, honestly ๐
ngl, two whole fields sitting there "currently not used" โ they're just vibing, pre-allocated by the compiler. don't count on them for anything, that's the whole tea ๐
๐ฅ SEE ALSO ๐ฅ
if you're going down this rabbit hole (and you are, i can tell ๐), the Kernel file lives at ./sound/soc/sof/ipc4-topology.h, and it's surrounded by absolute icons:
struct sof_ipc4_pipeline(9)struct ipc4_pipeline_set_state_data(9)struct sof_ipc4_pin_format(9)struct sof_ipc4_available_audio_format(9)struct sof_copier_gateway_cfg(9)struct sof_ipc4_copier_data(9)struct sof_ipc4_gtw_attributes(9)struct sof_ipc4_dma_device_stream_ch_map(9)struct sof_ipc4_dma_stream_ch_map(9)struct sof_ipc4_dma_config_tlv(9)struct sof_ipc4_copier(9)struct sof_ipc4_ctrl_value_chan(9)struct sof_ipc4_control_data(9)struct sof_ipc4_control_msg_payload(9)struct sof_ipc4_gain_params(9)struct sof_ipc4_gain_data(9)struct sof_ipc4_gain(9)struct sof_ipc4_mixer(9)struct sof_ipc4_src(9)struct sof_ipc4_asrc(9)struct sof_ipc4_base_module_cfg_ext(9)struct sof_ipc4_process(9)
that's the full roster, main character energy all around ๐
and that's the page, bestie!! ๐ง from ./sound/soc/sof, dated October 2026 โ go forth and configure your DMA, you're gonna slay ๐โจ
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms