• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_RKISP1_CONFIG_H
20 #define _UAPI_RKISP1_CONFIG_H
21 #include <linux/types.h>
22 #define RKISP1_CIF_ISP_MODULE_DPCC (1U << 0)
23 #define RKISP1_CIF_ISP_MODULE_BLS (1U << 1)
24 #define RKISP1_CIF_ISP_MODULE_SDG (1U << 2)
25 #define RKISP1_CIF_ISP_MODULE_HST (1U << 3)
26 #define RKISP1_CIF_ISP_MODULE_LSC (1U << 4)
27 #define RKISP1_CIF_ISP_MODULE_AWB_GAIN (1U << 5)
28 #define RKISP1_CIF_ISP_MODULE_FLT (1U << 6)
29 #define RKISP1_CIF_ISP_MODULE_BDM (1U << 7)
30 #define RKISP1_CIF_ISP_MODULE_CTK (1U << 8)
31 #define RKISP1_CIF_ISP_MODULE_GOC (1U << 9)
32 #define RKISP1_CIF_ISP_MODULE_CPROC (1U << 10)
33 #define RKISP1_CIF_ISP_MODULE_AFC (1U << 11)
34 #define RKISP1_CIF_ISP_MODULE_AWB (1U << 12)
35 #define RKISP1_CIF_ISP_MODULE_IE (1U << 13)
36 #define RKISP1_CIF_ISP_MODULE_AEC (1U << 14)
37 #define RKISP1_CIF_ISP_MODULE_WDR (1U << 15)
38 #define RKISP1_CIF_ISP_MODULE_DPF (1U << 16)
39 #define RKISP1_CIF_ISP_MODULE_DPF_STRENGTH (1U << 17)
40 #define RKISP1_CIF_ISP_CTK_COEFF_MAX 0x100
41 #define RKISP1_CIF_ISP_CTK_OFFSET_MAX 0x800
42 #define RKISP1_CIF_ISP_AE_MEAN_MAX_V10 25
43 #define RKISP1_CIF_ISP_AE_MEAN_MAX_V12 81
44 #define RKISP1_CIF_ISP_AE_MEAN_MAX RKISP1_CIF_ISP_AE_MEAN_MAX_V12
45 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 16
46 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 32
47 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12
48 #define RKISP1_CIF_ISP_AFM_MAX_WINDOWS 3
49 #define RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE 17
50 #define RKISP1_CIF_ISP_BDM_MAX_TH 0xff
51 #define RKISP1_CIF_ISP_BLS_START_H_MAX 0x00000fff
52 #define RKISP1_CIF_ISP_BLS_STOP_H_MAX 0x00000fff
53 #define RKISP1_CIF_ISP_BLS_START_V_MAX 0x00000fff
54 #define RKISP1_CIF_ISP_BLS_STOP_V_MAX 0x00000fff
55 #define RKISP1_CIF_ISP_BLS_SAMPLES_MAX 0x00000012
56 #define RKISP1_CIF_ISP_BLS_FIX_SUB_MAX 0x00000fff
57 #define RKISP1_CIF_ISP_BLS_FIX_SUB_MIN 0xfffff000
58 #define RKISP1_CIF_ISP_BLS_FIX_MASK 0x00001fff
59 #define RKISP1_CIF_ISP_AWB_MAX_GRID 1
60 #define RKISP1_CIF_ISP_AWB_MAX_FRAMES 7
61 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 17
62 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 34
63 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12
64 #define RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE 8
65 #define RKISP1_CIF_ISP_LSC_SAMPLES_MAX 17
66 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 25
67 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 81
68 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12
69 #define RKISP1_CIF_ISP_DPCC_METHODS_MAX 3
70 #define RKISP1_CIF_ISP_DPCC_MODE_STAGE1_ENABLE (1U << 2)
71 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_G_CENTER (1U << 0)
72 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_RB_CENTER (1U << 1)
73 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_G_3X3 (1U << 2)
74 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_RB_3X3 (1U << 3)
75 #define RKISP1_CIF_ISP_DPCC_SET_USE_STAGE1_USE_SET(n) ((n) << 0)
76 #define RKISP1_CIF_ISP_DPCC_SET_USE_STAGE1_USE_FIX_SET (1U << 3)
77 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_PG_GREEN_ENABLE (1U << 0)
78 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_LC_GREEN_ENABLE (1U << 1)
79 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RO_GREEN_ENABLE (1U << 2)
80 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RND_GREEN_ENABLE (1U << 3)
81 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RG_GREEN_ENABLE (1U << 4)
82 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_PG_RED_BLUE_ENABLE (1U << 8)
83 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_LC_RED_BLUE_ENABLE (1U << 9)
84 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RO_RED_BLUE_ENABLE (1U << 10)
85 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RND_RED_BLUE_ENABLE (1U << 11)
86 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RG_RED_BLUE_ENABLE (1U << 12)
87 #define RKISP1_CIF_ISP_DPCC_LINE_THRESH_G(v) ((v) << 0)
88 #define RKISP1_CIF_ISP_DPCC_LINE_THRESH_RB(v) ((v) << 8)
89 #define RKISP1_CIF_ISP_DPCC_LINE_MAD_FAC_G(v) ((v) << 0)
90 #define RKISP1_CIF_ISP_DPCC_LINE_MAD_FAC_RB(v) ((v) << 8)
91 #define RKISP1_CIF_ISP_DPCC_PG_FAC_G(v) ((v) << 0)
92 #define RKISP1_CIF_ISP_DPCC_PG_FAC_RB(v) ((v) << 8)
93 #define RKISP1_CIF_ISP_DPCC_RND_THRESH_G(v) ((v) << 0)
94 #define RKISP1_CIF_ISP_DPCC_RND_THRESH_RB(v) ((v) << 8)
95 #define RKISP1_CIF_ISP_DPCC_RG_FAC_G(v) ((v) << 0)
96 #define RKISP1_CIF_ISP_DPCC_RG_FAC_RB(v) ((v) << 8)
97 #define RKISP1_CIF_ISP_DPCC_RO_LIMITS_n_G(n,v) ((v) << ((n) * 4))
98 #define RKISP1_CIF_ISP_DPCC_RO_LIMITS_n_RB(n,v) ((v) << ((n) * 4 + 2))
99 #define RKISP1_CIF_ISP_DPCC_RND_OFFS_n_G(n,v) ((v) << ((n) * 4))
100 #define RKISP1_CIF_ISP_DPCC_RND_OFFS_n_RB(n,v) ((v) << ((n) * 4 + 2))
101 #define RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS 17
102 #define RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS 6
103 #define RKISP1_CIF_ISP_STAT_AWB (1U << 0)
104 #define RKISP1_CIF_ISP_STAT_AUTOEXP (1U << 1)
105 #define RKISP1_CIF_ISP_STAT_AFM (1U << 2)
106 #define RKISP1_CIF_ISP_STAT_HIST (1U << 3)
107 enum rkisp1_cif_isp_version {
108   RKISP1_V10 = 10,
109   RKISP1_V11,
110   RKISP1_V12,
111   RKISP1_V13,
112 };
113 enum rkisp1_cif_isp_histogram_mode {
114   RKISP1_CIF_ISP_HISTOGRAM_MODE_DISABLE,
115   RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED,
116   RKISP1_CIF_ISP_HISTOGRAM_MODE_R_HISTOGRAM,
117   RKISP1_CIF_ISP_HISTOGRAM_MODE_G_HISTOGRAM,
118   RKISP1_CIF_ISP_HISTOGRAM_MODE_B_HISTOGRAM,
119   RKISP1_CIF_ISP_HISTOGRAM_MODE_Y_HISTOGRAM
120 };
121 enum rkisp1_cif_isp_awb_mode_type {
122   RKISP1_CIF_ISP_AWB_MODE_MANUAL,
123   RKISP1_CIF_ISP_AWB_MODE_RGB,
124   RKISP1_CIF_ISP_AWB_MODE_YCBCR
125 };
126 enum rkisp1_cif_isp_flt_mode {
127   RKISP1_CIF_ISP_FLT_STATIC_MODE,
128   RKISP1_CIF_ISP_FLT_DYNAMIC_MODE
129 };
130 enum rkisp1_cif_isp_exp_ctrl_autostop {
131   RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0 = 0,
132   RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1 = 1,
133 };
134 enum rkisp1_cif_isp_exp_meas_mode {
135   RKISP1_CIF_ISP_EXP_MEASURING_MODE_0,
136   RKISP1_CIF_ISP_EXP_MEASURING_MODE_1,
137 };
138 struct rkisp1_cif_isp_window {
139   __u16 h_offs;
140   __u16 v_offs;
141   __u16 h_size;
142   __u16 v_size;
143 };
144 struct rkisp1_cif_isp_bls_fixed_val {
145   __s16 r;
146   __s16 gr;
147   __s16 gb;
148   __s16 b;
149 };
150 struct rkisp1_cif_isp_bls_config {
151   __u8 enable_auto;
152   __u8 en_windows;
153   struct rkisp1_cif_isp_window bls_window1;
154   struct rkisp1_cif_isp_window bls_window2;
155   __u8 bls_samples;
156   struct rkisp1_cif_isp_bls_fixed_val fixed_val;
157 };
158 struct rkisp1_cif_isp_dpcc_methods_config {
159   __u32 method;
160   __u32 line_thresh;
161   __u32 line_mad_fac;
162   __u32 pg_fac;
163   __u32 rnd_thresh;
164   __u32 rg_fac;
165 };
166 struct rkisp1_cif_isp_dpcc_config {
167   __u32 mode;
168   __u32 output_mode;
169   __u32 set_use;
170   struct rkisp1_cif_isp_dpcc_methods_config methods[RKISP1_CIF_ISP_DPCC_METHODS_MAX];
171   __u32 ro_limits;
172   __u32 rnd_offs;
173 };
174 struct rkisp1_cif_isp_gamma_corr_curve {
175   __u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE];
176 };
177 struct rkisp1_cif_isp_gamma_curve_x_axis_pnts {
178   __u32 gamma_dx0;
179   __u32 gamma_dx1;
180 };
181 struct rkisp1_cif_isp_sdg_config {
182   struct rkisp1_cif_isp_gamma_corr_curve curve_r;
183   struct rkisp1_cif_isp_gamma_corr_curve curve_g;
184   struct rkisp1_cif_isp_gamma_corr_curve curve_b;
185   struct rkisp1_cif_isp_gamma_curve_x_axis_pnts xa_pnts;
186 };
187 struct rkisp1_cif_isp_lsc_config {
188   __u16 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
189   __u16 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
190   __u16 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
191   __u16 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX];
192   __u16 x_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
193   __u16 y_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
194   __u16 x_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
195   __u16 y_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE];
196   __u16 config_width;
197   __u16 config_height;
198 };
199 struct rkisp1_cif_isp_ie_config {
200   __u16 effect;
201   __u16 color_sel;
202   __u16 eff_mat_1;
203   __u16 eff_mat_2;
204   __u16 eff_mat_3;
205   __u16 eff_mat_4;
206   __u16 eff_mat_5;
207   __u16 eff_tint;
208 };
209 struct rkisp1_cif_isp_cproc_config {
210   __u8 c_out_range;
211   __u8 y_in_range;
212   __u8 y_out_range;
213   __u8 contrast;
214   __u8 brightness;
215   __u8 sat;
216   __u8 hue;
217 };
218 struct rkisp1_cif_isp_awb_meas_config {
219   struct rkisp1_cif_isp_window awb_wnd;
220   __u32 awb_mode;
221   __u8 max_y;
222   __u8 min_y;
223   __u8 max_csum;
224   __u8 min_c;
225   __u8 frames;
226   __u8 awb_ref_cr;
227   __u8 awb_ref_cb;
228   __u8 enable_ymax_cmp;
229 };
230 struct rkisp1_cif_isp_awb_gain_config {
231   __u16 gain_red;
232   __u16 gain_green_r;
233   __u16 gain_blue;
234   __u16 gain_green_b;
235 };
236 struct rkisp1_cif_isp_flt_config {
237   __u32 mode;
238   __u8 grn_stage1;
239   __u8 chr_h_mode;
240   __u8 chr_v_mode;
241   __u32 thresh_bl0;
242   __u32 thresh_bl1;
243   __u32 thresh_sh0;
244   __u32 thresh_sh1;
245   __u32 lum_weight;
246   __u32 fac_sh1;
247   __u32 fac_sh0;
248   __u32 fac_mid;
249   __u32 fac_bl0;
250   __u32 fac_bl1;
251 };
252 struct rkisp1_cif_isp_bdm_config {
253   __u8 demosaic_th;
254 };
255 struct rkisp1_cif_isp_ctk_config {
256   __u16 coeff[3][3];
257   __u16 ct_offset[3];
258 };
259 enum rkisp1_cif_isp_goc_mode {
260   RKISP1_CIF_ISP_GOC_MODE_LOGARITHMIC,
261   RKISP1_CIF_ISP_GOC_MODE_EQUIDISTANT
262 };
263 struct rkisp1_cif_isp_goc_config {
264   __u32 mode;
265   __u16 gamma_y[RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES];
266 };
267 struct rkisp1_cif_isp_hst_config {
268   __u32 mode;
269   __u8 histogram_predivider;
270   struct rkisp1_cif_isp_window meas_window;
271   __u8 hist_weight[RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE];
272 };
273 struct rkisp1_cif_isp_aec_config {
274   __u32 mode;
275   __u32 autostop;
276   struct rkisp1_cif_isp_window meas_window;
277 };
278 struct rkisp1_cif_isp_afc_config {
279   __u8 num_afm_win;
280   struct rkisp1_cif_isp_window afm_win[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
281   __u32 thres;
282   __u32 var_shift;
283 };
284 enum rkisp1_cif_isp_dpf_gain_usage {
285   RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED,
286   RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS,
287   RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS,
288   RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS,
289   RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS,
290   RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS,
291   RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX
292 };
293 enum rkisp1_cif_isp_dpf_rb_filtersize {
294   RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9,
295   RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9,
296 };
297 enum rkisp1_cif_isp_dpf_nll_scale_mode {
298   RKISP1_CIF_ISP_NLL_SCALE_LINEAR,
299   RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC,
300 };
301 struct rkisp1_cif_isp_dpf_nll {
302   __u16 coeff[RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS];
303   __u32 scale_mode;
304 };
305 struct rkisp1_cif_isp_dpf_rb_flt {
306   __u32 fltsize;
307   __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
308   __u8 r_enable;
309   __u8 b_enable;
310 };
311 struct rkisp1_cif_isp_dpf_g_flt {
312   __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS];
313   __u8 gr_enable;
314   __u8 gb_enable;
315 };
316 struct rkisp1_cif_isp_dpf_gain {
317   __u32 mode;
318   __u16 nf_r_gain;
319   __u16 nf_b_gain;
320   __u16 nf_gr_gain;
321   __u16 nf_gb_gain;
322 };
323 struct rkisp1_cif_isp_dpf_config {
324   struct rkisp1_cif_isp_dpf_gain gain;
325   struct rkisp1_cif_isp_dpf_g_flt g_flt;
326   struct rkisp1_cif_isp_dpf_rb_flt rb_flt;
327   struct rkisp1_cif_isp_dpf_nll nll;
328 };
329 struct rkisp1_cif_isp_dpf_strength_config {
330   __u8 r;
331   __u8 g;
332   __u8 b;
333 };
334 struct rkisp1_cif_isp_isp_other_cfg {
335   struct rkisp1_cif_isp_dpcc_config dpcc_config;
336   struct rkisp1_cif_isp_bls_config bls_config;
337   struct rkisp1_cif_isp_sdg_config sdg_config;
338   struct rkisp1_cif_isp_lsc_config lsc_config;
339   struct rkisp1_cif_isp_awb_gain_config awb_gain_config;
340   struct rkisp1_cif_isp_flt_config flt_config;
341   struct rkisp1_cif_isp_bdm_config bdm_config;
342   struct rkisp1_cif_isp_ctk_config ctk_config;
343   struct rkisp1_cif_isp_goc_config goc_config;
344   struct rkisp1_cif_isp_dpf_config dpf_config;
345   struct rkisp1_cif_isp_dpf_strength_config dpf_strength_config;
346   struct rkisp1_cif_isp_cproc_config cproc_config;
347   struct rkisp1_cif_isp_ie_config ie_config;
348 };
349 struct rkisp1_cif_isp_isp_meas_cfg {
350   struct rkisp1_cif_isp_awb_meas_config awb_meas_config;
351   struct rkisp1_cif_isp_hst_config hst_config;
352   struct rkisp1_cif_isp_aec_config aec_config;
353   struct rkisp1_cif_isp_afc_config afc_config;
354 };
355 struct rkisp1_params_cfg {
356   __u32 module_en_update;
357   __u32 module_ens;
358   __u32 module_cfg_update;
359   struct rkisp1_cif_isp_isp_meas_cfg meas;
360   struct rkisp1_cif_isp_isp_other_cfg others;
361 };
362 struct rkisp1_cif_isp_awb_meas {
363   __u32 cnt;
364   __u8 mean_y_or_g;
365   __u8 mean_cb_or_b;
366   __u8 mean_cr_or_r;
367 };
368 struct rkisp1_cif_isp_awb_stat {
369   struct rkisp1_cif_isp_awb_meas awb_mean[RKISP1_CIF_ISP_AWB_MAX_GRID];
370 };
371 struct rkisp1_cif_isp_bls_meas_val {
372   __u16 meas_r;
373   __u16 meas_gr;
374   __u16 meas_gb;
375   __u16 meas_b;
376 };
377 struct rkisp1_cif_isp_ae_stat {
378   __u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX];
379   struct rkisp1_cif_isp_bls_meas_val bls_val;
380 };
381 struct rkisp1_cif_isp_af_meas_val {
382   __u32 sum;
383   __u32 lum;
384 };
385 struct rkisp1_cif_isp_af_stat {
386   struct rkisp1_cif_isp_af_meas_val window[RKISP1_CIF_ISP_AFM_MAX_WINDOWS];
387 };
388 struct rkisp1_cif_isp_hist_stat {
389   __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX];
390 };
391 struct rkisp1_cif_isp_stat {
392   struct rkisp1_cif_isp_awb_stat awb;
393   struct rkisp1_cif_isp_ae_stat ae;
394   struct rkisp1_cif_isp_af_stat af;
395   struct rkisp1_cif_isp_hist_stat hist;
396 };
397 struct rkisp1_stat_buffer {
398   __u32 meas_type;
399   __u32 frame_id;
400   struct rkisp1_cif_isp_stat params;
401 };
402 #endif
403