STRUCT C3_ISP_PARAMS_AE_CONFIG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

struct c3_isp_params_ae_config β€” the stats settings for auto-exposure, bestie ✨

So like, this is a page straight out of the Kernel API Manual (yes, that's the manual name, we're fancy now πŸ‘‘), and it's all about one struct. Let's get into it 🫢


🌸 SYNOPSIS 🌸

struct c3_isp_params_ae_config {
    struct c3_isp_params_block_header header;
    __u8 tap_point;
    __u8 horiz_zones_num;
    __u8 vert_zones_num;
    __u8 zone_weight[C3_ISP_AE_MAX_ZONES];
    __u16 horiz_coord[C3_ISP_AE_MAX_PT_NUM];
    __u16 vert_coord[C3_ISP_AE_MAX_PT_NUM];
    __u16 reserved[3];
 };

That's the whole vibe right there, no cap πŸ’–


πŸŽ€ Members πŸŽ€

Okay so every field, one by one, and yes I'm doing all of them because we don't skip πŸ’…

  • header β€” the C3 ISP parameters block header. The little intro card for the block, iykyk ✨
  • tap_point β€” the tap point, and it comes from enum c3_isp_params_ae_tap_point. Pick your fave from the enum, periodt πŸ¦‹
  • horiz_zones_num β€” how many horizontal zones are actually active, range [0..17] 🌈
  • vert_zones_num β€” how many vertical zones are actually active, range [0..15] ⭐
  • zone_weight β€” the array of weights for the AE statistics zones, range [0..15]. It's giving "give each zone its moment" πŸ’€
  • 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] πŸ”₯
  • reserved β€” applications must zero this array. Not optional, not a suggestion, zero it πŸ™ˆ

✨ Description ✨

So this struct is literally the thing that lets you configure the statistics generated for auto exposure. That's the whole point of it, and it ate πŸ’…

And a lil detail you cannot miss: header.type should be set to C3_ISP_PARAMS_BLOCK_AE_CONFIG, which comes from :c:type:c3_isp_params_block_type``. Set it. Don't forget. Mwah 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/uapi/linux/media/amlogic/c3-isp-config.h, plus the whole friend group 🌸

  • 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)
  • struct c3_isp_params_awb_config(9)
  • enum c3_isp_params_ae_tap_points(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)

That's the whole page, no crumbs left behind πŸ“

And that's a wrap, bestie! πŸ’œ This one lives at ./include/uapi/linux/media/aml... and it's dated October 2026 β€” so like, from the future, main character energy fr fr β­πŸŽ€ Go be iconic with your AE stats πŸŒˆπŸ’–

πŸ“¦ where this page comes from