STRUCT C3_ISP_PARAMS_AWB_CONFIG(9)
π struct c3_isp_params_awb_config(9) β¨
okay so this is a page from the Kernel API Manual β yes, the Kernel API Manual, we're doing kernel docs today bestie, put your hair up π
πΈ NAME πΈ
struct c3_isp_params_awb_config β the stats settings for auto-white balance, aka the little struct that tells your ISP how to see colour correctly π
β¨ SYNOPSIS β¨
struct c3_isp_params_awb_config {
struct c3_isp_params_block_header header;
__u8 tap_point;
__u8 satur_vald;
__u8 horiz_zones_num;
__u8 vert_zones_num;
__u16 rg_min;
__u16 rg_max;
__u16 bg_min;
__u16 bg_max;
__u16 rg_low;
__u16 rg_high;
__u16 bg_low;
__u16 bg_high;
__u8 zone_weight[C3_ISP_AWB_MAX_ZONES];
__u16 horiz_coord[C3_ISP_AWB_MAX_PT_NUM];
__u16 vert_coord[C3_ISP_AWB_MAX_PT_NUM];
};
like, look at her. struct of all time. no cap π«Ά
π¦ Members π¦
okay bestie, field-by-field, let's get into it π
headerβ the C3 ISP parameters block header, the little VIP pass every block carries πtap_pointβ the tap point, pulled straight fromenum c3_isp_params_awb_tap_pointsatur_valdβ the AWB statistic over-saturation control value:0means disable,1means enable. that's it, that's the whole switch β¨horiz_zones_numβ active number of horizontal zones, range[0..32]vert_zones_numβ active number of vertical zones, range[0..24]rg_minβ minimum R/G ratio, in Q4.8 format πrg_maxβ maximum R/G ratio, in Q4.8 formatbg_minβ minimum B/G ratio, in Q4.8 format π«bg_maxβ maximum B/G ratio, in Q4.8 formatrg_lowβ R/G ratio trim low, in Q4.8 formatrg_highβ R/G ratio trim high, in Q4.8 formatbg_lowβ B/G ratio trim low, in Q4.8 formatbg_highβ B/G ratio trim high, in Q4.8 formatzone_weightβ array of weights for the AWB statistics zones, range[0..15]βοΈhoriz_coordβ the horizontal coordinate of points on the diagonal, range[0..2888]vert_coordβ the vertical coordinate of points on the diagonal, range[0..2240]
bestie pls notice the format notes β every single ratio here is Q4.8, not whatever float energy you were about to send it. iykyk π
π Description π
so this struct is literally the whole vibe-check for AWB: it lets you configure the statistics generated for auto white balance. that's the entire job, and she does it π
and here's the one thing you cannot fumble β header.type should be set to C3_ISP_PARAMS_BLOCK_AWB_CONFIG, which comes from :c:type:c3_isp_params_block_type``. set it wrong and the block is giving nothing, honestly π
π SEE ALSO π
go touch some grass and then read all of these, in this exact order, because i said so π§
- Kernel file
./include/uapi/linux/media/amlogic/c3-isp-config.h struct c3_isp_awb_zone_stats(9)struct c3_isp_awb_stats(9)struct c3_isp_ae_zone_stats(9)struct c3_isp_ae_stats(9)struct c3_isp_af_zone_stats(9)struct c3_isp_af_stats(9)struct c3_isp_stats_info(9)enum c3_isp_params_buffer_version(9)enum c3_isp_params_block_type(9)c3_isp_params_block_header(9)struct c3_isp_params_awb_gains(9)enum c3_isp_params_awb_tap_points(9)enum c3_isp_params_ae_tap_points(9)struct c3_isp_params_ae_config(9)enum c3_isp_params_af_tap_points(9)struct c3_isp_params_af_config(9)struct c3_isp_params_pst_gamma(9)struct c3_isp_params_ccm(9)struct c3_isp_params_csc(9)struct c3_isp_params_blc(9)C3_ISP_PARAMS_MAX_SIZE(9)struct c3_isp_params_cfg(9)
ok that's the whole page, go set your header type correctly and hydrate π
later bestie π this one came from ./include/uapi/linux/media/aml... and it's dated October 2026 β so yeah, from the future, main character energy fr fr βπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms