STRUCT IPU3_UAPI_PARAMS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct ipu3_uapi_params(9) πŸ’–

okay bestie, so sorry to just drop a struct on you with zero context β€” this is a page from the Kernel API Manual and it's genuinely iconic once you know what you're looking at. grab a strawberry drink πŸ“, we're doing this.


✨ NAME ✨

struct ipu3_uapi_params β€” literally the thing behind V4L2_META_FMT_IPU3_PARAMS. that's the whole vibe check. πŸŽ€


🌸 SYNOPSIS 🌸

here's the struct, exactly as it lives, no edits from me, promise:

struct ipu3_uapi_params {
    struct ipu3_uapi_flags use;
    struct ipu3_uapi_acc_param acc_param;
    struct ipu3_uapi_isp_lin_vmem_params lin_vmem_params;
    struct ipu3_uapi_isp_tnr3_vmem_params tnr3_vmem_params;
    struct ipu3_uapi_isp_xnr3_vmem_params xnr3_vmem_params;
    struct ipu3_uapi_isp_tnr3_params tnr3_dmem_params;
    struct ipu3_uapi_isp_xnr3_params xnr3_dmem_params;
    struct ipu3_uapi_obgrid_param obgrid_param;
 };

like… that's a lot of little struct buddies in one struct. main character energy fr fr πŸ‘‘


πŸ¦‹ Members πŸ¦‹

one by one, because each of these deserves her moment:

  • use β€” this is the queen bee πŸ‘‘, she picks which parameters actually get applied. more deets over in ipu3_uapi_flags.
  • acc_param β€” the ACC parameters, exactly as specified by ipu3_uapi_acc_param.
  • lin_vmem_params β€” linearization VMEM, as specified by ipu3_uapi_isp_lin_vmem_params. slay.
  • tnr3_vmem_params β€” tnr3 VMEM, as specified by ipu3_uapi_isp_tnr3_vmem_params.
  • xnr3_vmem_params β€” xnr3 VMEM, as specified by ipu3_uapi_isp_xnr3_vmem_params.
  • tnr3_dmem_params β€” tnr3 DMEM, as specified by ipu3_uapi_isp_tnr3_params.
  • xnr3_dmem_params β€” xnr3 DMEM, as specified by ipu3_uapi_isp_xnr3_params.
  • obgrid_param β€” obgrid parameters, as specified by ipu3_uapi_obgrid_param.

see how they all just point you at another struct? it's giving family tree. 🌈


πŸ’… Description πŸ’…

okay so the important lore: the video queue "parameters" is of format V4L2_META_FMT_IPU3_PARAMS. this is a "single plane" v4l2_meta_format that uses V4L2_BUF_TYPE_META_OUTPUT. literal single-plane icon, no cap. ✨

struct ipu3_uapi_params as defined below contains a lot of parameters, and ipu3_uapi_flags is the one that selects which parameters to apply. that's the whole mechanic β€” the struct holds everything, the flags decide what's actually on. 🫢


πŸ”₯ SEE ALSO πŸ”₯

first up, the source of truth: Kernel file ./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h β€” go read her, she's the blueprint. πŸ’€

