STRUCT VENC_VPU_IPI_MSG_INIT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… STRUCT VENC_VPU_IPI_MSG_INIT(9) β€” the kernel API manual, bestie edition

okay so bestie, welcome to the kernel API manual for struct venc_vpu_ipi_msg_init, aka the VPU ack AP init cmd structure. yes that's a mouthful, yes it's iconic, and yes we're gonna get through it together 🫢


✨ NAME ✨

struct venc_vpu_ipi_msg_init β€” the VPU ack AP init cmd structure. that's it, that's the whole vibe. it's the little struct that says "hey AP, i got ur init cmd" πŸ’Œ


🌸 SYNOPSIS 🌸

like, here's literally exactly what it looks like, no cap, character for character:

struct venc_vpu_ipi_msg_init {
    uint32_t msg_id;
    uint32_t status;
    uint64_t venc_inst;
    uint32_t vpu_inst_addr;
    uint32_t venc_abi_version;
 };

look at her. five fields. main character energy all the way through πŸ‘‘


πŸŽ€ Members πŸŽ€

bestie these are the fields, and i'm gonna walk u through every single one because none of them are getting skipped, periodt:

  • msg_id β€” the message id, and the one it uses is VPU_IPIMSG_XXX_ENC_SET_PARAM_DONE. it's giving "i'm a message and i have an id" πŸ’…
  • status β€” the cmd status. type is venc_ipi_msg_status. this is where the vibe check result lives ✨
  • venc_inst β€” the AP encoder instance, typed as struct venc_vp8_inst/venc_h264_inst *. yes both, don't @ me, that's what it says πŸ¦‹
  • vpu_inst_addr β€” the VPU encoder instance addr, typed as struct venc_vp8_vsi/venc_h264_vsi *. again, both. we love a flexible queen 🌸
  • venc_abi_version β€” the ABI version of the firmware. the kernel can use it to make sure it's compatible with the firmware, which is honestly so considerate of it πŸ₯Ί
⚠️ okay important caveat bestie, don't skip this one: for MT8173 the value of this field is undefined and should not be used. like fr fr, don't touch it, it's not giving what you think it's giving πŸ’€

🌈 SEE ALSO 🌈

the kernel file this lives in is literally:

./drivers/media/platform/mediatek/vcodec/encoder/venc_ipi_msg.h

and here's the whole friend group, every single one of them, no one left behind 🫢:

  • struct venc_ap_ipi_msg_init(9)
  • struct venc_ap_ipi_msg_set_param(9)
  • struct venc_ap_ipi_msg_enc(9)
  • struct venc_ap_ipi_msg_enc_ext(9)
  • struct venc_ap_ipi_msg_enc_ext_34(9)
  • struct venc_ap_ipi_msg_deinit(9)
  • struct venc_vpu_ipi_msg_common(9)
  • struct venc_vpu_ipi_msg_set_param(9)
  • enum venc_ipi_msg_enc_state(9)
  • struct venc_vpu_ipi_msg_enc(9)
  • struct venc_vpu_ipi_msg_deinit(9)

and that's the whole page babes πŸ’– before u go, tiny lil sign-off: this one came from ./drivers/media/platform/media..., it's dated October 2026, and it's filed under struct venc_...ipi_msg_init(9). slay, ate, no crumbs. go read ur kernel headers bestie πŸ‘‘βœ¨

πŸ“¦ where this page comes from