1 /* SPDX-License-Identifier: (GPL-2.0+ WITH Linux-syscall-note) OR MIT 2 * 3 * Rockchip ISP3 4 * Copyright (C) 2021 Rockchip Electronics Co., Ltd. 5 */ 6 7 #ifndef _UAPI_RKISP3_CONFIG_H 8 #define _UAPI_RKISP3_CONFIG_H 9 10 #include <linux/types.h> 11 #include <linux/v4l2-controls.h> 12 #include <linux/rkisp21-config.h> 13 14 #define ISP3X_MODULE_DPCC ISP2X_MODULE_DPCC 15 #define ISP3X_MODULE_BLS ISP2X_MODULE_BLS 16 #define ISP3X_MODULE_SDG ISP2X_MODULE_SDG 17 #define ISP3X_MODULE_LSC ISP2X_MODULE_LSC 18 #define ISP3X_MODULE_AWB_GAIN ISP2X_MODULE_AWB_GAIN 19 #define ISP3X_MODULE_BDM ISP2X_MODULE_BDM 20 #define ISP3X_MODULE_CCM ISP2X_MODULE_CCM 21 #define ISP3X_MODULE_GOC ISP2X_MODULE_GOC 22 #define ISP3X_MODULE_CPROC ISP2X_MODULE_CPROC 23 #define ISP3X_MODULE_IE ISP2X_MODULE_IE 24 #define ISP3X_MODULE_RAWAF ISP2X_MODULE_RAWAF 25 #define ISP3X_MODULE_RAWAE0 ISP2X_MODULE_RAWAE0 26 #define ISP3X_MODULE_RAWAE1 ISP2X_MODULE_RAWAE1 27 #define ISP3X_MODULE_RAWAE2 ISP2X_MODULE_RAWAE2 28 #define ISP3X_MODULE_RAWAE3 ISP2X_MODULE_RAWAE3 29 #define ISP3X_MODULE_RAWAWB ISP2X_MODULE_RAWAWB 30 #define ISP3X_MODULE_RAWHIST0 ISP2X_MODULE_RAWHIST0 31 #define ISP3X_MODULE_RAWHIST1 ISP2X_MODULE_RAWHIST1 32 #define ISP3X_MODULE_RAWHIST2 ISP2X_MODULE_RAWHIST2 33 #define ISP3X_MODULE_RAWHIST3 ISP2X_MODULE_RAWHIST3 34 #define ISP3X_MODULE_HDRMGE ISP2X_MODULE_HDRMGE 35 #define ISP3X_MODULE_RAWNR ISP2X_MODULE_RAWNR 36 #define ISP3X_MODULE_GIC ISP2X_MODULE_GIC 37 #define ISP3X_MODULE_DHAZ ISP2X_MODULE_DHAZ 38 #define ISP3X_MODULE_3DLUT ISP2X_MODULE_3DLUT 39 #define ISP3X_MODULE_LDCH ISP2X_MODULE_LDCH 40 #define ISP3X_MODULE_GAIN ISP2X_MODULE_GAIN 41 #define ISP3X_MODULE_DEBAYER ISP2X_MODULE_DEBAYER 42 #define ISP3X_MODULE_BAYNR ISP2X_MODULE_BAYNR 43 #define ISP3X_MODULE_BAY3D ISP2X_MODULE_BAY3D 44 #define ISP3X_MODULE_YNR ISP2X_MODULE_YNR 45 #define ISP3X_MODULE_CNR ISP2X_MODULE_CNR 46 #define ISP3X_MODULE_SHARP ISP2X_MODULE_SHARP 47 #define ISP3X_MODULE_DRC ISP2X_MODULE_DRC 48 #define ISP3X_MODULE_CAC BIT_ULL(42) 49 #define ISP3X_MODULE_CSM ISP2X_MODULE_CSM 50 51 /* Measurement types */ 52 #define ISP3X_STAT_RAWAWB ISP2X_STAT_RAWAWB 53 #define ISP3X_STAT_RAWAF ISP2X_STAT_RAWAF 54 #define ISP3X_STAT_RAWAE0 ISP2X_STAT_RAWAE0 55 #define ISP3X_STAT_RAWAE1 ISP2X_STAT_RAWAE1 56 #define ISP3X_STAT_RAWAE2 ISP2X_STAT_RAWAE2 57 #define ISP3X_STAT_RAWAE3 ISP2X_STAT_RAWAE3 58 #define ISP3X_STAT_RAWHST0 ISP2X_STAT_RAWHST0 59 #define ISP3X_STAT_RAWHST1 ISP2X_STAT_RAWHST1 60 #define ISP3X_STAT_RAWHST2 ISP2X_STAT_RAWHST2 61 #define ISP3X_STAT_RAWHST3 ISP2X_STAT_RAWHST3 62 #define ISP3X_STAT_BLS ISP2X_STAT_BLS 63 #define ISP3X_STAT_DHAZ ISP2X_STAT_DHAZ 64 65 #define ISP3X_MESH_BUF_NUM ISP2X_MESH_BUF_NUM 66 67 #define ISP3X_LSC_GRAD_TBL_SIZE 16 68 #define ISP3X_LSC_SIZE_TBL_SIZE 16 69 #define ISP3X_LSC_DATA_TBL_SIZE ISP2X_LSC_DATA_TBL_SIZE 70 71 #define ISP3X_DEGAMMA_CURVE_SIZE ISP2X_DEGAMMA_CURVE_SIZE 72 73 #define ISP3X_GAIN_IDX_NUM ISP2X_GAIN_IDX_NUM 74 #define ISP3X_GAIN_LUT_NUM ISP2X_GAIN_LUT_NUM 75 76 #define ISP3X_RAWAWB_MULWD_NUM 4 77 #define ISP3X_RAWAWB_EXCL_STAT_NUM 4 78 #define ISP3X_RAWAWB_HSTBIN_NUM ISP21_RAWAWB_HSTBIN_NUM 79 #define ISP3X_RAWAWB_WEIGHT_NUM ISP21_RAWAWB_WEIGHT_NUM 80 #define ISP3X_RAWAWB_SUM_NUM ISP2X_RAWAWB_SUM_NUM 81 #define ISP3X_RAWAWB_RAMDATA_NUM ISP2X_RAWAWB_RAMDATA_NUM 82 83 #define ISP3X_RAWAEBIG_SUBWIN_NUM ISP2X_RAWAEBIG_SUBWIN_NUM 84 #define ISP3X_RAWAEBIG_MEAN_NUM ISP2X_RAWAEBIG_MEAN_NUM 85 #define ISP3X_RAWAELITE_MEAN_NUM ISP2X_RAWAELITE_MEAN_NUM 86 87 #define ISP3X_RAWHISTBIG_SUBWIN_NUM ISP2X_RAWHISTBIG_SUBWIN_NUM 88 #define ISP3X_RAWHISTLITE_SUBWIN_NUM ISP2X_RAWHISTLITE_SUBWIN_NUM 89 #define ISP3X_HIST_BIN_N_MAX ISP2X_HIST_BIN_N_MAX 90 91 #define ISP3X_RAWAF_CURVE_NUM 2 92 #define ISP3X_RAWAF_HIIR_COE_NUM 6 93 #define ISP3X_RAWAF_V1IIR_COE_NUM 9 94 #define ISP3X_RAWAF_V2IIR_COE_NUM 3 95 #define ISP3X_RAWAF_VFIR_COE_NUM 3 96 #define ISP3X_RAWAF_WIN_NUM ISP2X_RAWAF_WIN_NUM 97 #define ISP3X_RAWAF_LINE_NUM ISP2X_RAWAF_LINE_NUM 98 #define ISP3X_RAWAF_GAMMA_NUM ISP2X_RAWAF_GAMMA_NUM 99 #define ISP3X_RAWAF_SUMDATA_NUM ISP2X_RAWAF_SUMDATA_NUM 100 101 #define ISP3X_DPCC_PDAF_POINT_NUM ISP2X_DPCC_PDAF_POINT_NUM 102 103 #define ISP3X_HDRMGE_L_CURVE_NUM ISP2X_HDRMGE_L_CURVE_NUM 104 #define ISP3X_HDRMGE_E_CURVE_NUM ISP2X_HDRMGE_E_CURVE_NUM 105 106 #define ISP3X_GIC_SIGMA_Y_NUM ISP2X_GIC_SIGMA_Y_NUM 107 108 #define ISP3X_CCM_CURVE_NUM ISP2X_CCM_CURVE_NUM 109 110 #define ISP3X_3DLUT_DATA_NUM ISP2X_3DLUT_DATA_NUM 111 112 #define ISP3X_LDCH_MESH_XY_NUM ISP2X_LDCH_MESH_XY_NUM 113 114 #define ISP3X_GAMMA_OUT_MAX_SAMPLES 49 115 116 #define ISP3X_DHAZ_SIGMA_IDX_NUM 15 117 #define ISP3X_DHAZ_SIGMA_LUT_NUM 17 118 #define ISP3X_DHAZ_HIST_WR_NUM 64 119 #define ISP3X_DHAZ_ENH_CURVE_NUM ISP21_DHAZ_ENH_CURVE_NUM 120 #define ISP3X_DHAZ_HIST_IIR_NUM ISP21_DHAZ_HIST_IIR_NUM 121 122 #define ISP3X_DRC_Y_NUM ISP21_DRC_Y_NUM 123 124 #define ISP3X_CNR_SIGMA_Y_NUM 13 125 126 #define ISP3X_YNR_XY_NUM ISP21_YNR_XY_NUM 127 128 #define ISP3X_BAYNR_XY_NUM ISP21_BAYNR_XY_NUM 129 130 #define ISP3X_BAY3D_XY_NUM ISP21_BAY3D_XY_NUM 131 132 #define ISP3X_SHARP_X_NUM ISP21_SHARP_X_NUM 133 #define ISP3X_SHARP_Y_NUM ISP21_SHARP_Y_NUM 134 #define ISP3X_SHARP_GAUS_COEF_NUM 6 135 136 #define ISP3X_CAC_STRENGTH_NUM 22 137 138 #define ISP3X_CSM_COEFF_NUM ISP21_CSM_COEFF_NUM 139 140 enum isp3x_unite_id { 141 ISP3_LEFT = 0, 142 ISP3_RIGHT, 143 ISP3_UNITE_MAX, 144 }; 145 146 struct isp3x_gammaout_cfg { 147 u8 equ_segm; 148 u8 finalx4_dense_en; 149 u16 offset; 150 u16 gamma_y[ISP3X_GAMMA_OUT_MAX_SAMPLES]; 151 } __attribute__ ((packed)); 152 153 struct isp3x_lsc_cfg { 154 u8 sector_16x16; 155 156 u16 r_data_tbl[ISP3X_LSC_DATA_TBL_SIZE]; 157 u16 gr_data_tbl[ISP3X_LSC_DATA_TBL_SIZE]; 158 u16 gb_data_tbl[ISP3X_LSC_DATA_TBL_SIZE]; 159 u16 b_data_tbl[ISP3X_LSC_DATA_TBL_SIZE]; 160 161 u16 x_grad_tbl[ISP3X_LSC_GRAD_TBL_SIZE]; 162 u16 y_grad_tbl[ISP3X_LSC_GRAD_TBL_SIZE]; 163 164 u16 x_size_tbl[ISP3X_LSC_SIZE_TBL_SIZE]; 165 u16 y_size_tbl[ISP3X_LSC_SIZE_TBL_SIZE]; 166 } __attribute__ ((packed)); 167 168 struct isp3x_baynr_cfg { 169 u8 lg2_mode; 170 u8 gauss_en; 171 u8 log_bypass; 172 173 u16 dgain1; 174 u16 dgain0; 175 u16 dgain2; 176 177 u16 pix_diff; 178 179 u16 diff_thld; 180 u16 softthld; 181 182 u16 bltflt_streng; 183 u16 reg_w1; 184 185 u16 sigma_x[ISP3X_BAYNR_XY_NUM]; 186 u16 sigma_y[ISP3X_BAYNR_XY_NUM]; 187 188 u16 weit_d2; 189 u16 weit_d1; 190 u16 weit_d0; 191 192 u16 lg2_lgoff; 193 u16 lg2_off; 194 195 u32 dat_max; 196 } __attribute__ ((packed)); 197 198 struct isp3x_bay3d_cfg { 199 u8 bypass_en; 200 u8 hibypass_en; 201 u8 lobypass_en; 202 u8 himed_bypass_en; 203 u8 higaus_bypass_en; 204 u8 hiabs_possel; 205 u8 hichnsplit_en; 206 u8 lomed_bypass_en; 207 u8 logaus5_bypass_en; 208 u8 logaus3_bypass_en; 209 u8 glbpk_en; 210 u8 loswitch_protect; 211 212 u16 softwgt; 213 u16 hidif_th; 214 215 u32 glbpk2; 216 217 u16 wgtlmt; 218 u16 wgtratio; 219 220 u16 sig0_x[ISP3X_BAY3D_XY_NUM]; 221 u16 sig0_y[ISP3X_BAY3D_XY_NUM]; 222 u16 sig1_x[ISP3X_BAY3D_XY_NUM]; 223 u16 sig1_y[ISP3X_BAY3D_XY_NUM]; 224 u16 sig2_x[ISP3X_BAY3D_XY_NUM]; 225 u16 sig2_y[ISP3X_BAY3D_XY_NUM]; 226 } __attribute__ ((packed)); 227 228 struct isp3x_ynr_cfg { 229 u8 rnr_en; 230 u8 thumb_mix_cur_en; 231 u8 global_gain_alpha; 232 u8 flt1x1_bypass_sel; 233 u8 sft5x5_bypass; 234 u8 flt1x1_bypass; 235 u8 lgft3x3_bypass; 236 u8 lbft5x5_bypass; 237 u8 bft3x3_bypass; 238 u16 global_gain; 239 240 u16 rnr_max_r; 241 u16 local_gainscale; 242 243 u16 rnr_center_coorh; 244 u16 rnr_center_coorv; 245 246 u16 loclagain_adj_thresh; 247 u16 localgain_adj; 248 249 u16 low_bf_inv1; 250 u16 low_bf_inv0; 251 252 u16 low_peak_supress; 253 u16 low_thred_adj; 254 255 u16 low_dist_adj; 256 u16 low_edge_adj_thresh; 257 258 u16 low_bi_weight; 259 u16 low_weight; 260 u16 low_center_weight; 261 u16 hi_min_adj; 262 u16 high_thred_adj; 263 u8 high_retain_weight; 264 u8 hi_edge_thed; 265 u8 base_filter_weight2; 266 u8 base_filter_weight1; 267 u8 base_filter_weight0; 268 u16 frame_full_size; 269 u16 lbf_weight_thres; 270 u16 low_gauss1_coeff2; 271 u16 low_gauss1_coeff1; 272 u16 low_gauss1_coeff0; 273 u16 low_gauss2_coeff2; 274 u16 low_gauss2_coeff1; 275 u16 low_gauss2_coeff0; 276 u8 direction_weight3; 277 u8 direction_weight2; 278 u8 direction_weight1; 279 u8 direction_weight0; 280 u8 direction_weight7; 281 u8 direction_weight6; 282 u8 direction_weight5; 283 u8 direction_weight4; 284 u16 luma_points_x[ISP3X_YNR_XY_NUM]; 285 u16 lsgm_y[ISP3X_YNR_XY_NUM]; 286 u16 hsgm_y[ISP3X_YNR_XY_NUM]; 287 u8 rnr_strength3[ISP3X_YNR_XY_NUM]; 288 } __attribute__ ((packed)); 289 290 struct isp3x_cnr_cfg { 291 u8 thumb_mix_cur_en; 292 u8 lq_bila_bypass; 293 u8 hq_bila_bypass; 294 u8 exgain_bypass; 295 296 u8 global_gain_alpha; 297 u16 global_gain; 298 299 u8 gain_iso; 300 u8 gain_offset; 301 u8 gain_1sigma; 302 303 u8 gain_uvgain1; 304 u8 gain_uvgain0; 305 306 u8 lmed3_alpha; 307 308 u8 lbf5_gain_y; 309 u8 lbf5_gain_c; 310 311 u8 lbf5_weit_d3; 312 u8 lbf5_weit_d2; 313 u8 lbf5_weit_d1; 314 u8 lbf5_weit_d0; 315 316 u8 lbf5_weit_d4; 317 318 u8 hmed3_alpha; 319 320 u16 hbf5_weit_src; 321 u16 hbf5_min_wgt; 322 u16 hbf5_sigma; 323 324 u16 lbf5_weit_src; 325 u16 lbf3_sigma; 326 327 u8 sigma_y[ISP3X_CNR_SIGMA_Y_NUM]; 328 } __attribute__ ((packed)); 329 330 struct isp3x_sharp_cfg { 331 u8 bypass; 332 u8 center_mode; 333 u8 exgain_bypass; 334 335 u8 sharp_ratio; 336 u8 bf_ratio; 337 u8 gaus_ratio; 338 u8 pbf_ratio; 339 340 u8 luma_dx[ISP3X_SHARP_X_NUM]; 341 342 u16 pbf_sigma_inv[ISP3X_SHARP_Y_NUM]; 343 344 u16 bf_sigma_inv[ISP3X_SHARP_Y_NUM]; 345 346 u8 bf_sigma_shift; 347 u8 pbf_sigma_shift; 348 349 u16 ehf_th[ISP3X_SHARP_Y_NUM]; 350 351 u16 clip_hf[ISP3X_SHARP_Y_NUM]; 352 353 u8 pbf_coef2; 354 u8 pbf_coef1; 355 u8 pbf_coef0; 356 357 u8 bf_coef2; 358 u8 bf_coef1; 359 u8 bf_coef0; 360 361 u8 gaus_coef[ISP3X_SHARP_GAUS_COEF_NUM]; 362 } __attribute__ ((packed)); 363 364 struct isp3x_dhaz_cfg { 365 u8 round_en; 366 u8 soft_wr_en; 367 u8 enhance_en; 368 u8 air_lc_en; 369 u8 hpara_en; 370 u8 hist_en; 371 u8 dc_en; 372 373 u8 yblk_th; 374 u8 yhist_th; 375 u8 dc_max_th; 376 u8 dc_min_th; 377 378 u16 wt_max; 379 u8 bright_max; 380 u8 bright_min; 381 382 u8 tmax_base; 383 u8 dark_th; 384 u8 air_max; 385 u8 air_min; 386 387 u16 tmax_max; 388 u16 tmax_off; 389 390 u8 hist_k; 391 u8 hist_th_off; 392 u16 hist_min; 393 394 u16 hist_gratio; 395 u16 hist_scale; 396 397 u16 enhance_value; 398 u16 enhance_chroma; 399 400 u16 iir_wt_sigma; 401 u16 iir_sigma; 402 u16 stab_fnum; 403 404 u16 iir_tmax_sigma; 405 u16 iir_air_sigma; 406 u8 iir_pre_wet; 407 408 u16 cfg_wt; 409 u16 cfg_air; 410 u16 cfg_alpha; 411 412 u16 cfg_gratio; 413 u16 cfg_tmax; 414 415 u16 range_sima; 416 u8 space_sigma_pre; 417 u8 space_sigma_cur; 418 419 u16 dc_weitcur; 420 u16 bf_weight; 421 422 u16 enh_curve[ISP3X_DHAZ_ENH_CURVE_NUM]; 423 424 u8 gaus_h2; 425 u8 gaus_h1; 426 u8 gaus_h0; 427 428 u8 sigma_idx[ISP3X_DHAZ_SIGMA_IDX_NUM]; 429 u16 sigma_lut[ISP3X_DHAZ_SIGMA_LUT_NUM]; 430 431 u16 adp_wt_wr; 432 u16 adp_air_wr; 433 434 u16 adp_tmax_wr; 435 u16 adp_gratio_wr; 436 437 u16 hist_wr[ISP3X_DHAZ_HIST_WR_NUM]; 438 } __attribute__ ((packed)); 439 440 struct isp3x_dhaz_stat { 441 u32 dhaz_pic_sumh; 442 443 u16 dhaz_adp_air_base; 444 u16 dhaz_adp_wt; 445 446 u16 dhaz_adp_gratio; 447 u16 dhaz_adp_tmax; 448 449 u16 h_rgb_iir[ISP3X_DHAZ_HIST_IIR_NUM]; 450 } __attribute__ ((packed)); 451 452 struct isp3x_drc_cfg { 453 u8 bypass_en; 454 u8 offset_pow2; 455 u16 compres_scl; 456 u16 position; 457 u16 delta_scalein; 458 u16 hpdetail_ratio; 459 u16 lpdetail_ratio; 460 u8 weicur_pix; 461 u8 weipre_frame; 462 u8 bilat_wt_off; 463 u16 force_sgm_inv0; 464 u8 motion_scl; 465 u8 edge_scl; 466 u16 space_sgm_inv1; 467 u16 space_sgm_inv0; 468 u16 range_sgm_inv1; 469 u16 range_sgm_inv0; 470 u8 weig_maxl; 471 u8 weig_bilat; 472 u8 enable_soft_thd; 473 u16 bilat_soft_thd; 474 u16 gain_y[ISP3X_DRC_Y_NUM]; 475 u16 compres_y[ISP3X_DRC_Y_NUM]; 476 u16 scale_y[ISP3X_DRC_Y_NUM]; 477 u16 wr_cycle; 478 u16 iir_weight; 479 u16 min_ogain; 480 } __attribute__ ((packed)); 481 482 struct isp3x_hdrmge_cfg { 483 u8 s_base; 484 u8 mode; 485 486 u16 gain0_inv; 487 u16 gain0; 488 u16 gain1_inv; 489 u16 gain1; 490 u8 gain2; 491 492 u8 lm_dif_0p15; 493 u8 lm_dif_0p9; 494 u8 ms_diff_0p15; 495 u8 ms_dif_0p8; 496 497 u16 ms_thd1; 498 u16 ms_thd0; 499 u16 ms_scl; 500 u16 lm_thd1; 501 u16 lm_thd0; 502 u16 lm_scl; 503 struct isp2x_hdrmge_curve curve; 504 u16 e_y[ISP3X_HDRMGE_E_CURVE_NUM]; 505 } __attribute__ ((packed)); 506 507 struct isp3x_rawawb_meas_cfg { 508 u8 rawawb_sel; 509 u8 sw_rawawb_xy_en0; 510 u8 sw_rawawb_uv_en0; 511 u8 sw_rawawb_xy_en1; 512 u8 sw_rawawb_uv_en1; 513 u8 sw_rawawb_3dyuv_en0; 514 u8 sw_rawawb_3dyuv_en1; 515 u8 sw_rawawb_wp_blk_wei_en0; 516 u8 sw_rawawb_wp_blk_wei_en1; 517 u8 sw_rawawb_wp_luma_wei_en0; 518 u8 sw_rawawb_wp_luma_wei_en1; 519 u8 sw_rawlsc_bypass_en; 520 u8 sw_rawawb_blk_measure_enable; 521 u8 sw_rawawb_blk_measure_mode; 522 u8 sw_rawawb_blk_measure_xytype; 523 u8 sw_rawawb_blk_measure_illu_idx; 524 u8 sw_rawawb_wp_hist_xytype; 525 u8 sw_rawawb_light_num; 526 u8 sw_rawawb_wind_size; 527 u8 sw_rawawb_r_max; 528 u8 sw_rawawb_g_max; 529 u8 sw_rawawb_b_max; 530 u8 sw_rawawb_y_max; 531 u8 sw_rawawb_r_min; 532 u8 sw_rawawb_g_min; 533 u8 sw_rawawb_b_min; 534 u8 sw_rawawb_y_min; 535 u8 sw_rawawb_3dyuv_ls_idx0; 536 u8 sw_rawawb_3dyuv_ls_idx1; 537 u8 sw_rawawb_3dyuv_ls_idx2; 538 u8 sw_rawawb_3dyuv_ls_idx3; 539 u8 sw_rawawb_multiwindow_en; 540 u8 sw_rawawb_exc_wp_region0_excen0; 541 u8 sw_rawawb_exc_wp_region0_excen1; 542 u8 sw_rawawb_exc_wp_region0_measen; 543 u8 sw_rawawb_exc_wp_region0_domain; 544 u8 sw_rawawb_exc_wp_region1_excen0; 545 u8 sw_rawawb_exc_wp_region1_excen1; 546 u8 sw_rawawb_exc_wp_region1_measen; 547 u8 sw_rawawb_exc_wp_region1_domain; 548 u8 sw_rawawb_exc_wp_region2_excen0; 549 u8 sw_rawawb_exc_wp_region2_excen1; 550 u8 sw_rawawb_exc_wp_region2_measen; 551 u8 sw_rawawb_exc_wp_region2_domain; 552 u8 sw_rawawb_exc_wp_region3_excen0; 553 u8 sw_rawawb_exc_wp_region3_excen1; 554 u8 sw_rawawb_exc_wp_region3_measen; 555 u8 sw_rawawb_exc_wp_region3_domain; 556 u8 sw_rawawb_exc_wp_region4_excen0; 557 u8 sw_rawawb_exc_wp_region4_excen1; 558 u8 sw_rawawb_exc_wp_region4_domain; 559 u8 sw_rawawb_exc_wp_region5_excen0; 560 u8 sw_rawawb_exc_wp_region5_excen1; 561 u8 sw_rawawb_exc_wp_region5_domain; 562 u8 sw_rawawb_exc_wp_region6_excen0; 563 u8 sw_rawawb_exc_wp_region6_excen1; 564 u8 sw_rawawb_exc_wp_region6_domain; 565 u8 sw_rawawb_wp_luma_weicurve_y0; 566 u8 sw_rawawb_wp_luma_weicurve_y1; 567 u8 sw_rawawb_wp_luma_weicurve_y2; 568 u8 sw_rawawb_wp_luma_weicurve_y3; 569 u8 sw_rawawb_wp_luma_weicurve_y4; 570 u8 sw_rawawb_wp_luma_weicurve_y5; 571 u8 sw_rawawb_wp_luma_weicurve_y6; 572 u8 sw_rawawb_wp_luma_weicurve_y7; 573 u8 sw_rawawb_wp_luma_weicurve_y8; 574 u8 sw_rawawb_wp_luma_weicurve_w0; 575 u8 sw_rawawb_wp_luma_weicurve_w1; 576 u8 sw_rawawb_wp_luma_weicurve_w2; 577 u8 sw_rawawb_wp_luma_weicurve_w3; 578 u8 sw_rawawb_wp_luma_weicurve_w4; 579 u8 sw_rawawb_wp_luma_weicurve_w5; 580 u8 sw_rawawb_wp_luma_weicurve_w6; 581 u8 sw_rawawb_wp_luma_weicurve_w7; 582 u8 sw_rawawb_wp_luma_weicurve_w8; 583 u8 sw_rawawb_rotu0_ls0; 584 u8 sw_rawawb_rotu1_ls0; 585 u8 sw_rawawb_rotu2_ls0; 586 u8 sw_rawawb_rotu3_ls0; 587 u8 sw_rawawb_rotu4_ls0; 588 u8 sw_rawawb_rotu5_ls0; 589 u8 sw_rawawb_dis_x1x2_ls0; 590 u8 sw_rawawb_rotu0_ls1; 591 u8 sw_rawawb_rotu1_ls1; 592 u8 sw_rawawb_rotu2_ls1; 593 u8 sw_rawawb_rotu3_ls1; 594 u8 sw_rawawb_rotu4_ls1; 595 u8 sw_rawawb_rotu5_ls1; 596 u8 sw_rawawb_dis_x1x2_ls1; 597 u8 sw_rawawb_rotu0_ls2; 598 u8 sw_rawawb_rotu1_ls2; 599 u8 sw_rawawb_rotu2_ls2; 600 u8 sw_rawawb_rotu3_ls2; 601 u8 sw_rawawb_rotu4_ls2; 602 u8 sw_rawawb_rotu5_ls2; 603 u8 sw_rawawb_dis_x1x2_ls2; 604 u8 sw_rawawb_rotu0_ls3; 605 u8 sw_rawawb_rotu1_ls3; 606 u8 sw_rawawb_rotu2_ls3; 607 u8 sw_rawawb_rotu3_ls3; 608 u8 sw_rawawb_rotu4_ls3; 609 u8 sw_rawawb_rotu5_ls3; 610 u8 sw_rawawb_dis_x1x2_ls3; 611 u8 sw_rawawb_blk_rtdw_measure_en; 612 u8 sw_rawawb_blk_with_luma_wei_en; 613 u8 sw_rawawb_wp_blk_wei_w[ISP3X_RAWAWB_WEIGHT_NUM]; 614 615 u16 sw_rawawb_h_offs; 616 u16 sw_rawawb_v_offs; 617 u16 sw_rawawb_h_size; 618 u16 sw_rawawb_v_size; 619 u16 sw_rawawb_vertex0_u_0; 620 u16 sw_rawawb_vertex0_v_0; 621 u16 sw_rawawb_vertex1_u_0; 622 u16 sw_rawawb_vertex1_v_0; 623 u16 sw_rawawb_vertex2_u_0; 624 u16 sw_rawawb_vertex2_v_0; 625 u16 sw_rawawb_vertex3_u_0; 626 u16 sw_rawawb_vertex3_v_0; 627 u16 sw_rawawb_vertex0_u_1; 628 u16 sw_rawawb_vertex0_v_1; 629 u16 sw_rawawb_vertex1_u_1; 630 u16 sw_rawawb_vertex1_v_1; 631 u16 sw_rawawb_vertex2_u_1; 632 u16 sw_rawawb_vertex2_v_1; 633 u16 sw_rawawb_vertex3_u_1; 634 u16 sw_rawawb_vertex3_v_1; 635 u16 sw_rawawb_vertex0_u_2; 636 u16 sw_rawawb_vertex0_v_2; 637 u16 sw_rawawb_vertex1_u_2; 638 u16 sw_rawawb_vertex1_v_2; 639 u16 sw_rawawb_vertex2_u_2; 640 u16 sw_rawawb_vertex2_v_2; 641 u16 sw_rawawb_vertex3_u_2; 642 u16 sw_rawawb_vertex3_v_2; 643 u16 sw_rawawb_vertex0_u_3; 644 u16 sw_rawawb_vertex0_v_3; 645 u16 sw_rawawb_vertex1_u_3; 646 u16 sw_rawawb_vertex1_v_3; 647 u16 sw_rawawb_vertex2_u_3; 648 u16 sw_rawawb_vertex2_v_3; 649 u16 sw_rawawb_vertex3_u_3; 650 u16 sw_rawawb_vertex3_v_3; 651 u16 sw_rawawb_vertex0_u_4; 652 u16 sw_rawawb_vertex0_v_4; 653 u16 sw_rawawb_vertex1_u_4; 654 u16 sw_rawawb_vertex1_v_4; 655 u16 sw_rawawb_vertex2_u_4; 656 u16 sw_rawawb_vertex2_v_4; 657 u16 sw_rawawb_vertex3_u_4; 658 u16 sw_rawawb_vertex3_v_4; 659 u16 sw_rawawb_vertex0_u_5; 660 u16 sw_rawawb_vertex0_v_5; 661 u16 sw_rawawb_vertex1_u_5; 662 u16 sw_rawawb_vertex1_v_5; 663 u16 sw_rawawb_vertex2_u_5; 664 u16 sw_rawawb_vertex2_v_5; 665 u16 sw_rawawb_vertex3_u_5; 666 u16 sw_rawawb_vertex3_v_5; 667 u16 sw_rawawb_vertex0_u_6; 668 u16 sw_rawawb_vertex0_v_6; 669 u16 sw_rawawb_vertex1_u_6; 670 u16 sw_rawawb_vertex1_v_6; 671 u16 sw_rawawb_vertex2_u_6; 672 u16 sw_rawawb_vertex2_v_6; 673 u16 sw_rawawb_vertex3_u_6; 674 u16 sw_rawawb_vertex3_v_6; 675 676 u16 sw_rawawb_wt0; 677 u16 sw_rawawb_wt1; 678 u16 sw_rawawb_wt2; 679 u16 sw_rawawb_mat0_x; 680 u16 sw_rawawb_mat1_x; 681 u16 sw_rawawb_mat2_x; 682 u16 sw_rawawb_mat0_y; 683 u16 sw_rawawb_mat1_y; 684 u16 sw_rawawb_mat2_y; 685 u16 sw_rawawb_nor_x0_0; 686 u16 sw_rawawb_nor_x1_0; 687 u16 sw_rawawb_nor_y0_0; 688 u16 sw_rawawb_nor_y1_0; 689 u16 sw_rawawb_big_x0_0; 690 u16 sw_rawawb_big_x1_0; 691 u16 sw_rawawb_big_y0_0; 692 u16 sw_rawawb_big_y1_0; 693 u16 sw_rawawb_nor_x0_1; 694 u16 sw_rawawb_nor_x1_1; 695 u16 sw_rawawb_nor_y0_1; 696 u16 sw_rawawb_nor_y1_1; 697 u16 sw_rawawb_big_x0_1; 698 u16 sw_rawawb_big_x1_1; 699 u16 sw_rawawb_big_y0_1; 700 u16 sw_rawawb_big_y1_1; 701 u16 sw_rawawb_nor_x0_2; 702 u16 sw_rawawb_nor_x1_2; 703 u16 sw_rawawb_nor_y0_2; 704 u16 sw_rawawb_nor_y1_2; 705 u16 sw_rawawb_big_x0_2; 706 u16 sw_rawawb_big_x1_2; 707 u16 sw_rawawb_big_y0_2; 708 u16 sw_rawawb_big_y1_2; 709 u16 sw_rawawb_nor_x0_3; 710 u16 sw_rawawb_nor_x1_3; 711 u16 sw_rawawb_nor_y0_3; 712 u16 sw_rawawb_nor_y1_3; 713 u16 sw_rawawb_big_x0_3; 714 u16 sw_rawawb_big_x1_3; 715 u16 sw_rawawb_big_y0_3; 716 u16 sw_rawawb_big_y1_3; 717 u16 sw_rawawb_nor_x0_4; 718 u16 sw_rawawb_nor_x1_4; 719 u16 sw_rawawb_nor_y0_4; 720 u16 sw_rawawb_nor_y1_4; 721 u16 sw_rawawb_big_x0_4; 722 u16 sw_rawawb_big_x1_4; 723 u16 sw_rawawb_big_y0_4; 724 u16 sw_rawawb_big_y1_4; 725 u16 sw_rawawb_nor_x0_5; 726 u16 sw_rawawb_nor_x1_5; 727 u16 sw_rawawb_nor_y0_5; 728 u16 sw_rawawb_nor_y1_5; 729 u16 sw_rawawb_big_x0_5; 730 u16 sw_rawawb_big_x1_5; 731 u16 sw_rawawb_big_y0_5; 732 u16 sw_rawawb_big_y1_5; 733 u16 sw_rawawb_nor_x0_6; 734 u16 sw_rawawb_nor_x1_6; 735 u16 sw_rawawb_nor_y0_6; 736 u16 sw_rawawb_nor_y1_6; 737 u16 sw_rawawb_big_x0_6; 738 u16 sw_rawawb_big_x1_6; 739 u16 sw_rawawb_big_y0_6; 740 u16 sw_rawawb_big_y1_6; 741 u16 sw_rawawb_pre_wbgain_inv_r; 742 u16 sw_rawawb_pre_wbgain_inv_g; 743 u16 sw_rawawb_pre_wbgain_inv_b; 744 u16 sw_rawawb_multiwindow0_v_offs; 745 u16 sw_rawawb_multiwindow0_h_offs; 746 u16 sw_rawawb_multiwindow0_v_size; 747 u16 sw_rawawb_multiwindow0_h_size; 748 u16 sw_rawawb_multiwindow1_v_offs; 749 u16 sw_rawawb_multiwindow1_h_offs; 750 u16 sw_rawawb_multiwindow1_v_size; 751 u16 sw_rawawb_multiwindow1_h_size; 752 u16 sw_rawawb_multiwindow2_v_offs; 753 u16 sw_rawawb_multiwindow2_h_offs; 754 u16 sw_rawawb_multiwindow2_v_size; 755 u16 sw_rawawb_multiwindow2_h_size; 756 u16 sw_rawawb_multiwindow3_v_offs; 757 u16 sw_rawawb_multiwindow3_h_offs; 758 u16 sw_rawawb_multiwindow3_v_size; 759 u16 sw_rawawb_multiwindow3_h_size; 760 u16 sw_rawawb_exc_wp_region0_xu0; 761 u16 sw_rawawb_exc_wp_region0_xu1; 762 u16 sw_rawawb_exc_wp_region0_yv0; 763 u16 sw_rawawb_exc_wp_region0_yv1; 764 u16 sw_rawawb_exc_wp_region1_xu0; 765 u16 sw_rawawb_exc_wp_region1_xu1; 766 u16 sw_rawawb_exc_wp_region1_yv0; 767 u16 sw_rawawb_exc_wp_region1_yv1; 768 u16 sw_rawawb_exc_wp_region2_xu0; 769 u16 sw_rawawb_exc_wp_region2_xu1; 770 u16 sw_rawawb_exc_wp_region2_yv0; 771 u16 sw_rawawb_exc_wp_region2_yv1; 772 u16 sw_rawawb_exc_wp_region3_xu0; 773 u16 sw_rawawb_exc_wp_region3_xu1; 774 u16 sw_rawawb_exc_wp_region3_yv0; 775 u16 sw_rawawb_exc_wp_region3_yv1; 776 u16 sw_rawawb_exc_wp_region4_xu0; 777 u16 sw_rawawb_exc_wp_region4_xu1; 778 u16 sw_rawawb_exc_wp_region4_yv0; 779 u16 sw_rawawb_exc_wp_region4_yv1; 780 u16 sw_rawawb_exc_wp_region5_xu0; 781 u16 sw_rawawb_exc_wp_region5_xu1; 782 u16 sw_rawawb_exc_wp_region5_yv0; 783 u16 sw_rawawb_exc_wp_region5_yv1; 784 u16 sw_rawawb_exc_wp_region6_xu0; 785 u16 sw_rawawb_exc_wp_region6_xu1; 786 u16 sw_rawawb_exc_wp_region6_yv0; 787 u16 sw_rawawb_exc_wp_region6_yv1; 788 u16 sw_rawawb_rgb2ryuvmat0_u; 789 u16 sw_rawawb_rgb2ryuvmat1_u; 790 u16 sw_rawawb_rgb2ryuvmat2_u; 791 u16 sw_rawawb_rgb2ryuvofs_u; 792 u16 sw_rawawb_rgb2ryuvmat0_v; 793 u16 sw_rawawb_rgb2ryuvmat1_v; 794 u16 sw_rawawb_rgb2ryuvmat2_v; 795 u16 sw_rawawb_rgb2ryuvofs_v; 796 u16 sw_rawawb_rgb2ryuvmat0_y; 797 u16 sw_rawawb_rgb2ryuvmat1_y; 798 u16 sw_rawawb_rgb2ryuvmat2_y; 799 u16 sw_rawawb_rgb2ryuvofs_y; 800 u16 sw_rawawb_th0_ls0; 801 u16 sw_rawawb_th1_ls0; 802 u16 sw_rawawb_th2_ls0; 803 u16 sw_rawawb_th3_ls0; 804 u16 sw_rawawb_th4_ls0; 805 u16 sw_rawawb_th5_ls0; 806 u16 sw_rawawb_coor_x1_ls0_u; 807 u16 sw_rawawb_coor_x1_ls0_v; 808 u16 sw_rawawb_coor_x1_ls0_y; 809 u16 sw_rawawb_vec_x21_ls0_u; 810 u16 sw_rawawb_vec_x21_ls0_v; 811 u16 sw_rawawb_vec_x21_ls0_y; 812 u16 sw_rawawb_th0_ls1; 813 u16 sw_rawawb_th1_ls1; 814 u16 sw_rawawb_th2_ls1; 815 u16 sw_rawawb_th3_ls1; 816 u16 sw_rawawb_th4_ls1; 817 u16 sw_rawawb_th5_ls1; 818 u16 sw_rawawb_coor_x1_ls1_u; 819 u16 sw_rawawb_coor_x1_ls1_v; 820 u16 sw_rawawb_coor_x1_ls1_y; 821 u16 sw_rawawb_vec_x21_ls1_u; 822 u16 sw_rawawb_vec_x21_ls1_v; 823 u16 sw_rawawb_vec_x21_ls1_y; 824 u16 sw_rawawb_th0_ls2; 825 u16 sw_rawawb_th1_ls2; 826 u16 sw_rawawb_th2_ls2; 827 u16 sw_rawawb_th3_ls2; 828 u16 sw_rawawb_th4_ls2; 829 u16 sw_rawawb_th5_ls2; 830 u16 sw_rawawb_coor_x1_ls2_u; 831 u16 sw_rawawb_coor_x1_ls2_v; 832 u16 sw_rawawb_coor_x1_ls2_y; 833 u16 sw_rawawb_vec_x21_ls2_u; 834 u16 sw_rawawb_vec_x21_ls2_v; 835 u16 sw_rawawb_vec_x21_ls2_y; 836 u16 sw_rawawb_th0_ls3; 837 u16 sw_rawawb_th1_ls3; 838 u16 sw_rawawb_th2_ls3; 839 u16 sw_rawawb_th3_ls3; 840 u16 sw_rawawb_th4_ls3; 841 u16 sw_rawawb_th5_ls3; 842 u16 sw_rawawb_coor_x1_ls3_u; 843 u16 sw_rawawb_coor_x1_ls3_v; 844 u16 sw_rawawb_coor_x1_ls3_y; 845 u16 sw_rawawb_vec_x21_ls3_u; 846 u16 sw_rawawb_vec_x21_ls3_v; 847 u16 sw_rawawb_vec_x21_ls3_y; 848 849 u32 sw_rawawb_islope01_0; 850 u32 sw_rawawb_islope12_0; 851 u32 sw_rawawb_islope23_0; 852 u32 sw_rawawb_islope30_0; 853 u32 sw_rawawb_islope01_1; 854 u32 sw_rawawb_islope12_1; 855 u32 sw_rawawb_islope23_1; 856 u32 sw_rawawb_islope30_1; 857 u32 sw_rawawb_islope01_2; 858 u32 sw_rawawb_islope12_2; 859 u32 sw_rawawb_islope23_2; 860 u32 sw_rawawb_islope30_2; 861 u32 sw_rawawb_islope01_3; 862 u32 sw_rawawb_islope12_3; 863 u32 sw_rawawb_islope23_3; 864 u32 sw_rawawb_islope30_3; 865 u32 sw_rawawb_islope01_4; 866 u32 sw_rawawb_islope12_4; 867 u32 sw_rawawb_islope23_4; 868 u32 sw_rawawb_islope30_4; 869 u32 sw_rawawb_islope01_5; 870 u32 sw_rawawb_islope12_5; 871 u32 sw_rawawb_islope23_5; 872 u32 sw_rawawb_islope30_5; 873 u32 sw_rawawb_islope01_6; 874 u32 sw_rawawb_islope12_6; 875 u32 sw_rawawb_islope23_6; 876 u32 sw_rawawb_islope30_6; 877 } __attribute__ ((packed)); 878 879 struct isp3x_rawawb_meas_stat { 880 u16 ro_yhist_bin[ISP3X_RAWAWB_HSTBIN_NUM]; 881 u32 ro_rawawb_sum_rgain_nor[ISP3X_RAWAWB_SUM_NUM]; 882 u32 ro_rawawb_sum_bgain_nor[ISP3X_RAWAWB_SUM_NUM]; 883 u32 ro_rawawb_wp_num_nor[ISP3X_RAWAWB_SUM_NUM]; 884 u32 ro_rawawb_sum_rgain_big[ISP3X_RAWAWB_SUM_NUM]; 885 u32 ro_rawawb_sum_bgain_big[ISP3X_RAWAWB_SUM_NUM]; 886 u32 ro_rawawb_wp_num_big[ISP3X_RAWAWB_SUM_NUM]; 887 u32 ro_wp_num2[ISP3X_RAWAWB_SUM_NUM]; 888 u32 ro_sum_r_nor_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 889 u32 ro_sum_b_nor_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 890 u32 ro_wp_nm_nor_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 891 u32 ro_sum_r_big_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 892 u32 ro_sum_b_big_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 893 u32 ro_wp_nm_big_multiwindow[ISP3X_RAWAWB_MULWD_NUM]; 894 u32 ro_sum_r_exc[ISP3X_RAWAWB_EXCL_STAT_NUM]; 895 u32 ro_sum_b_exc[ISP3X_RAWAWB_EXCL_STAT_NUM]; 896 u32 ro_wp_nm_exc[ISP3X_RAWAWB_EXCL_STAT_NUM]; 897 struct isp2x_rawawb_ramdata ramdata[ISP3X_RAWAWB_RAMDATA_NUM]; 898 } __attribute__ ((packed)); 899 900 struct isp3x_rawaf_curve { 901 u8 ldg_lumth; 902 u8 ldg_gain; 903 u16 ldg_gslp; 904 } __attribute__ ((packed)); 905 906 struct isp3x_rawaf_meas_cfg { 907 u8 rawaf_sel; 908 u8 num_afm_win; 909 /* CTRL */ 910 u8 gamma_en; 911 u8 gaus_en; 912 u8 v1_fir_sel; 913 u8 hiir_en; 914 u8 viir_en; 915 u8 accu_8bit_mode; 916 u8 ldg_en; 917 u8 h1_fv_mode; 918 u8 h2_fv_mode; 919 u8 v1_fv_mode; 920 u8 v2_fv_mode; 921 u8 ae_mode; 922 u8 y_mode; 923 /* WINA_B */ 924 struct isp2x_window win[ISP3X_RAWAF_WIN_NUM]; 925 /* INT_LINE */ 926 u8 line_num[ISP3X_RAWAF_LINE_NUM]; 927 u8 line_en[ISP3X_RAWAF_LINE_NUM]; 928 /* THRES */ 929 u16 afm_thres; 930 /* VAR_SHIFT */ 931 u8 afm_var_shift[ISP3X_RAWAF_WIN_NUM]; 932 u8 lum_var_shift[ISP3X_RAWAF_WIN_NUM]; 933 /* HVIIR_VAR_SHIFT */ 934 u8 h1iir_var_shift; 935 u8 h2iir_var_shift; 936 u8 v1iir_var_shift; 937 u8 v2iir_var_shift; 938 /* GAMMA_Y */ 939 u16 gamma_y[ISP3X_RAWAF_GAMMA_NUM]; 940 /* HIIR_THRESH */ 941 u16 h_fv_thresh; 942 u16 v_fv_thresh; 943 struct isp3x_rawaf_curve curve_h[ISP3X_RAWAF_CURVE_NUM]; 944 struct isp3x_rawaf_curve curve_v[ISP3X_RAWAF_CURVE_NUM]; 945 s16 h1iir1_coe[ISP3X_RAWAF_HIIR_COE_NUM]; 946 s16 h1iir2_coe[ISP3X_RAWAF_HIIR_COE_NUM]; 947 s16 h2iir1_coe[ISP3X_RAWAF_HIIR_COE_NUM]; 948 s16 h2iir2_coe[ISP3X_RAWAF_HIIR_COE_NUM]; 949 s16 v1iir_coe[ISP3X_RAWAF_V1IIR_COE_NUM]; 950 s16 v2iir_coe[ISP3X_RAWAF_V2IIR_COE_NUM]; 951 s16 v1fir_coe[ISP3X_RAWAF_VFIR_COE_NUM]; 952 s16 v2fir_coe[ISP3X_RAWAF_VFIR_COE_NUM]; 953 u16 highlit_thresh; 954 } __attribute__ ((packed)); 955 956 struct isp3x_rawaf_ramdata { 957 u32 v1; 958 u32 v2; 959 u32 h1; 960 u32 h2; 961 } __attribute__ ((packed)); 962 963 struct isp3x_rawaf_stat { 964 u32 int_state; 965 u32 afm_sum_b; 966 u32 afm_lum_b; 967 u32 highlit_cnt_winb; 968 struct isp3x_rawaf_ramdata ramdata[ISP3X_RAWAF_SUMDATA_NUM]; 969 } __attribute__ ((packed)); 970 971 struct isp3x_cac_cfg { 972 u8 bypass_en; 973 u8 center_en; 974 975 u8 psf_sft_bit; 976 u16 cfg_num; 977 978 u16 center_width; 979 u16 center_height; 980 981 u16 strength[ISP3X_CAC_STRENGTH_NUM]; 982 983 u32 hsize; 984 u32 vsize; 985 s32 buf_fd; 986 } __attribute__ ((packed)); 987 988 struct isp3x_gain_cfg { 989 u32 g0; 990 u16 g1; 991 u16 g2; 992 } __attribute__ ((packed)); 993 994 struct isp3x_isp_other_cfg { 995 struct isp21_bls_cfg bls_cfg; 996 struct isp2x_dpcc_cfg dpcc_cfg; 997 struct isp3x_lsc_cfg lsc_cfg; 998 struct isp21_awb_gain_cfg awb_gain_cfg; 999 struct isp21_gic_cfg gic_cfg; 1000 struct isp2x_debayer_cfg debayer_cfg; 1001 struct isp21_ccm_cfg ccm_cfg; 1002 struct isp3x_gammaout_cfg gammaout_cfg; 1003 struct isp2x_cproc_cfg cproc_cfg; 1004 struct isp2x_ie_cfg ie_cfg; 1005 struct isp2x_sdg_cfg sdg_cfg; 1006 struct isp3x_drc_cfg drc_cfg; 1007 struct isp3x_hdrmge_cfg hdrmge_cfg; 1008 struct isp3x_dhaz_cfg dhaz_cfg; 1009 struct isp2x_3dlut_cfg isp3dlut_cfg; 1010 struct isp2x_ldch_cfg ldch_cfg; 1011 struct isp3x_baynr_cfg baynr_cfg; 1012 struct isp3x_bay3d_cfg bay3d_cfg; 1013 struct isp3x_ynr_cfg ynr_cfg; 1014 struct isp3x_cnr_cfg cnr_cfg; 1015 struct isp3x_sharp_cfg sharp_cfg; 1016 struct isp3x_cac_cfg cac_cfg; 1017 struct isp3x_gain_cfg gain_cfg; 1018 struct isp21_csm_cfg csm_cfg; 1019 } __attribute__ ((packed)); 1020 1021 struct isp3x_isp_meas_cfg { 1022 struct isp3x_rawaf_meas_cfg rawaf; 1023 struct isp3x_rawawb_meas_cfg rawawb; 1024 struct isp2x_rawaelite_meas_cfg rawae0; 1025 struct isp2x_rawaebig_meas_cfg rawae1; 1026 struct isp2x_rawaebig_meas_cfg rawae2; 1027 struct isp2x_rawaebig_meas_cfg rawae3; 1028 struct isp2x_rawhistlite_cfg rawhist0; 1029 struct isp2x_rawhistbig_cfg rawhist1; 1030 struct isp2x_rawhistbig_cfg rawhist2; 1031 struct isp2x_rawhistbig_cfg rawhist3; 1032 } __attribute__ ((packed)); 1033 1034 struct isp3x_isp_params_cfg { 1035 u64 module_en_update; 1036 u64 module_ens; 1037 u64 module_cfg_update; 1038 1039 u32 frame_id; 1040 struct isp3x_isp_meas_cfg meas; 1041 struct isp3x_isp_other_cfg others; 1042 } __attribute__ ((packed)); 1043 1044 struct isp3x_stat { 1045 struct isp2x_rawaebig_stat rawae3; 1046 struct isp2x_rawaebig_stat rawae1; 1047 struct isp2x_rawaebig_stat rawae2; 1048 struct isp2x_rawaelite_stat rawae0; 1049 struct isp2x_rawhistbig_stat rawhist3; 1050 struct isp2x_rawhistlite_stat rawhist0; 1051 struct isp2x_rawhistbig_stat rawhist1; 1052 struct isp2x_rawhistbig_stat rawhist2; 1053 struct isp3x_rawaf_stat rawaf; 1054 struct isp3x_rawawb_meas_stat rawawb; 1055 struct isp3x_dhaz_stat dhaz; 1056 struct isp2x_bls_stat bls; 1057 } __attribute__ ((packed)); 1058 1059 /** 1060 * struct rkisp3x_isp_stat_buffer - Rockchip ISP3 Statistics Meta Data 1061 * 1062 * @meas_type: measurement types (ISP3X_STAT_ definitions) 1063 * @frame_id: frame ID for sync 1064 * @params: statistics data 1065 */ 1066 struct rkisp3x_isp_stat_buffer { 1067 u32 meas_type; 1068 u32 frame_id; 1069 struct isp3x_stat params; 1070 } __attribute__ ((packed)); 1071 1072 #endif /* _UAPI_RKISP3_CONFIG_H */ 1073