xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/common/rkisp21-config.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: (GPL-2.0+ WITH Linux-syscall-note) OR MIT
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Rockchip isp2 driver
4*4882a593Smuzhiyun  * Copyright (C) 2020 Rockchip Electronics Co., Ltd.
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef _UAPI_RKISP21_CONFIG_H
8*4882a593Smuzhiyun #define _UAPI_RKISP21_CONFIG_H
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include <linux/types.h>
11*4882a593Smuzhiyun #include <linux/v4l2-controls.h>
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #include "common/rkisp2-config.h"
14*4882a593Smuzhiyun 
15*4882a593Smuzhiyun #define ISP2X_MODULE_BAYNR			BIT_ULL(36)
16*4882a593Smuzhiyun #define ISP2X_MODULE_BAY3D			BIT_ULL(37)
17*4882a593Smuzhiyun #define ISP2X_MODULE_YNR			BIT_ULL(38)
18*4882a593Smuzhiyun #define ISP2X_MODULE_CNR			BIT_ULL(39)
19*4882a593Smuzhiyun #define ISP2X_MODULE_SHARP			BIT_ULL(40)
20*4882a593Smuzhiyun #define ISP2X_MODULE_DRC			BIT_ULL(41)
21*4882a593Smuzhiyun #define ISP2X_MODULE_CSM			BIT_ULL(43)
22*4882a593Smuzhiyun #define ISP2X_MODULE_CGC			BIT_ULL(44)
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun #define ISP21_DHAZ_ENH_CURVE_NUM		17
25*4882a593Smuzhiyun #define ISP21_DHAZ_HIST_IIR_NUM			64
26*4882a593Smuzhiyun #define ISP21_RAWAWB_HSTBIN_NUM			8
27*4882a593Smuzhiyun #define ISP21_RAWAWB_WEIGHT_NUM			225
28*4882a593Smuzhiyun #define ISP21_DRC_Y_NUM				17
29*4882a593Smuzhiyun #define ISP21_YNR_XY_NUM			17
30*4882a593Smuzhiyun #define ISP21_BAYNR_XY_NUM			16
31*4882a593Smuzhiyun #define ISP21_BAY3D_XY_NUM			16
32*4882a593Smuzhiyun #define ISP21_SHARP_X_NUM			7
33*4882a593Smuzhiyun #define ISP21_SHARP_Y_NUM			8
34*4882a593Smuzhiyun #define ISP21_CSM_COEFF_NUM			9
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun struct isp21_cgc_cfg {
37*4882a593Smuzhiyun 	u8 yuv_limit;
38*4882a593Smuzhiyun 	u8 ratio_en;
39*4882a593Smuzhiyun } __attribute__ ((packed));
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun struct isp21_csm_cfg {
42*4882a593Smuzhiyun 	u8 csm_full_range;
43*4882a593Smuzhiyun 	u16 csm_y_offset;
44*4882a593Smuzhiyun 	u16 csm_c_offset;
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun 	u32 csm_coeff[ISP21_CSM_COEFF_NUM];
47*4882a593Smuzhiyun } __attribute__ ((packed));
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun struct isp21_bls_cfg {
50*4882a593Smuzhiyun 	u8 enable_auto;
51*4882a593Smuzhiyun 	u8 en_windows;
52*4882a593Smuzhiyun 	u8 bls1_en;
53*4882a593Smuzhiyun 	struct isp2x_window bls_window1;
54*4882a593Smuzhiyun 	struct isp2x_window bls_window2;
55*4882a593Smuzhiyun 	u8 bls_samples;
56*4882a593Smuzhiyun 	struct isp2x_bls_fixed_val fixed_val;
57*4882a593Smuzhiyun 	struct isp2x_bls_fixed_val bls1_val;
58*4882a593Smuzhiyun } __attribute__ ((packed));
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun struct isp21_awb_gain_cfg {
61*4882a593Smuzhiyun 	u16 gain0_red;
62*4882a593Smuzhiyun 	u16 gain0_green_r;
63*4882a593Smuzhiyun 	u16 gain0_blue;
64*4882a593Smuzhiyun 	u16 gain0_green_b;
65*4882a593Smuzhiyun 	u16 gain1_red;
66*4882a593Smuzhiyun 	u16 gain1_green_r;
67*4882a593Smuzhiyun 	u16 gain1_blue;
68*4882a593Smuzhiyun 	u16 gain1_green_b;
69*4882a593Smuzhiyun 	u16 gain2_red;
70*4882a593Smuzhiyun 	u16 gain2_green_r;
71*4882a593Smuzhiyun 	u16 gain2_blue;
72*4882a593Smuzhiyun 	u16 gain2_green_b;
73*4882a593Smuzhiyun } __attribute__ ((packed));
74*4882a593Smuzhiyun 
75*4882a593Smuzhiyun struct isp21_gic_cfg {
76*4882a593Smuzhiyun 	u16 regmingradthrdark2;
77*4882a593Smuzhiyun 	u16 regmingradthrdark1;
78*4882a593Smuzhiyun 	u16 regminbusythre;
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun 	u16 regdarkthre;
81*4882a593Smuzhiyun 	u16 regmaxcorvboth;
82*4882a593Smuzhiyun 	u16 regdarktthrehi;
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun 	u8 regkgrad2dark;
85*4882a593Smuzhiyun 	u8 regkgrad1dark;
86*4882a593Smuzhiyun 	u8 regstrengthglobal_fix;
87*4882a593Smuzhiyun 	u8 regdarkthrestep;
88*4882a593Smuzhiyun 	u8 regkgrad2;
89*4882a593Smuzhiyun 	u8 regkgrad1;
90*4882a593Smuzhiyun 	u8 reggbthre;
91*4882a593Smuzhiyun 
92*4882a593Smuzhiyun 	u16 regmaxcorv;
93*4882a593Smuzhiyun 	u16 regmingradthr2;
94*4882a593Smuzhiyun 	u16 regmingradthr1;
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun 	u8 gr_ratio;
97*4882a593Smuzhiyun 	u8 noise_scale;
98*4882a593Smuzhiyun 	u16 noise_base;
99*4882a593Smuzhiyun 	u16 diff_clip;
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun 	u16 sigma_y[ISP2X_GIC_SIGMA_Y_NUM];
102*4882a593Smuzhiyun } __attribute__ ((packed));
103*4882a593Smuzhiyun 
104*4882a593Smuzhiyun struct isp21_baynr_cfg {
105*4882a593Smuzhiyun 	u8 sw_baynr_gauss_en;
106*4882a593Smuzhiyun 	u8 sw_baynr_log_bypass;
107*4882a593Smuzhiyun 	u16 sw_baynr_dgain1;
108*4882a593Smuzhiyun 	u16 sw_baynr_dgain0;
109*4882a593Smuzhiyun 	u16 sw_baynr_dgain2;
110*4882a593Smuzhiyun 	u16 sw_baynr_pix_diff;
111*4882a593Smuzhiyun 	u16 sw_baynr_diff_thld;
112*4882a593Smuzhiyun 	u16 sw_baynr_softthld;
113*4882a593Smuzhiyun 	u16 sw_bltflt_streng;
114*4882a593Smuzhiyun 	u16 sw_baynr_reg_w1;
115*4882a593Smuzhiyun 	u16 sw_sigma_x[ISP21_BAYNR_XY_NUM];
116*4882a593Smuzhiyun 	u16 sw_sigma_y[ISP21_BAYNR_XY_NUM];
117*4882a593Smuzhiyun 	u16 weit_d2;
118*4882a593Smuzhiyun 	u16 weit_d1;
119*4882a593Smuzhiyun 	u16 weit_d0;
120*4882a593Smuzhiyun } __attribute__ ((packed));
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun struct isp21_bay3d_cfg {
123*4882a593Smuzhiyun 	u8 sw_bay3d_exp_sel;
124*4882a593Smuzhiyun 	u8 sw_bay3d_bypass_en;
125*4882a593Smuzhiyun 	u8 sw_bay3d_pk_en;
126*4882a593Smuzhiyun 	u16 sw_bay3d_softwgt;
127*4882a593Smuzhiyun 	u16 sw_bay3d_sigratio;
128*4882a593Smuzhiyun 	u32 sw_bay3d_glbpk2;
129*4882a593Smuzhiyun 	u16 sw_bay3d_exp_str;
130*4882a593Smuzhiyun 	u16 sw_bay3d_str;
131*4882a593Smuzhiyun 	u16 sw_bay3d_wgtlmt_h;
132*4882a593Smuzhiyun 	u16 sw_bay3d_wgtlmt_l;
133*4882a593Smuzhiyun 	u16 sw_bay3d_sig_x[ISP21_BAY3D_XY_NUM];
134*4882a593Smuzhiyun 	u16 sw_bay3d_sig_y[ISP21_BAY3D_XY_NUM];
135*4882a593Smuzhiyun } __attribute__ ((packed));
136*4882a593Smuzhiyun 
137*4882a593Smuzhiyun struct isp21_ynr_cfg {
138*4882a593Smuzhiyun 	u8 sw_ynr_thumb_mix_cur_en;
139*4882a593Smuzhiyun 	u8 sw_ynr_global_gain_alpha;
140*4882a593Smuzhiyun 	u8 sw_ynr_global_gain;
141*4882a593Smuzhiyun 	u8 sw_ynr_flt1x1_bypass_sel;
142*4882a593Smuzhiyun 	u8 sw_ynr_sft5x5_bypass;
143*4882a593Smuzhiyun 	u8 sw_ynr_flt1x1_bypass;
144*4882a593Smuzhiyun 	u8 sw_ynr_lgft3x3_bypass;
145*4882a593Smuzhiyun 	u8 sw_ynr_lbft5x5_bypass;
146*4882a593Smuzhiyun 	u8 sw_ynr_bft3x3_bypass;
147*4882a593Smuzhiyun 
148*4882a593Smuzhiyun 	u16 sw_ynr_rnr_max_r;
149*4882a593Smuzhiyun 
150*4882a593Smuzhiyun 	u16 sw_ynr_low_bf_inv1;
151*4882a593Smuzhiyun 	u16 sw_ynr_low_bf_inv0;
152*4882a593Smuzhiyun 
153*4882a593Smuzhiyun 	u16 sw_ynr_low_peak_supress;
154*4882a593Smuzhiyun 	u16 sw_ynr_low_thred_adj;
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun 	u16 sw_ynr_low_dist_adj;
157*4882a593Smuzhiyun 	u16 sw_ynr_low_edge_adj_thresh;
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun 	u16 sw_ynr_low_bi_weight;
160*4882a593Smuzhiyun 	u16 sw_ynr_low_weight;
161*4882a593Smuzhiyun 	u16 sw_ynr_low_center_weight;
162*4882a593Smuzhiyun 	u16 sw_ynr_hi_min_adj;
163*4882a593Smuzhiyun 	u16 sw_ynr_high_thred_adj;
164*4882a593Smuzhiyun 	u8 sw_ynr_high_retain_weight;
165*4882a593Smuzhiyun 	u8 sw_ynr_hi_edge_thed;
166*4882a593Smuzhiyun 	u8 sw_ynr_base_filter_weight2;
167*4882a593Smuzhiyun 	u8 sw_ynr_base_filter_weight1;
168*4882a593Smuzhiyun 	u8 sw_ynr_base_filter_weight0;
169*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss1_coeff2;
170*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss1_coeff1;
171*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss1_coeff0;
172*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss2_coeff2;
173*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss2_coeff1;
174*4882a593Smuzhiyun 	u16 sw_ynr_low_gauss2_coeff0;
175*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight3;
176*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight2;
177*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight1;
178*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight0;
179*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight7;
180*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight6;
181*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight5;
182*4882a593Smuzhiyun 	u8 sw_ynr_direction_weight4;
183*4882a593Smuzhiyun 	u16 sw_ynr_luma_points_x[ISP21_YNR_XY_NUM];
184*4882a593Smuzhiyun 	u16 sw_ynr_lsgm_y[ISP21_YNR_XY_NUM];
185*4882a593Smuzhiyun 	u16 sw_ynr_hsgm_y[ISP21_YNR_XY_NUM];
186*4882a593Smuzhiyun 	u8 sw_ynr_rnr_strength3[ISP21_YNR_XY_NUM];
187*4882a593Smuzhiyun } __attribute__ ((packed));
188*4882a593Smuzhiyun 
189*4882a593Smuzhiyun struct isp21_cnr_cfg {
190*4882a593Smuzhiyun 	u8 sw_cnr_thumb_mix_cur_en;
191*4882a593Smuzhiyun 	u8 sw_cnr_lq_bila_bypass;
192*4882a593Smuzhiyun 	u8 sw_cnr_hq_bila_bypass;
193*4882a593Smuzhiyun 	u8 sw_cnr_exgain_bypass;
194*4882a593Smuzhiyun 	u8 sw_cnr_exgain_mux;
195*4882a593Smuzhiyun 	u8 sw_cnr_gain_iso;
196*4882a593Smuzhiyun 	u8 sw_cnr_gain_offset;
197*4882a593Smuzhiyun 	u8 sw_cnr_gain_1sigma;
198*4882a593Smuzhiyun 	u8 sw_cnr_gain_uvgain1;
199*4882a593Smuzhiyun 	u8 sw_cnr_gain_uvgain0;
200*4882a593Smuzhiyun 	u8 sw_cnr_lmed3_alpha;
201*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_gain_y;
202*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_gain_c;
203*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_weit_d3;
204*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_weit_d2;
205*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_weit_d1;
206*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_weit_d0;
207*4882a593Smuzhiyun 	u8 sw_cnr_lbf5_weit_d4;
208*4882a593Smuzhiyun 	u8 sw_cnr_hmed3_alpha;
209*4882a593Smuzhiyun 	u16 sw_cnr_hbf5_weit_src;
210*4882a593Smuzhiyun 	u16 sw_cnr_hbf5_min_wgt;
211*4882a593Smuzhiyun 	u16 sw_cnr_hbf5_sigma;
212*4882a593Smuzhiyun 	u16 sw_cnr_lbf5_weit_src;
213*4882a593Smuzhiyun 	u16 sw_cnr_lbf3_sigma;
214*4882a593Smuzhiyun } __attribute__ ((packed));
215*4882a593Smuzhiyun 
216*4882a593Smuzhiyun struct isp21_sharp_cfg {
217*4882a593Smuzhiyun 	u8 sw_sharp_bypass;
218*4882a593Smuzhiyun 	u8 sw_sharp_sharp_ratio;
219*4882a593Smuzhiyun 	u8 sw_sharp_bf_ratio;
220*4882a593Smuzhiyun 	u8 sw_sharp_gaus_ratio;
221*4882a593Smuzhiyun 	u8 sw_sharp_pbf_ratio;
222*4882a593Smuzhiyun 	u8 sw_sharp_luma_dx[ISP21_SHARP_X_NUM];
223*4882a593Smuzhiyun 	u16 sw_sharp_pbf_sigma_inv[ISP21_SHARP_Y_NUM];
224*4882a593Smuzhiyun 	u16 sw_sharp_bf_sigma_inv[ISP21_SHARP_Y_NUM];
225*4882a593Smuzhiyun 	u8 sw_sharp_bf_sigma_shift;
226*4882a593Smuzhiyun 	u8 sw_sharp_pbf_sigma_shift;
227*4882a593Smuzhiyun 	u16 sw_sharp_ehf_th[ISP21_SHARP_Y_NUM];
228*4882a593Smuzhiyun 	u16 sw_sharp_clip_hf[ISP21_SHARP_Y_NUM];
229*4882a593Smuzhiyun 	u8 sw_sharp_pbf_coef_2;
230*4882a593Smuzhiyun 	u8 sw_sharp_pbf_coef_1;
231*4882a593Smuzhiyun 	u8 sw_sharp_pbf_coef_0;
232*4882a593Smuzhiyun 	u8 sw_sharp_bf_coef_2;
233*4882a593Smuzhiyun 	u8 sw_sharp_bf_coef_1;
234*4882a593Smuzhiyun 	u8 sw_sharp_bf_coef_0;
235*4882a593Smuzhiyun 	u8 sw_sharp_gaus_coef_2;
236*4882a593Smuzhiyun 	u8 sw_sharp_gaus_coef_1;
237*4882a593Smuzhiyun 	u8 sw_sharp_gaus_coef_0;
238*4882a593Smuzhiyun } __attribute__ ((packed));
239*4882a593Smuzhiyun 
240*4882a593Smuzhiyun struct isp21_ccm_cfg {
241*4882a593Smuzhiyun 	u8 highy_adjust_dis;
242*4882a593Smuzhiyun 	u8 bound_bit;
243*4882a593Smuzhiyun 
244*4882a593Smuzhiyun 	s16 coeff0_r;
245*4882a593Smuzhiyun 	s16 coeff1_r;
246*4882a593Smuzhiyun 	s16 coeff2_r;
247*4882a593Smuzhiyun 	s16 offset_r;
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun 	s16 coeff0_g;
250*4882a593Smuzhiyun 	s16 coeff1_g;
251*4882a593Smuzhiyun 	s16 coeff2_g;
252*4882a593Smuzhiyun 	s16 offset_g;
253*4882a593Smuzhiyun 
254*4882a593Smuzhiyun 	s16 coeff0_b;
255*4882a593Smuzhiyun 	s16 coeff1_b;
256*4882a593Smuzhiyun 	s16 coeff2_b;
257*4882a593Smuzhiyun 	s16 offset_b;
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun 	u16 coeff0_y;
260*4882a593Smuzhiyun 	u16 coeff1_y;
261*4882a593Smuzhiyun 	u16 coeff2_y;
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun 	u16 alp_y[ISP21_DHAZ_ENH_CURVE_NUM];
264*4882a593Smuzhiyun } __attribute__ ((packed));
265*4882a593Smuzhiyun 
266*4882a593Smuzhiyun struct isp21_dhaz_cfg {
267*4882a593Smuzhiyun 	u8 enhance_en;
268*4882a593Smuzhiyun 	u8 air_lc_en;
269*4882a593Smuzhiyun 	u8 hpara_en;
270*4882a593Smuzhiyun 	u8 hist_en;
271*4882a593Smuzhiyun 	u8 dc_en;
272*4882a593Smuzhiyun 
273*4882a593Smuzhiyun 	u8 yblk_th;
274*4882a593Smuzhiyun 	u8 yhist_th;
275*4882a593Smuzhiyun 	u8 dc_max_th;
276*4882a593Smuzhiyun 	u8 dc_min_th;
277*4882a593Smuzhiyun 
278*4882a593Smuzhiyun 	u16 wt_max;
279*4882a593Smuzhiyun 	u8 bright_max;
280*4882a593Smuzhiyun 	u8 bright_min;
281*4882a593Smuzhiyun 
282*4882a593Smuzhiyun 	u8 tmax_base;
283*4882a593Smuzhiyun 	u8 dark_th;
284*4882a593Smuzhiyun 	u8 air_max;
285*4882a593Smuzhiyun 	u8 air_min;
286*4882a593Smuzhiyun 
287*4882a593Smuzhiyun 	u16 tmax_max;
288*4882a593Smuzhiyun 	u16 tmax_off;
289*4882a593Smuzhiyun 
290*4882a593Smuzhiyun 	u8 hist_k;
291*4882a593Smuzhiyun 	u8 hist_th_off;
292*4882a593Smuzhiyun 	u16 hist_min;
293*4882a593Smuzhiyun 
294*4882a593Smuzhiyun 	u16 hist_gratio;
295*4882a593Smuzhiyun 	u16 hist_scale;
296*4882a593Smuzhiyun 
297*4882a593Smuzhiyun 	u16 enhance_value;
298*4882a593Smuzhiyun 	u16 enhance_chroma;
299*4882a593Smuzhiyun 
300*4882a593Smuzhiyun 	u16 iir_wt_sigma;
301*4882a593Smuzhiyun 	u16 iir_sigma;
302*4882a593Smuzhiyun 	u16 stab_fnum;
303*4882a593Smuzhiyun 
304*4882a593Smuzhiyun 	u16 iir_tmax_sigma;
305*4882a593Smuzhiyun 	u16 iir_air_sigma;
306*4882a593Smuzhiyun 	u8 iir_pre_wet;
307*4882a593Smuzhiyun 
308*4882a593Smuzhiyun 	u16 cfg_wt;
309*4882a593Smuzhiyun 	u16 cfg_air;
310*4882a593Smuzhiyun 	u16 cfg_alpha;
311*4882a593Smuzhiyun 
312*4882a593Smuzhiyun 	u16 cfg_gratio;
313*4882a593Smuzhiyun 	u16 cfg_tmax;
314*4882a593Smuzhiyun 
315*4882a593Smuzhiyun 	u16 range_sima;
316*4882a593Smuzhiyun 	u8 space_sigma_pre;
317*4882a593Smuzhiyun 	u8 space_sigma_cur;
318*4882a593Smuzhiyun 
319*4882a593Smuzhiyun 	u16 dc_weitcur;
320*4882a593Smuzhiyun 	u16 bf_weight;
321*4882a593Smuzhiyun 
322*4882a593Smuzhiyun 	u16 enh_curve[ISP21_DHAZ_ENH_CURVE_NUM];
323*4882a593Smuzhiyun 
324*4882a593Smuzhiyun 	u8 gaus_h2;
325*4882a593Smuzhiyun 	u8 gaus_h1;
326*4882a593Smuzhiyun 	u8 gaus_h0;
327*4882a593Smuzhiyun } __attribute__ ((packed));
328*4882a593Smuzhiyun 
329*4882a593Smuzhiyun struct isp21_dhaz_stat {
330*4882a593Smuzhiyun 	u16 dhaz_adp_air_base;
331*4882a593Smuzhiyun 	u16 dhaz_adp_wt;
332*4882a593Smuzhiyun 
333*4882a593Smuzhiyun 	u16 dhaz_adp_gratio;
334*4882a593Smuzhiyun 	u16 dhaz_adp_tmax;
335*4882a593Smuzhiyun 
336*4882a593Smuzhiyun 	u16 h_rgb_iir[ISP21_DHAZ_HIST_IIR_NUM];
337*4882a593Smuzhiyun } __attribute__ ((packed));
338*4882a593Smuzhiyun 
339*4882a593Smuzhiyun struct isp21_drc_cfg {
340*4882a593Smuzhiyun 	u8 sw_drc_offset_pow2;
341*4882a593Smuzhiyun 	u16 sw_drc_compres_scl;
342*4882a593Smuzhiyun 	u16 sw_drc_position;
343*4882a593Smuzhiyun 	u16 sw_drc_delta_scalein;
344*4882a593Smuzhiyun 	u16 sw_drc_hpdetail_ratio;
345*4882a593Smuzhiyun 	u16 sw_drc_lpdetail_ratio;
346*4882a593Smuzhiyun 	u8 sw_drc_weicur_pix;
347*4882a593Smuzhiyun 	u8 sw_drc_weipre_frame;
348*4882a593Smuzhiyun 	u16 sw_drc_force_sgm_inv0;
349*4882a593Smuzhiyun 	u8 sw_drc_motion_scl;
350*4882a593Smuzhiyun 	u8 sw_drc_edge_scl;
351*4882a593Smuzhiyun 	u16 sw_drc_space_sgm_inv1;
352*4882a593Smuzhiyun 	u16 sw_drc_space_sgm_inv0;
353*4882a593Smuzhiyun 	u16 sw_drc_range_sgm_inv1;
354*4882a593Smuzhiyun 	u16 sw_drc_range_sgm_inv0;
355*4882a593Smuzhiyun 	u8 sw_drc_weig_maxl;
356*4882a593Smuzhiyun 	u8 sw_drc_weig_bilat;
357*4882a593Smuzhiyun 	u16 sw_drc_gain_y[ISP21_DRC_Y_NUM];
358*4882a593Smuzhiyun 	u16 sw_drc_compres_y[ISP21_DRC_Y_NUM];
359*4882a593Smuzhiyun 	u16 sw_drc_scale_y[ISP21_DRC_Y_NUM];
360*4882a593Smuzhiyun 	u16 sw_drc_iir_weight;
361*4882a593Smuzhiyun 	u16 sw_drc_min_ogain;
362*4882a593Smuzhiyun } __attribute__ ((packed));
363*4882a593Smuzhiyun 
364*4882a593Smuzhiyun struct isp21_rawawb_meas_cfg {
365*4882a593Smuzhiyun 	u8 rawawb_sel;
366*4882a593Smuzhiyun 	u8 sw_rawawb_xy_en0;
367*4882a593Smuzhiyun 	u8 sw_rawawb_uv_en0;
368*4882a593Smuzhiyun 	u8 sw_rawawb_xy_en1;
369*4882a593Smuzhiyun 	u8 sw_rawawb_uv_en1;
370*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_en0;
371*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_en1;
372*4882a593Smuzhiyun 	u8 sw_rawawb_wp_blk_wei_en0;
373*4882a593Smuzhiyun 	u8 sw_rawawb_wp_blk_wei_en1;
374*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_wei_en0;
375*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_wei_en1;
376*4882a593Smuzhiyun 	u8 sw_rawlsc_bypass_en;
377*4882a593Smuzhiyun 	u8 sw_rawawb_blk_measure_enable;
378*4882a593Smuzhiyun 	u8 sw_rawawb_blk_measure_mode;
379*4882a593Smuzhiyun 	u8 sw_rawawb_blk_measure_xytype;
380*4882a593Smuzhiyun 	u8 sw_rawawb_blk_measure_illu_idx;
381*4882a593Smuzhiyun 	u8 sw_rawawb_wp_hist_xytype;
382*4882a593Smuzhiyun 	u8 sw_rawawb_light_num;
383*4882a593Smuzhiyun 	u8 sw_rawawb_wind_size;
384*4882a593Smuzhiyun 	u8 sw_rawawb_r_max;
385*4882a593Smuzhiyun 	u8 sw_rawawb_g_max;
386*4882a593Smuzhiyun 	u8 sw_rawawb_b_max;
387*4882a593Smuzhiyun 	u8 sw_rawawb_y_max;
388*4882a593Smuzhiyun 	u8 sw_rawawb_r_min;
389*4882a593Smuzhiyun 	u8 sw_rawawb_g_min;
390*4882a593Smuzhiyun 	u8 sw_rawawb_b_min;
391*4882a593Smuzhiyun 	u8 sw_rawawb_y_min;
392*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_ls_idx0;
393*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_ls_idx1;
394*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_ls_idx2;
395*4882a593Smuzhiyun 	u8 sw_rawawb_3dyuv_ls_idx3;
396*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region0_excen0;
397*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region0_excen1;
398*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region0_domain;
399*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region1_excen0;
400*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region1_excen1;
401*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region1_domain;
402*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region2_excen0;
403*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region2_excen1;
404*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region2_domain;
405*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region3_excen0;
406*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region3_excen1;
407*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region3_domain;
408*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region4_excen0;
409*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region4_excen1;
410*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region4_domain;
411*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region5_excen0;
412*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region5_excen1;
413*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region5_domain;
414*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region6_excen0;
415*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region6_excen1;
416*4882a593Smuzhiyun 	u8 sw_rawawb_exc_wp_region6_domain;
417*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y0;
418*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y1;
419*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y2;
420*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y3;
421*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y4;
422*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y5;
423*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y6;
424*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y7;
425*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_y8;
426*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w0;
427*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w1;
428*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w2;
429*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w3;
430*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w4;
431*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w5;
432*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w6;
433*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w7;
434*4882a593Smuzhiyun 	u8 sw_rawawb_wp_luma_weicurve_w8;
435*4882a593Smuzhiyun 	u8 sw_rawawb_rotu0_ls0;
436*4882a593Smuzhiyun 	u8 sw_rawawb_rotu1_ls0;
437*4882a593Smuzhiyun 	u8 sw_rawawb_rotu2_ls0;
438*4882a593Smuzhiyun 	u8 sw_rawawb_rotu3_ls0;
439*4882a593Smuzhiyun 	u8 sw_rawawb_rotu4_ls0;
440*4882a593Smuzhiyun 	u8 sw_rawawb_rotu5_ls0;
441*4882a593Smuzhiyun 	u8 sw_rawawb_dis_x1x2_ls0;
442*4882a593Smuzhiyun 	u8 sw_rawawb_rotu0_ls1;
443*4882a593Smuzhiyun 	u8 sw_rawawb_rotu1_ls1;
444*4882a593Smuzhiyun 	u8 sw_rawawb_rotu2_ls1;
445*4882a593Smuzhiyun 	u8 sw_rawawb_rotu3_ls1;
446*4882a593Smuzhiyun 	u8 sw_rawawb_rotu4_ls1;
447*4882a593Smuzhiyun 	u8 sw_rawawb_rotu5_ls1;
448*4882a593Smuzhiyun 	u8 sw_rawawb_dis_x1x2_ls1;
449*4882a593Smuzhiyun 	u8 sw_rawawb_rotu0_ls2;
450*4882a593Smuzhiyun 	u8 sw_rawawb_rotu1_ls2;
451*4882a593Smuzhiyun 	u8 sw_rawawb_rotu2_ls2;
452*4882a593Smuzhiyun 	u8 sw_rawawb_rotu3_ls2;
453*4882a593Smuzhiyun 	u8 sw_rawawb_rotu4_ls2;
454*4882a593Smuzhiyun 	u8 sw_rawawb_rotu5_ls2;
455*4882a593Smuzhiyun 	u8 sw_rawawb_dis_x1x2_ls2;
456*4882a593Smuzhiyun 	u8 sw_rawawb_rotu0_ls3;
457*4882a593Smuzhiyun 	u8 sw_rawawb_rotu1_ls3;
458*4882a593Smuzhiyun 	u8 sw_rawawb_rotu2_ls3;
459*4882a593Smuzhiyun 	u8 sw_rawawb_rotu3_ls3;
460*4882a593Smuzhiyun 	u8 sw_rawawb_rotu4_ls3;
461*4882a593Smuzhiyun 	u8 sw_rawawb_rotu5_ls3;
462*4882a593Smuzhiyun 	u8 sw_rawawb_dis_x1x2_ls3;
463*4882a593Smuzhiyun 	u8 sw_rawawb_blk_rtdw_measure_en;
464*4882a593Smuzhiyun 	u8 sw_rawawb_blk_with_luma_wei_en;
465*4882a593Smuzhiyun 	u8 sw_rawawb_wp_blk_wei_w[ISP21_RAWAWB_WEIGHT_NUM];
466*4882a593Smuzhiyun 
467*4882a593Smuzhiyun 	u16 sw_rawawb_h_offs;
468*4882a593Smuzhiyun 	u16 sw_rawawb_v_offs;
469*4882a593Smuzhiyun 	u16 sw_rawawb_h_size;
470*4882a593Smuzhiyun 	u16 sw_rawawb_v_size;
471*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_0;
472*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_0;
473*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_0;
474*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_0;
475*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_0;
476*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_0;
477*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_0;
478*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_0;
479*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_1;
480*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_1;
481*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_1;
482*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_1;
483*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_1;
484*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_1;
485*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_1;
486*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_1;
487*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_2;
488*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_2;
489*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_2;
490*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_2;
491*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_2;
492*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_2;
493*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_2;
494*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_2;
495*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_3;
496*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_3;
497*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_3;
498*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_3;
499*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_3;
500*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_3;
501*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_3;
502*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_3;
503*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_4;
504*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_4;
505*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_4;
506*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_4;
507*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_4;
508*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_4;
509*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_4;
510*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_4;
511*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_5;
512*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_5;
513*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_5;
514*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_5;
515*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_5;
516*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_5;
517*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_5;
518*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_5;
519*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_u_6;
520*4882a593Smuzhiyun 	u16 sw_rawawb_vertex0_v_6;
521*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_u_6;
522*4882a593Smuzhiyun 	u16 sw_rawawb_vertex1_v_6;
523*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_u_6;
524*4882a593Smuzhiyun 	u16 sw_rawawb_vertex2_v_6;
525*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_u_6;
526*4882a593Smuzhiyun 	u16 sw_rawawb_vertex3_v_6;
527*4882a593Smuzhiyun 
528*4882a593Smuzhiyun 	u16 sw_rawawb_wt0;
529*4882a593Smuzhiyun 	u16 sw_rawawb_wt1;
530*4882a593Smuzhiyun 	u16 sw_rawawb_wt2;
531*4882a593Smuzhiyun 	u16 sw_rawawb_mat0_x;
532*4882a593Smuzhiyun 	u16 sw_rawawb_mat1_x;
533*4882a593Smuzhiyun 	u16 sw_rawawb_mat2_x;
534*4882a593Smuzhiyun 	u16 sw_rawawb_mat0_y;
535*4882a593Smuzhiyun 	u16 sw_rawawb_mat1_y;
536*4882a593Smuzhiyun 	u16 sw_rawawb_mat2_y;
537*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_0;
538*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_0;
539*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_0;
540*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_0;
541*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_0;
542*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_0;
543*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_0;
544*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_0;
545*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_1;
546*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_1;
547*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_1;
548*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_1;
549*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_1;
550*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_1;
551*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_1;
552*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_1;
553*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_2;
554*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_2;
555*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_2;
556*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_2;
557*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_2;
558*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_2;
559*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_2;
560*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_2;
561*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_3;
562*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_3;
563*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_3;
564*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_3;
565*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_3;
566*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_3;
567*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_3;
568*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_3;
569*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_4;
570*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_4;
571*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_4;
572*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_4;
573*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_4;
574*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_4;
575*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_4;
576*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_4;
577*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_5;
578*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_5;
579*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_5;
580*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_5;
581*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_5;
582*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_5;
583*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_5;
584*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_5;
585*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x0_6;
586*4882a593Smuzhiyun 	u16 sw_rawawb_nor_x1_6;
587*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y0_6;
588*4882a593Smuzhiyun 	u16 sw_rawawb_nor_y1_6;
589*4882a593Smuzhiyun 	u16 sw_rawawb_big_x0_6;
590*4882a593Smuzhiyun 	u16 sw_rawawb_big_x1_6;
591*4882a593Smuzhiyun 	u16 sw_rawawb_big_y0_6;
592*4882a593Smuzhiyun 	u16 sw_rawawb_big_y1_6;
593*4882a593Smuzhiyun 	u16 sw_rawawb_pre_wbgain_inv_r;
594*4882a593Smuzhiyun 	u16 sw_rawawb_pre_wbgain_inv_g;
595*4882a593Smuzhiyun 	u16 sw_rawawb_pre_wbgain_inv_b;
596*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region0_xu0;
597*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region0_xu1;
598*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region0_yv0;
599*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region0_yv1;
600*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region1_xu0;
601*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region1_xu1;
602*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region1_yv0;
603*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region1_yv1;
604*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region2_xu0;
605*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region2_xu1;
606*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region2_yv0;
607*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region2_yv1;
608*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region3_xu0;
609*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region3_xu1;
610*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region3_yv0;
611*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region3_yv1;
612*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region4_xu0;
613*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region4_xu1;
614*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region4_yv0;
615*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region4_yv1;
616*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region5_xu0;
617*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region5_xu1;
618*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region5_yv0;
619*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region5_yv1;
620*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region6_xu0;
621*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region6_xu1;
622*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region6_yv0;
623*4882a593Smuzhiyun 	u16 sw_rawawb_exc_wp_region6_yv1;
624*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat0_u;
625*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat1_u;
626*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat2_u;
627*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvofs_u;
628*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat0_v;
629*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat1_v;
630*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat2_v;
631*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvofs_v;
632*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat0_y;
633*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat1_y;
634*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvmat2_y;
635*4882a593Smuzhiyun 	u16 sw_rawawb_rgb2ryuvofs_y;
636*4882a593Smuzhiyun 	u16 sw_rawawb_th0_ls0;
637*4882a593Smuzhiyun 	u16 sw_rawawb_th1_ls0;
638*4882a593Smuzhiyun 	u16 sw_rawawb_th2_ls0;
639*4882a593Smuzhiyun 	u16 sw_rawawb_th3_ls0;
640*4882a593Smuzhiyun 	u16 sw_rawawb_th4_ls0;
641*4882a593Smuzhiyun 	u16 sw_rawawb_th5_ls0;
642*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls0_u;
643*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls0_v;
644*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls0_y;
645*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls0_u;
646*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls0_v;
647*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls0_y;
648*4882a593Smuzhiyun 	u16 sw_rawawb_th0_ls1;
649*4882a593Smuzhiyun 	u16 sw_rawawb_th1_ls1;
650*4882a593Smuzhiyun 	u16 sw_rawawb_th2_ls1;
651*4882a593Smuzhiyun 	u16 sw_rawawb_th3_ls1;
652*4882a593Smuzhiyun 	u16 sw_rawawb_th4_ls1;
653*4882a593Smuzhiyun 	u16 sw_rawawb_th5_ls1;
654*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls1_u;
655*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls1_v;
656*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls1_y;
657*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls1_u;
658*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls1_v;
659*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls1_y;
660*4882a593Smuzhiyun 	u16 sw_rawawb_th0_ls2;
661*4882a593Smuzhiyun 	u16 sw_rawawb_th1_ls2;
662*4882a593Smuzhiyun 	u16 sw_rawawb_th2_ls2;
663*4882a593Smuzhiyun 	u16 sw_rawawb_th3_ls2;
664*4882a593Smuzhiyun 	u16 sw_rawawb_th4_ls2;
665*4882a593Smuzhiyun 	u16 sw_rawawb_th5_ls2;
666*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls2_u;
667*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls2_v;
668*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls2_y;
669*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls2_u;
670*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls2_v;
671*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls2_y;
672*4882a593Smuzhiyun 	u16 sw_rawawb_th0_ls3;
673*4882a593Smuzhiyun 	u16 sw_rawawb_th1_ls3;
674*4882a593Smuzhiyun 	u16 sw_rawawb_th2_ls3;
675*4882a593Smuzhiyun 	u16 sw_rawawb_th3_ls3;
676*4882a593Smuzhiyun 	u16 sw_rawawb_th4_ls3;
677*4882a593Smuzhiyun 	u16 sw_rawawb_th5_ls3;
678*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls3_u;
679*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls3_v;
680*4882a593Smuzhiyun 	u16 sw_rawawb_coor_x1_ls3_y;
681*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls3_u;
682*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls3_v;
683*4882a593Smuzhiyun 	u16 sw_rawawb_vec_x21_ls3_y;
684*4882a593Smuzhiyun 
685*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_0;
686*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_0;
687*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_0;
688*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_0;
689*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_1;
690*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_1;
691*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_1;
692*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_1;
693*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_2;
694*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_2;
695*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_2;
696*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_2;
697*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_3;
698*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_3;
699*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_3;
700*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_3;
701*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_4;
702*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_4;
703*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_4;
704*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_4;
705*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_5;
706*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_5;
707*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_5;
708*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_5;
709*4882a593Smuzhiyun 	u32 sw_rawawb_islope01_6;
710*4882a593Smuzhiyun 	u32 sw_rawawb_islope12_6;
711*4882a593Smuzhiyun 	u32 sw_rawawb_islope23_6;
712*4882a593Smuzhiyun 	u32 sw_rawawb_islope30_6;
713*4882a593Smuzhiyun } __attribute__ ((packed));
714*4882a593Smuzhiyun 
715*4882a593Smuzhiyun struct isp21_isp_other_cfg {
716*4882a593Smuzhiyun 	struct isp21_bls_cfg bls_cfg;
717*4882a593Smuzhiyun 	struct isp2x_dpcc_cfg dpcc_cfg;
718*4882a593Smuzhiyun 	struct isp2x_lsc_cfg lsc_cfg;
719*4882a593Smuzhiyun 	struct isp21_awb_gain_cfg awb_gain_cfg;
720*4882a593Smuzhiyun 	struct isp21_gic_cfg gic_cfg;
721*4882a593Smuzhiyun 	struct isp2x_debayer_cfg debayer_cfg;
722*4882a593Smuzhiyun 	struct isp21_ccm_cfg ccm_cfg;
723*4882a593Smuzhiyun 	struct isp2x_gammaout_cfg gammaout_cfg;
724*4882a593Smuzhiyun 	struct isp2x_cproc_cfg cproc_cfg;
725*4882a593Smuzhiyun 	struct isp2x_ie_cfg ie_cfg;
726*4882a593Smuzhiyun 	struct isp2x_sdg_cfg sdg_cfg;
727*4882a593Smuzhiyun 	struct isp21_drc_cfg drc_cfg;
728*4882a593Smuzhiyun 	struct isp2x_hdrmge_cfg hdrmge_cfg;
729*4882a593Smuzhiyun 	struct isp21_dhaz_cfg dhaz_cfg;
730*4882a593Smuzhiyun 	struct isp2x_3dlut_cfg isp3dlut_cfg;
731*4882a593Smuzhiyun 	struct isp2x_ldch_cfg ldch_cfg;
732*4882a593Smuzhiyun 	struct isp21_baynr_cfg baynr_cfg;
733*4882a593Smuzhiyun 	struct isp21_bay3d_cfg bay3d_cfg;
734*4882a593Smuzhiyun 	struct isp21_ynr_cfg ynr_cfg;
735*4882a593Smuzhiyun 	struct isp21_cnr_cfg cnr_cfg;
736*4882a593Smuzhiyun 	struct isp21_sharp_cfg sharp_cfg;
737*4882a593Smuzhiyun 	struct isp21_csm_cfg csm_cfg;
738*4882a593Smuzhiyun 	struct isp21_cgc_cfg cgc_cfg;
739*4882a593Smuzhiyun } __attribute__ ((packed));
740*4882a593Smuzhiyun 
741*4882a593Smuzhiyun struct isp21_isp_meas_cfg {
742*4882a593Smuzhiyun 	struct isp2x_siawb_meas_cfg siawb;
743*4882a593Smuzhiyun 	struct isp21_rawawb_meas_cfg rawawb;
744*4882a593Smuzhiyun 	struct isp2x_rawaelite_meas_cfg rawae0;
745*4882a593Smuzhiyun 	struct isp2x_rawaebig_meas_cfg rawae1;
746*4882a593Smuzhiyun 	struct isp2x_rawaebig_meas_cfg rawae2;
747*4882a593Smuzhiyun 	struct isp2x_rawaebig_meas_cfg rawae3;
748*4882a593Smuzhiyun 	struct isp2x_yuvae_meas_cfg yuvae;
749*4882a593Smuzhiyun 	struct isp2x_rawaf_meas_cfg rawaf;
750*4882a593Smuzhiyun 	struct isp2x_siaf_cfg siaf;
751*4882a593Smuzhiyun 	struct isp2x_rawhistlite_cfg rawhist0;
752*4882a593Smuzhiyun 	struct isp2x_rawhistbig_cfg rawhist1;
753*4882a593Smuzhiyun 	struct isp2x_rawhistbig_cfg rawhist2;
754*4882a593Smuzhiyun 	struct isp2x_rawhistbig_cfg rawhist3;
755*4882a593Smuzhiyun 	struct isp2x_sihst_cfg sihst;
756*4882a593Smuzhiyun } __attribute__ ((packed));
757*4882a593Smuzhiyun 
758*4882a593Smuzhiyun struct isp21_isp_params_cfg {
759*4882a593Smuzhiyun 	u64 module_en_update;
760*4882a593Smuzhiyun 	u64 module_ens;
761*4882a593Smuzhiyun 	u64 module_cfg_update;
762*4882a593Smuzhiyun 
763*4882a593Smuzhiyun 	u32 frame_id;
764*4882a593Smuzhiyun 	struct isp21_isp_meas_cfg meas;
765*4882a593Smuzhiyun 	struct isp21_isp_other_cfg others;
766*4882a593Smuzhiyun } __attribute__ ((packed));
767*4882a593Smuzhiyun 
768*4882a593Smuzhiyun struct isp21_rawawb_meas_stat {
769*4882a593Smuzhiyun 	u16 ro_yhist_bin[ISP21_RAWAWB_HSTBIN_NUM];
770*4882a593Smuzhiyun 	u32 ro_rawawb_sum_rgain_nor[ISP2X_RAWAWB_SUM_NUM];
771*4882a593Smuzhiyun 	u32 ro_rawawb_sum_bgain_nor[ISP2X_RAWAWB_SUM_NUM];
772*4882a593Smuzhiyun 	u32 ro_rawawb_wp_num_nor[ISP2X_RAWAWB_SUM_NUM];
773*4882a593Smuzhiyun 	u32 ro_rawawb_sum_rgain_big[ISP2X_RAWAWB_SUM_NUM];
774*4882a593Smuzhiyun 	u32 ro_rawawb_sum_bgain_big[ISP2X_RAWAWB_SUM_NUM];
775*4882a593Smuzhiyun 	u32 ro_rawawb_wp_num_big[ISP2X_RAWAWB_SUM_NUM];
776*4882a593Smuzhiyun 	struct isp2x_rawawb_ramdata ramdata[ISP2X_RAWAWB_RAMDATA_NUM];
777*4882a593Smuzhiyun } __attribute__ ((packed));
778*4882a593Smuzhiyun 
779*4882a593Smuzhiyun struct isp21_stat {
780*4882a593Smuzhiyun 	struct isp2x_siawb_stat siawb;
781*4882a593Smuzhiyun 	struct isp21_rawawb_meas_stat rawawb;
782*4882a593Smuzhiyun 	struct isp2x_rawaelite_stat rawae0;
783*4882a593Smuzhiyun 	struct isp2x_rawaebig_stat rawae1;
784*4882a593Smuzhiyun 	struct isp2x_rawaebig_stat rawae2;
785*4882a593Smuzhiyun 	struct isp2x_rawaebig_stat rawae3;
786*4882a593Smuzhiyun 	struct isp2x_yuvae_stat yuvae;
787*4882a593Smuzhiyun 	struct isp2x_rawaf_stat rawaf;
788*4882a593Smuzhiyun 	struct isp2x_siaf_stat siaf;
789*4882a593Smuzhiyun 	struct isp2x_rawhistlite_stat rawhist0;
790*4882a593Smuzhiyun 	struct isp2x_rawhistbig_stat rawhist1;
791*4882a593Smuzhiyun 	struct isp2x_rawhistbig_stat rawhist2;
792*4882a593Smuzhiyun 	struct isp2x_rawhistbig_stat rawhist3;
793*4882a593Smuzhiyun 	struct isp2x_sihst_stat sihst;
794*4882a593Smuzhiyun 
795*4882a593Smuzhiyun 	struct isp2x_bls_stat bls;
796*4882a593Smuzhiyun 	struct isp21_dhaz_stat dhaz;
797*4882a593Smuzhiyun } __attribute__ ((packed));
798*4882a593Smuzhiyun 
799*4882a593Smuzhiyun /**
800*4882a593Smuzhiyun  * struct rkisp_isp21_stat_buffer - Rockchip ISP2 Statistics Meta Data
801*4882a593Smuzhiyun  *
802*4882a593Smuzhiyun  * @meas_type: measurement types (CIFISP_STAT_ definitions)
803*4882a593Smuzhiyun  * @frame_id: frame ID for sync
804*4882a593Smuzhiyun  * @params: statistics data
805*4882a593Smuzhiyun  */
806*4882a593Smuzhiyun struct rkisp_isp21_stat_buffer {
807*4882a593Smuzhiyun 	unsigned int meas_type;
808*4882a593Smuzhiyun 	unsigned int frame_id;
809*4882a593Smuzhiyun 	unsigned int params_id;
810*4882a593Smuzhiyun 	struct isp21_stat params;
811*4882a593Smuzhiyun } __attribute__ ((packed));
812*4882a593Smuzhiyun 
813*4882a593Smuzhiyun #endif /* _UAPI_RKISP21_CONFIG_H */
814