STRUCT SOF_IPC4_DMA_CONFIG(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

โœจ 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 โ€” 1 if the host driver allocates DMA channels, 0 otherwise. lowkey a yes/no situation ๐Ÿ™ˆ
  • dma_channel_id โ€” for HDaudio this is defined as stream_id - 1. do the math, bestie ๐Ÿงฎ
  • stream_id โ€” HDaudio stream tag ๐Ÿท๏ธ
  • dma_stream_channel_map โ€” array of device/channel mappings. it's an array of struct 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