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