STRUCT RKISP1_CIF_ISP_HIST_STAT(9)
π struct rkisp1_cif_isp_hist_stat β statistics histogram data β¨
okay bestie, welcome to the Kernel API Manual π β this one's a struct, it's the histogram stats situation, and it's honestly kind of iconic once you know what's going on. let's get into it π«Ά
β¨ SYNOPSIS β¨
struct rkisp1_cif_isp_hist_stat {
__u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];
};
like, that's the whole shape of it πΈ one array, that's it, that's the struct.
π Members π
hist_binsβ the measured bin counters, the receipts if you will π. each bin is a 20 bits unsigned fixed point type, which lowkey means: bits 0-4 are the fractional part and bits 5-19 are the integer part. so if you were expecting a plain int, no ma'am, do the math π₯
π¦ DESCRIPTION π¦
okay so here's the vibe. the window of the measurements area gets sliced up: 5x5 sub-windows for V10 and 9x9 sub-windows for V12 πͺβ¨. then the histogram is computed for each sub-window independently, and the final result is a weighted average of the histogram measurements across all the sub-windows. main character behavior honestly π
the window of the measurements area and the weight of each sub-window are configurable using struct rkisp1_cif_isp_hst_config β so you do get to customize, yay π
the histogram contains 16 bins in V10 and 32 bins in V12 π§Ί no cap.
and here's the part you actually have to remember π: the number of entries of hist_bins depends on the hardware revision, as is reported by the hw_revision field of the struct media_device_info that is returned by ioctl MEDIA_IOC_DEVICE_INFO.
so like β V10 hasRKISP1_CIF_ISP_HIST_BIN_N_MAX_V10entries, V12 hasRKISP1_CIF_ISP_HIST_BIN_N_MAX_V12entries, andRKISP1_CIF_ISP_HIST_BIN_N_MAXis equal to the maximum of the two π. check your hw revision, bestie, don't just assume π
π SEE ALSO π
the whole friend group π β literally everyone:
- Kernel file
./include/uapi/linux/rkisp1-config.h enum rkisp1_cif_isp_version(9)enum rkisp1_cif_isp_exp_ctrl_autostop(9)enum rkisp1_cif_isp_exp_meas_mode(9)struct rkisp1_cif_isp_window(9)struct rkisp1_cif_isp_bls_fixed_val(9)struct rkisp1_cif_isp_bls_config(9)struct rkisp1_cif_isp_dpcc_methods_config(9)struct rkisp1_cif_isp_dpcc_config(9)struct rkisp1_cif_isp_gamma_corr_curve(9)struct rkisp1_cif_isp_gamma_curve_x_axis_pnts(9)struct rkisp1_cif_isp_sdg_config(9)struct rkisp1_cif_isp_lsc_config(9)struct rkisp1_cif_isp_ie_config(9)struct rkisp1_cif_isp_cproc_config(9)struct rkisp1_cif_isp_awb_meas_config(9)struct rkisp1_cif_isp_awb_gain_config(9)struct rkisp1_cif_isp_flt_config(9)struct rkisp1_cif_isp_bdm_config(9)struct rkisp1_cif_isp_ctk_config(9)struct rkisp1_cif_isp_goc_config(9)struct rkisp1_cif_isp_hst_config(9)struct rkisp1_cif_isp_aec_config(9)struct rkisp1_cif_isp_afc_config(9)enum rkisp1_cif_isp_dpf_gain_usage(9)enum rkisp1_cif_isp_dpf_rb_filtersize(9)enum rkisp1_cif_isp_dpf_nll_scale_mode(9)struct rkisp1_cif_isp_dpf_nll(9)struct rkisp1_cif_isp_dpf_rb_flt(9)struct rkisp1_cif_isp_dpf_g_flt(9)struct rkisp1_cif_isp_dpf_gain(9)struct rkisp1_cif_isp_dpf_config(9)struct rkisp1_cif_isp_dpf_strength_config(9)struct rkisp1_cif_isp_isp_other_cfg(9)struct rkisp1_cif_isp_isp_meas_cfg(9)struct rkisp1_params_cfg(9)struct rkisp1_cif_isp_compand_bls_config(9)struct rkisp1_cif_isp_compand_curve_config(9)struct rkisp1_cif_isp_wdr_tone_curve(9)struct rkisp1_cif_isp_wdr_iref_config(9)struct rkisp1_cif_isp_wdr_config(9)enum rkisp1_cif_isp_cac_v_clip_mode(9)struct rkisp1_cif_isp_cac_config(9)struct rkisp1_cif_isp_awb_meas(9)struct rkisp1_cif_isp_awb_stat(9)struct rkisp1_cif_isp_bls_meas_val(9)struct rkisp1_cif_isp_ae_stat(9)struct rkisp1_cif_isp_af_meas_val(9)struct rkisp1_cif_isp_af_stat(9)struct rkisp1_cif_isp_stat(9)struct rkisp1_stat_buffer(9)enum rkisp1_ext_params_block_type(9)rkisp1_ext_params_block_header(9)struct rkisp1_ext_params_bls_config(9)struct rkisp1_ext_params_dpcc_config(9)struct rkisp1_ext_params_sdg_config(9)struct rkisp1_ext_params_lsc_config(9)struct rkisp1_ext_params_awb_gain_config(9)struct rkisp1_ext_params_flt_config(9)struct rkisp1_ext_params_bdm_config(9)struct rkisp1_ext_params_ctk_config(9)struct rkisp1_ext_params_goc_config(9)struct rkisp1_ext_params_dpf_config(9)struct rkisp1_ext_params_dpf_strength_config(9)struct rkisp1_ext_params_cproc_config(9)struct rkisp1_ext_params_ie_config(9)struct rkisp1_ext_params_awb_meas_config(9)struct rkisp1_ext_params_hst_config(9)struct rkisp1_ext_params_aec_config(9)struct rkisp1_ext_params_afc_config(9)struct rkisp1_ext_params_compand_bls_config(9)struct rkisp1_ext_params_compand_curve_config(9)struct rkisp1_ext_params_wdr_config(9)struct rkisp1_ext_params_cac_config(9)enum rkisp1_ext_param_buffer_version(9)struct rkisp1_ext_params_cfg(9)
bestie that's the whole page, you ate it up π
β¨ and for the record, this one came from ./include/uapi/linux, October 2026 β signed, sealed, delivered, mwah π«ΆππΈ
π¦ 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