STRUCT MALI_C55_AE_5BIN_HIST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct mali_c55_ae_5bin_hist ✨

okay bestie so this is from the Kernel API Manual (section 9, kernel API pages, iykyk) and it's literally just a struct but she's an icon πŸ’…


πŸŽ€ NAME πŸŽ€

struct mali_c55_ae_5bin_hist β€” Auto Exposure 5-bin histogram statistics. that's the whole vibe. it holds stats. about histograms. with five bins. and auto exposure. slay πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

struct mali_c55_ae_5bin_hist {
    __u16 hist0;
    __u16 hist1;
    __u16 hist3;
    __u16 hist4;
 };

not me pointing out that there is no hist2 in here 😭 that's not a typo, that's the whole plot twist, keep reading bestie 🫢


🌸 Members 🌸

  • hist0 β€” 16-bit normalised pixel count for the 0th intensity bin. she's number zero and she's thriving ✨
  • hist1 β€” 16-bit normalised pixel count for the 1st intensity bin. cutie. does her job πŸ’œ
  • hist3 β€” 16-bit normalised pixel count for the 3rd intensity bin. yes we skipped 2. no we will not be taking questions. it's giving mysterious πŸ‘‘
  • hist4 β€” 16-bit normalised pixel count for the 4th intensity bin. the last one, the final girl, the main character energy 🌈
fr fr there's no member for the centre bin. that's not an accident, that's ✨by design✨

πŸ’– Description πŸ’–

so the ISP generates a 5-bin histogram of normalised pixel counts within bins of pixel intensity, for each of 225 possible zones within a frame. 225 zones!! that's so many zones, she's been booked and busy πŸ’€

here's the gag tho: the centre bin of the histogram for each zone is not available from the hardware. nope. the hardware said "not my problem" πŸ™ˆ

so you, yes you, have to calculate it yourself by subtracting the values of hist0, hist1, hist3 and hist4 from 0xffff, exactly like this equation:

hist2 = 0xffff - (hist0 + hist1 + hist3 + hist4)

write that down, put it on a sticky note, tape it to your monitor πŸŽ€ that's the whole reason hist2 isn't in the struct β€” you build it yourself, you're the CEO of bin 2, periodt πŸ”₯


πŸ‘‘ SEE ALSO πŸ‘‘

the Kernel file ./include/uapi/linux/media/arm/mali-c55-config.h and honestly a whole friend group of structs and enums, all linked below, all iconic:

  • struct mali_c55_ae_1024bin_hist(9)
  • struct mali_c55_awb_average_ratios(9)
  • struct mali_c55_af_statistics(9)
  • struct mali_c55_stats_buffer(9)
  • enum mali_c55_param_block_type(9)
  • struct mali_c55_params_sensor_off_preshading(9)
  • enum mali_c55_aexp_hist_tap_points(9)
  • enum mali_c55_aexp_skip_x(9)
  • enum mali_c55_aexp_skip_y(9)
  • enum mali_c55_aexp_row_column_offset(9)
  • enum mali_c55_aexp_hist_plane_mode(9)
  • struct mali_c55_params_aexp_hist(9)
  • struct mali_c55_params_aexp_weights(9)
  • struct mali_c55_params_digital_gain(9)
  • enum mali_c55_awb_stats_mode(9)
  • struct mali_c55_params_awb_gains(9)
  • enum mali_c55_params_awb_tap_points(9)
  • struct mali_c55_params_awb_config(9)
  • struct mali_c55_params_mesh_shading_config(9)
  • struct mali_c55_params_mesh_shading_selection(9)
  • struct mali_c55_params_ccm(9)
  • struct mali_c55_params_gamma(9)
  • MALI_C55_PARAMS_MAX_SIZE(9)

like. every single one. we stan a complete cross-reference list πŸ’…


and that's the page!! source lives at ./include/uapi/linux/media/arm, this edition dropped October 2026, and the whole thing is filed under struct mali_...ae_5bin_hist(9) in section 9 🧚 stan a histogram struct that knows exactly what she is πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from