and then. and then bestie. the link wall. every single one, in order, i did not skip a single one because that would be disrespectful:

  • struct ipu3_uapi_grid_config(9)
  • struct ipu3_uapi_awb_set_item(9)
  • struct ipu3_uapi_awb_raw_buffer(9)
  • struct ipu3_uapi_awb_config_s(9)
  • struct ipu3_uapi_awb_config(9)
  • struct ipu3_uapi_ae_raw_buffer(9)
  • struct ipu3_uapi_ae_raw_buffer_aligned(9)
  • struct ipu3_uapi_ae_grid_config(9)
  • struct ipu3_uapi_ae_weight_elem(9)
  • struct ipu3_uapi_ae_ccm(9)
  • struct ipu3_uapi_ae_config(9)
  • struct ipu3_uapi_af_filter_config(9)
  • struct ipu3_uapi_af_raw_buffer(9)
  • struct ipu3_uapi_af_config_s(9)
  • struct ipu3_uapi_awb_fr_raw_buffer(9)
  • struct ipu3_uapi_awb_fr_config_s(9)
  • struct ipu3_uapi_4a_config(9)
  • struct ipu3_uapi_bubble_info(9)
  • struct ipu3_uapi_ff_status(9)
  • struct ipu3_uapi_stats_3a(9)
  • struct ipu3_uapi_bnr_static_config_wb_gains_config(9)
  • struct ipu3_uapi_bnr_static_config_wb_gains_thr_config(9)
  • struct ipu3_uapi_bnr_static_config_thr_coeffs_config(9)
  • struct ipu3_uapi_bnr_static_config_thr_ctrl_shd_config(9)
  • struct ipu3_uapi_bnr_static_config_opt_center_config(9)
  • struct ipu3_uapi_bnr_static_config_lut_config(9)
  • struct ipu3_uapi_bnr_static_config_bp_ctrl_config(9)
  • struct ipu3_uapi_bnr_static_config_dn_detect_ctrl_config(9)
  • struct ipu3_uapi_bnr_static_config_opt_center_sqr_config(9)
  • struct ipu3_uapi_bnr_static_config(9)
  • struct ipu3_uapi_bnr_static_config_green_disparity(9)
  • struct ipu3_uapi_dm_config(9)
  • struct ipu3_uapi_ccm_mat_config(9)
  • struct ipu3_uapi_gamma_corr_ctrl(9)
  • struct ipu3_uapi_gamma_corr_lut(9)
  • struct ipu3_uapi_gamma_config(9)
  • struct ipu3_uapi_csc_mat_config(9)
  • struct ipu3_uapi_cds_params(9)
  • struct ipu3_uapi_shd_grid_config(9)
  • struct ipu3_uapi_shd_general_config(9)
  • struct ipu3_uapi_shd_black_level_config(9)
  • struct ipu3_uapi_shd_config_static(9)
  • struct ipu3_uapi_shd_lut(9)
  • struct ipu3_uapi_shd_config(9)
  • struct ipu3_uapi_iefd_cux2(9)
  • struct ipu3_uapi_iefd_cux6_ed(9)
  • struct ipu3_uapi_iefd_cux2_1(9)
  • struct ipu3_uapi_iefd_cux4(9)
  • struct ipu3_uapi_iefd_cux6_rad(9)
  • struct ipu3_uapi_yuvp1_iefd_cfg_units(9)
  • struct ipu3_uapi_yuvp1_iefd_config_s(9)
  • struct ipu3_uapi_yuvp1_iefd_control(9)
  • struct ipu3_uapi_sharp_cfg(9)
  • struct ipu3_uapi_far_w(9)
  • struct ipu3_uapi_unsharp_cfg(9)
  • struct ipu3_uapi_yuvp1_iefd_shrp_cfg(9)
  • struct ipu3_uapi_unsharp_coef0(9)
  • struct ipu3_uapi_unsharp_coef1(9)
  • struct ipu3_uapi_yuvp1_iefd_unshrp_cfg(9)
  • struct ipu3_uapi_radial_reset_xy(9)
  • struct ipu3_uapi_radial_reset_x2(9)
  • struct ipu3_uapi_radial_reset_y2(9)
  • struct ipu3_uapi_radial_cfg(9)
  • struct ipu3_uapi_rad_far_w(9)
  • struct ipu3_uapi_cu_cfg0(9)
  • struct ipu3_uapi_cu_cfg1(9)
  • struct ipu3_uapi_yuvp1_iefd_rad_cfg(9)
  • struct ipu3_uapi_vss_lut_x(9)
  • struct ipu3_uapi_vss_lut_y(9)
  • struct ipu3_uapi_yuvp1_iefd_vssnlm_cfg(9)
  • struct ipu3_uapi_yuvp1_iefd_config(9)
  • struct ipu3_uapi_yuvp1_yds_config(9)
  • struct ipu3_uapi_yuvp1_chnr_enable_config(9)
  • struct ipu3_uapi_yuvp1_chnr_coring_config(9)
  • struct ipu3_uapi_yuvp1_chnr_sense_gain_config(9)
  • struct ipu3_uapi_yuvp1_chnr_iir_fir_config(9)
  • struct ipu3_uapi_yuvp1_chnr_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_lpf_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_sense_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_gain_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_clip_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_frng_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_diag_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_fc_coring_config(9)
  • struct ipu3_uapi_yuvp1_y_ee_nr_config(9)
  • struct ipu3_uapi_yuvp2_tcc_gen_control_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_macc_elem_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_macc_table_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_inv_y_lut_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config(9)
  • struct ipu3_uapi_yuvp2_tcc_static_config(9)
  • struct ipu3_uapi_anr_transform_config(9)
  • struct ipu3_uapi_anr_stitch_pyramid(9)
  • struct ipu3_uapi_anr_stitch_config(9)
  • struct ipu3_uapi_anr_config(9)
  • struct ipu3_uapi_acc_param(9)
  • struct ipu3_uapi_isp_lin_vmem_params(9)
  • struct ipu3_uapi_isp_tnr3_vmem_params(9)
  • struct ipu3_uapi_isp_tnr3_params(9)
  • struct ipu3_uapi_isp_xnr3_vmem_params(9)
  • struct ipu3_uapi_xnr3_alpha_params(9)
  • struct ipu3_uapi_xnr3_coring_params(9)
  • struct ipu3_uapi_xnr3_blending_params(9)
  • struct ipu3_uapi_isp_xnr3_params(9)
  • struct ipu3_uapi_obgrid_param(9)
  • struct ipu3_uapi_flags(9)

that's the whole squad, nobody left behind. πŸ˜­πŸ’œ


ngl bestie, this page lives under ./drivers/staging/media/ipu3/i... and it's dated October 2026 β€” so like, it's a whole era. if you're reading the struct ipu3_uapi_params(9) page and it hit different, that's because it did. periodt. πŸ’…πŸŽ€βœ¨
πŸ“¦ where this page comes from