Each entry in the array is a 20 bits value composed of 16 bits unsigned integer and 4 bits fractional part. So the type should change to __u32. In addition add a documentation of how the measurements are done.
Showing the changes to include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -844,13 +844,18 @@ struct rkisp1_cif_isp_af_stat { · 843 unmodified lines | ||
| 844 | 844 | /** |
| 845 | 845 | * struct rkisp1_cif_isp_hist_stat - statistics histogram data |
| 846 | 846 | * |
| 847 | − * @hist_bins: measured bin counters | |
| 847 | + * @hist_bins: measured bin counters. Each bin is a 20 bits unsigned fixed point | |
| 848 | + * type. Bits 0-4 are the fractional part and bits 5-19 are the | |
| 849 | + * integer part. | |
| 848 | 850 | * |
| 849 | − * Measurement window divided into 25 sub-windows, set | |
| 850 | − * with ISP_HIST_XXX | |
| 851 | + * The window of the measurements area is divided to 5x5 sub-windows. The | |
| 852 | + * histogram is then computed for each sub-window independently and the final | |
| 853 | + * result is a weighted average of the histogram measurements on all | |
| 854 | + * sub-windows. The window of the measurements area and the weight of each | |
| 855 | + * sub-window are configurable using struct @rkisp1_cif_isp_hst_config. | |
| 851 | 856 | */ |
| 852 | 857 | struct rkisp1_cif_isp_hist_stat { |
| 853 | − __u16 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; | |
| 858 | + __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; | |
| 854 | 859 | }; |
| 855 | 860 | |
| 856 | 861 | /** |