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 | * struct rkisp1_cif_isp_hist_stat - statistics histogram data | 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 | 851 | * The window of the measurements area is divided to 5x5 sub-windows. The |
| 850 | * with ISP_HIST_XXX | 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 | struct rkisp1_cif_isp_hist_stat { | 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 | /** |