STRUCT IRIS_INST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, this is struct iris_inst(9), and it comes from the Kernel API Manual. its whole deal is holding per video instance parameters β€” literally the per-instance main character energy for this video session. πŸŽ€βœ¨

✨ SYNOPSIS ✨

struct iris_inst {
    struct list_head                list;
    struct iris_core                *core;
    u32 session_id;
    const struct iris_hfi_session_ops       *hfi_session_ops;
    struct mutex                    ctx_q_lock;
    struct mutex                    lock;
    struct v4l2_fh                  fh;
    struct v4l2_format              *fmt_src;
    struct v4l2_format              *fmt_dst;
    struct v4l2_ctrl_handler        ctrl_handler;
    enum domain_type                domain;
    struct iris_hfi_rect_desc       crop;
    struct iris_hfi_rect_desc       compose;
    struct completion               completion;
    struct completion               flush_completion;
    u32 flush_responses_pending;
    struct platform_inst_fw_cap     fw_caps[INST_FW_CAP_MAX];
    struct iris_buffers             buffers[BUF_TYPE_MAX];
    u32 fw_min_count;
    enum iris_inst_state            state;
    enum iris_inst_sub_state        sub_state;
    bool once_per_session_set;
    size_t max_input_data_size;
    struct iris_inst_power          power;
    struct icc_vote_data            icc_data;
    struct v4l2_m2m_dev             *m2m_dev;
    struct v4l2_m2m_ctx             *m2m_ctx;
    u32 sequence_cap;
    u32 sequence_out;
    struct iris_ts_metadata         tss[VIDEO_MAX_FRAME];
    u32 metadata_idx;
    u32 codec;
    bool last_buffer_dequeued;
    u64 last_buf_ns;
    u32 frame_counter;
    u32 frame_rate;
    u32 operating_rate;
    u32 hfi_rc_type;
    u32 enc_raw_width;
    u32 enc_raw_height;
    u32 enc_scale_width;
    u32 enc_scale_height;
    u32 hfi_layer_type;
    u32 hfi_layer_count;
};
lowkey important: this is the struct layout, so every field below is part of the vibe. no skipping, no cap. πŸ’…

🫢 Members 🫢

here's the full member-by-member breakdown in original order. yes bestie, every single field. hydrate before reading. πŸ“

  • list β€” used to attach an instance to the core. the linkage field, periodt.
  • core β€” pointer to core structure.
  • session_id β€” id of current video session.
  • hfi_session_ops β€” iris HFI session ops.
  • ctx_q_lock β€” lock to serialize queues related ioctls.
  • lock β€” lock to serialize forward and reverse threads.
  • fh β€” reference of v4l2 file handler.
  • fmt_src β€” structure of v4l2_format for source.
  • fmt_dst β€” structure of v4l2_format for destination.
  • ctrl_handler β€” reference of v4l2 ctrl handler.
  • domain β€” domain type: encoder or decoder.
  • crop β€” structure of crop info.
  • compose β€” structure of compose info.
  • completion β€” structure of signal completions.
  • flush_completion β€” structure of signal completions for flush cmd.
  • flush_responses_pending β€” counter to track number of pending flush responses.
  • fw_caps β€” array of supported instance firmware capabilities.
  • buffers β€” array of different iris buffers.
  • fw_min_count β€” minimum count of buffers needed by fw.
  • state β€” instance state.
  • sub_state β€” instance sub state.
  • once_per_session_set β€” boolean to set once per session property.
  • max_input_data_size β€” max size of input data.
  • power β€” structure of power info.
  • icc_data β€” structure of interconnect data.
  • m2m_dev β€” a reference to m2m device structure.
  • m2m_ctx β€” a reference to m2m context structure.
  • sequence_cap β€” a sequence counter for capture queue.
  • sequence_out β€” a sequence counter for output queue.
  • tss β€” timestamp metadata.
  • metadata_idx β€” index for metadata buffer.
  • codec β€” codec type.
  • last_buffer_dequeued β€” a flag to indicate that last buffer is sent by driver.
  • last_buf_ns β€” start time of received input buffer for current one second FPS window.
  • frame_counter β€” input buffer counter for current one second FPS window.
  • frame_rate β€” frame rate of current instance.
  • operating_rate β€” operating rate of current instance.
  • hfi_rc_type β€” rate control type.
  • enc_raw_width β€” source image width for encoder instance.
  • enc_raw_height β€” source image height for encoder instance.
  • enc_scale_width β€” scale width for encoder instance.
  • enc_scale_height β€” scale height for encoder instance.
  • hfi_layer_type β€” hierarchical coding layer type.
  • hfi_layer_count β€” hierarchical coding layer count.

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/media/platform/qcom/iris/iris_instance.h

πŸ’Œ cute sign-off: source/version is ./drivers/media/platform/qcom/..., dated October 2026. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from