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