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_RKISP21_CONFIG_H 8 #define _UAPI_RKISP21_CONFIG_H 9 10 #include <linux/types.h> 11 #include <linux/v4l2-controls.h> 12 13 #include "common/rkisp2-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_RKISP21_CONFIG_H */ 814