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