STRUCT C3_ISP_PARAMS_AWB_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 from enum c3_isp_params_awb_tap_point
  • satur_vald β€” the AWB statistic over-saturation control value: 0 means disable, 1 means 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 format
  • bg_min β€” minimum B/G ratio, in Q4.8 format 🫐
  • bg_max β€” maximum B/G ratio, in Q4.8 format
  • rg_low β€” R/G ratio trim low, in Q4.8 format
  • rg_high β€” R/G ratio trim high, in Q4.8 format
  • bg_low β€” B/G ratio trim low, in Q4.8 format
  • bg_high β€” B/G ratio trim high, in Q4.8 format
  • zone_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