STRUCT IPU3_UAPI_4A_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct ipu3_uapi_4a_config β€” 4A config πŸŽ€

okay so bestie, welcome to the Kernel API Manual ✨ and like… this is the moment. We're talking about struct ipu3_uapi_4a_config, the literal main character of Intel IPU3 camera configs. 4A? Auto White Balance, Auto Exposure, Auto Focus and friends β€” the whole glow-up squad. She's a struct, she's iconic, and she's about to be your new obsession. πŸ’…


✨ SYNOPSIS ✨

struct ipu3_uapi_4a_config {
    struct ipu3_uapi_awb_config_s awb_config;
    struct ipu3_uapi_ae_grid_config ae_grd_config;
    __u8 padding[20];
    struct ipu3_uapi_af_config_s af_config;
    struct ipu3_uapi_awb_fr_config_s awb_fr_config;
 };

Look at her πŸ₯Ή five whole members. No cap, that layout is clean.


πŸ’– MEMBERS πŸ’–

  • awb_config β€” a ipu3_uapi_awb_config_s, default resolution 16x16. Yes, sixteen by sixteen, she's precise like that ✨
  • ae_grd_config β€” auto exposure statistics ipu3_uapi_ae_grid_config. This is the girl that does the counting πŸ“Š
  • padding β€” paddings. Just padding, bestie. She's there so the struct lines up. Don't question her, she's doing her job 🫢
  • af_config β€” auto focus config ipu3_uapi_af_config_s. Focus. Lock in. πŸ”₯
  • awb_fr_config β€” a ipu3_uapi_awb_fr_config_s, default resolution 16x16. Another 16x16 and honestly? Consistency is sexy 🌸

πŸ‘€ SEE ALSO πŸ‘€

Kernel file: ./drivers/staging/media/ipu3/include/uapi/intel-ipu3.h β€” that's the source of truth, go read her, iykyk πŸ¦‹

So sorry in advance, because the friend list is long and we are not skipping a single one. Every single struct, present and accounted for πŸ’œ

the core 3A girlies + the grid crew:

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_bubble_info(9), struct ipu3_uapi_ff_status(9), struct ipu3_uapi_stats_3a(9)

the BNR static config squad (they're all named like that on purpose, don't come for them):

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 + shading era:

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)

the IEFD / sharpening / radial universe (a whole vibe):

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)

yuvp1 pipeline besties:

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)

yuvp2 TCC + ANR section, we love a sequel:

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)

and the final boss row, ISP vmem + XNR3 + the top-level params:

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)

ngl, that's a lot of siblings, but every single one of them is linked here for a reason β€” go click through them when you're ready, no rush 🫢

and that's the page, bestie!! πŸŽ€βœ¨

This one came from the Kernel API Manual, source sooo lovingly tucked at ./drivers/staging/media/ipu3/i..., dated October 2026, and she's filed under struct ipu3_uapi_4a_config(9). Go forth and configure your 4A, queen πŸ‘‘πŸ’–

πŸ“¦ where this page comes from