STRUCT SOF_IPC4_PIPELINE_REGISTERS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct sof_ipc4_pipeline_registers β€” Kernel API Manual ✨

okay bestie so this is a page straight out of the Kernel API Manual, and it's literally all about one little struct: struct sof_ipc4_pipeline_registers, which is the whole "where did my pipeline start and where did it end" situation, but in firmware πŸŽ€


🌸 NAME 🌸

struct sof_ipc4_pipeline_registers β€” Pipeline start and end information in fw πŸ’«


✨ SYNOPSIS ✨

struct sof_ipc4_pipeline_registers {
    u64 stream_start_offset;
    u64 stream_end_offset;
 };

that's it, that's the whole vibe. two u64s and a dream πŸ¦‹


πŸ‘‘ Members πŸ‘‘

πŸ“ stream_start_offset

Stream start offset (LPIB) β€” and it's reported by the mixin module that's allocated on the pipeline attached to the Host Output Gateway, at the moment the first data is being mixed into the mixout module. cute right? πŸ’–

but listen β€” when no data is being mixed (like, right after creation or after a reset), the value it reports is "(u64)-1". so if you see that, don't panic, it's not a real offset, it's the "nothing's happening yet" number πŸ™ˆ

🧚 stream_end_offset

Stream end offset (LPIB) too β€” also reported by that mixin module allocated on the pipeline attached to the Host Output Gateway, but this time during the transition from RUNNING to PAUSED πŸ”₯

and here's the tea: when data is not mixed (right after creation or after a reset), the value reported is "(u64)-1". but the first time data is mixed, then the value reported is "0". yes bestie, 0. not -1. the way this struct just switches up on you 😭


πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./sound/soc/sof/ipc4-fw-reg.h
  • struct sof_ipc4_peak_volume_regs(9)
  • struct sof_ipc4_llp_reading(9)
  • struct sof_ipc4_llp_reading_slot(9)
  • struct sof_ipc4_fw_registers(9)

like, go read those too if you want the full lore iykyk πŸ’œ


and that's the page! sourced from ./sound/soc/sof, dated October 2026 β€” periodt, slay, go read your kernel headers 🫢🌈⭐

πŸ“¦ where this page comes from