STRUCT IPU3_UAPI_BNR_STATIC_CONFIG_WB_GAINS_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ipu3_uapi_bnr_static_config_wb_gains_config(9)

okay so bestie, welcome to the Kernel API Manual ✨ β€” this lil page is all about struct ipu3_uapi_bnr_static_config_wb_gains_config, and honestly? It's giving "tiny struct, big white-balance energy" πŸ’–


✨ NAME ✨

struct ipu3_uapi_bnr_static_config_wb_gains_config β€” White balance gains πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

struct ipu3_uapi_bnr_static_config_wb_gains_config {
    __u16 gr;
    __u16 r;
    __u16 b;
    __u16 gb;
 };
yes bestie, that's the whole struct in all its four-field glory β€” copy it exactly, no cap πŸ’…

🌸 Members 🌸

  • gr β€” the white balance gain for the Gr channel 🟒
  • r β€” the white balance gain for the R channel πŸ”΄
  • b β€” the white balance gain for the B channel πŸ”΅
  • gb β€” the white balance gain for the Gb channel 🟩

πŸ’œ Description πŸ’œ

So for the BNR parameters, this is the WB gain factor for the three channels β€” and the page lists them as [Ggr, Ggb, Gb, Gr] πŸ‘‘

Their precision is U3.13, and the range is (0, 8), and the actual gain is Gx + 1. Typically it's Gx = 1 ✨

And the formula, iconic as always:

Pout = {Pin * (1 + Gx)};

that's it, that's the math, and it ate πŸ’…πŸ”₯


🧚 SEE ALSO 🧚

  • Kernel file ./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h
  • 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_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), struct ipu3_uapi_params(9)

okay that's literally the whole page bestie, you're welcome πŸ’– go forth and white-balance slay πŸ’…βœ¨

🫢 cute lil sign-off: this one came out of the kernel doc source at ./drivers/staging/media/ipu3/i... and it's dated October 2026, footer read struct ipu3_...gains_config(9) β€” mwah πŸ’‹ periodt 🌈
πŸ“¦ where this page comes from