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_RK_ISP21_CONFIG_H 8*4882a593Smuzhiyun #define _UAPI_RK_ISP21_CONFIG_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #include <linux/const.h> 11*4882a593Smuzhiyun #include <linux/types.h> 12*4882a593Smuzhiyun #include <linux/v4l2-controls.h> 13*4882a593Smuzhiyun #include <linux/rk-isp2-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_RK_ISP21_CONFIG_H */ 814