STRUCT IPU3_UAPI_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ipu3_uapi_flags(9) β€” aka the group-chat of "which pipeline needs update"

okay so bestie, welcome to the Kernel API Manual ✨ this one's about struct ipu3_uapi_flags, and honestly? It's giving "one big bitfield of vibes". Every field is literally one bit, and its whole personality is answering the question: does this pipeline need an update or not? No cap.


🌸 NAME 🌸

struct ipu3_uapi_flags β€” bits to indicate which pipeline needs update πŸ’–


✨ SYNOPSIS ✨

struct ipu3_uapi_flags {
    __u32 gdc:1;
    __u32 obgrid:1;
    __u32 reserved1:30;
    __u32 acc_bnr:1;
    __u32 acc_green_disparity:1;
    __u32 acc_dm:1;
    __u32 acc_ccm:1;
    __u32 acc_gamma:1;
    __u32 acc_csc:1;
    __u32 acc_cds:1;
    __u32 acc_shd:1;
    __u32 reserved2:2;
    __u32 acc_iefd:1;
    __u32 acc_yds_c0:1;
    __u32 acc_chnr_c0:1;
    __u32 acc_y_ee_nr:1;
    __u32 acc_yds:1;
    __u32 acc_chnr:1;
    __u32 acc_ytm:1;
    __u32 acc_yds2:1;
    __u32 acc_tcc:1;
    __u32 acc_dpc:1;
    __u32 acc_bds:1;
    __u32 acc_anr:1;
    __u32 acc_awb_fr:1;
    __u32 acc_ae:1;
    __u32 acc_af:1;
    __u32 acc_awb:1;
    __u32 reserved3:4;
    __u32 lin_vmem_params:1;
    __u32 tnr3_vmem_params:1;
    __u32 xnr3_vmem_params:1;
    __u32 tnr3_dmem_params:1;
    __u32 xnr3_dmem_params:1;
    __u32 reserved4:1;
    __u32 obgrid_param:1;
    __u32 reserved5:25;
 };

like, look at all those :1s. absolutely iconic bit-hoarding behaviour 🫢


πŸŽ€ Members πŸŽ€

so every single one of these is a lil one-bit switch. The rule is lowkey the same everywhere: 0 = no update, 1 = update. Periodt. The reserved ones are just sitting there being Not used πŸ’€

  • gdc β€” 0 = no update, 1 = update.
  • obgrid β€” 0 = no update, 1 = update.
  • reserved1 β€” Not used.
  • acc_bnr β€” 0 = no update, 1 = update.
  • acc_green_disparity β€” 0 = no update, 1 = update.
  • acc_dm β€” 0 = no update, 1 = update.
  • acc_ccm β€” 0 = no update, 1 = update.
  • acc_gamma β€” 0 = no update, 1 = update.
  • acc_csc β€” 0 = no update, 1 = update.
  • acc_cds β€” 0 = no update, 1 = update.
  • acc_shd β€” 0 = no update, 1 = update.
  • reserved2 β€” Not used.
  • acc_iefd β€” 0 = no update, 1 = update.
  • acc_yds_c0 β€” 0 = no update, 1 = update.
  • acc_chnr_c0 β€” 0 = no update, 1 = update.
  • acc_y_ee_nr β€” 0 = no update, 1 = update.
  • acc_yds β€” 0 = no update, 1 = update.
  • acc_chnr β€” 0 = no update, 1 = update.
  • acc_ytm β€” 0 = no update, 1 = update.
  • acc_yds2 β€” 0 = no update, 1 = update.
  • acc_tcc β€” 0 = no update, 1 = update.
  • acc_dpc β€” 0 = no update, 1 = update.
  • acc_bds β€” 0 = no update, 1 = update.
  • acc_anr β€” 0 = no update, 1 = update.
  • acc_awb_fr β€” 0 = no update, 1 = update.
  • acc_ae β€” 0 = no update, 1 = update.
  • acc_af β€” 0 = no update, 1 = update.
  • acc_awb β€” 0 = no update, 1 = update.
  • reserved3 β€” Not used.
  • lin_vmem_params β€” 0 = no update, 1 = update.
  • tnr3_vmem_params β€” 0 = no update, 1 = update.
  • xnr3_vmem_params β€” 0 = no update, 1 = update.
  • tnr3_dmem_params β€” 0 = no update, 1 = update.
  • xnr3_dmem_params β€” 0 = no update, 1 = update.
  • reserved4 β€” Not used.
  • obgrid_param β€” 0 = no update, 1 = update.
  • reserved5 β€” Not used.
bestie note 🫢 the reserved fields are literally Not used β€” do not come for them, they're just padding holding space so the bit layout stays cute and aligned. Leave them alone, fr fr.

πŸ¦‹ SEE ALSO πŸ¦‹

the kernel file that started it all, plus a whole friend group of structs (iykyk):

  • Kernel file ./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h

the grid + 3A girlies πŸŽ€

  • struct ipu3_uapi_grid_config(9)
  • struct ipu3_uapi_stats_3a(9)
  • struct ipu3_uapi_4a_config(9)
  • struct ipu3_uapi_ff_status(9)
  • struct ipu3_uapi_bubble_info(9)

AWB squad πŸ’–

  • 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_awb_fr_raw_buffer(9)
  • struct ipu3_uapi_awb_fr_config_s(9)

AE squad ✨

  • 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)

AF squad 🌸

  • struct ipu3_uapi_af_filter_config(9)
  • struct ipu3_uapi_af_raw_buffer(9)
  • struct ipu3_uapi_af_config_s(9)

BNR family (it's a big family, we don't judge) πŸ’…

  • 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)

color + tone besties 🌈

  • 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)

SHD crew 🌟

  • 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)

IEFD universe (grab a snack, this one's long) πŸ“

  • 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)

YDS / CHNR / Y_EE_NR babes 🧚

  • 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)

TCC static config clique πŸ‘‘

  • 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)

ANR + the param legends πŸ”₯

  • 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_params(9)

that's the whole page bestie, you ate it πŸ’…βœ¨ source is ./drivers/staging/media/ipu3/i..., dated October 2026, and it's filed under struct ipu3_uapi_flags(9) β€” go forth and set those bits responsibly πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from