1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_RKISP1_CONFIG_H 8 #define _UAPI_RKISP1_CONFIG_H 9 #include <linux/types.h> 10 #define RKISP1_CIF_ISP_MODULE_DPCC (1U << 0) 11 #define RKISP1_CIF_ISP_MODULE_BLS (1U << 1) 12 #define RKISP1_CIF_ISP_MODULE_SDG (1U << 2) 13 #define RKISP1_CIF_ISP_MODULE_HST (1U << 3) 14 #define RKISP1_CIF_ISP_MODULE_LSC (1U << 4) 15 #define RKISP1_CIF_ISP_MODULE_AWB_GAIN (1U << 5) 16 #define RKISP1_CIF_ISP_MODULE_FLT (1U << 6) 17 #define RKISP1_CIF_ISP_MODULE_BDM (1U << 7) 18 #define RKISP1_CIF_ISP_MODULE_CTK (1U << 8) 19 #define RKISP1_CIF_ISP_MODULE_GOC (1U << 9) 20 #define RKISP1_CIF_ISP_MODULE_CPROC (1U << 10) 21 #define RKISP1_CIF_ISP_MODULE_AFC (1U << 11) 22 #define RKISP1_CIF_ISP_MODULE_AWB (1U << 12) 23 #define RKISP1_CIF_ISP_MODULE_IE (1U << 13) 24 #define RKISP1_CIF_ISP_MODULE_AEC (1U << 14) 25 #define RKISP1_CIF_ISP_MODULE_WDR (1U << 15) 26 #define RKISP1_CIF_ISP_MODULE_DPF (1U << 16) 27 #define RKISP1_CIF_ISP_MODULE_DPF_STRENGTH (1U << 17) 28 #define RKISP1_CIF_ISP_CTK_COEFF_MAX 0x100 29 #define RKISP1_CIF_ISP_CTK_OFFSET_MAX 0x800 30 #define RKISP1_CIF_ISP_AE_MEAN_MAX_V10 25 31 #define RKISP1_CIF_ISP_AE_MEAN_MAX_V12 81 32 #define RKISP1_CIF_ISP_AE_MEAN_MAX RKISP1_CIF_ISP_AE_MEAN_MAX_V12 33 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V10 16 34 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 32 35 #define RKISP1_CIF_ISP_HIST_BIN_N_MAX RKISP1_CIF_ISP_HIST_BIN_N_MAX_V12 36 #define RKISP1_CIF_ISP_AFM_MAX_WINDOWS 3 37 #define RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE 17 38 #define RKISP1_CIF_ISP_BDM_MAX_TH 0xff 39 #define RKISP1_CIF_ISP_BLS_START_H_MAX 0x00000fff 40 #define RKISP1_CIF_ISP_BLS_STOP_H_MAX 0x00000fff 41 #define RKISP1_CIF_ISP_BLS_START_V_MAX 0x00000fff 42 #define RKISP1_CIF_ISP_BLS_STOP_V_MAX 0x00000fff 43 #define RKISP1_CIF_ISP_BLS_SAMPLES_MAX 0x00000012 44 #define RKISP1_CIF_ISP_BLS_FIX_SUB_MAX 0x00000fff 45 #define RKISP1_CIF_ISP_BLS_FIX_SUB_MIN 0xfffff000 46 #define RKISP1_CIF_ISP_BLS_FIX_MASK 0x00001fff 47 #define RKISP1_CIF_ISP_AWB_MAX_GRID 1 48 #define RKISP1_CIF_ISP_AWB_MAX_FRAMES 7 49 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V10 17 50 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 34 51 #define RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES_V12 52 #define RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE 8 53 #define RKISP1_CIF_ISP_LSC_SAMPLES_MAX 17 54 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V10 25 55 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 81 56 #define RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE_V12 57 #define RKISP1_CIF_ISP_DPCC_METHODS_MAX 3 58 #define RKISP1_CIF_ISP_DPCC_MODE_STAGE1_ENABLE (1U << 2) 59 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_G_CENTER (1U << 0) 60 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_INCL_RB_CENTER (1U << 1) 61 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_G_3X3 (1U << 2) 62 #define RKISP1_CIF_ISP_DPCC_OUTPUT_MODE_STAGE1_RB_3X3 (1U << 3) 63 #define RKISP1_CIF_ISP_DPCC_SET_USE_STAGE1_USE_SET(n) ((n) << 0) 64 #define RKISP1_CIF_ISP_DPCC_SET_USE_STAGE1_USE_FIX_SET (1U << 3) 65 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_PG_GREEN_ENABLE (1U << 0) 66 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_LC_GREEN_ENABLE (1U << 1) 67 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RO_GREEN_ENABLE (1U << 2) 68 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RND_GREEN_ENABLE (1U << 3) 69 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RG_GREEN_ENABLE (1U << 4) 70 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_PG_RED_BLUE_ENABLE (1U << 8) 71 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_LC_RED_BLUE_ENABLE (1U << 9) 72 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RO_RED_BLUE_ENABLE (1U << 10) 73 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RND_RED_BLUE_ENABLE (1U << 11) 74 #define RKISP1_CIF_ISP_DPCC_METHODS_SET_RG_RED_BLUE_ENABLE (1U << 12) 75 #define RKISP1_CIF_ISP_DPCC_LINE_THRESH_G(v) ((v) << 0) 76 #define RKISP1_CIF_ISP_DPCC_LINE_THRESH_RB(v) ((v) << 8) 77 #define RKISP1_CIF_ISP_DPCC_LINE_MAD_FAC_G(v) ((v) << 0) 78 #define RKISP1_CIF_ISP_DPCC_LINE_MAD_FAC_RB(v) ((v) << 8) 79 #define RKISP1_CIF_ISP_DPCC_PG_FAC_G(v) ((v) << 0) 80 #define RKISP1_CIF_ISP_DPCC_PG_FAC_RB(v) ((v) << 8) 81 #define RKISP1_CIF_ISP_DPCC_RND_THRESH_G(v) ((v) << 0) 82 #define RKISP1_CIF_ISP_DPCC_RND_THRESH_RB(v) ((v) << 8) 83 #define RKISP1_CIF_ISP_DPCC_RG_FAC_G(v) ((v) << 0) 84 #define RKISP1_CIF_ISP_DPCC_RG_FAC_RB(v) ((v) << 8) 85 #define RKISP1_CIF_ISP_DPCC_RO_LIMITS_n_G(n,v) ((v) << ((n) * 4)) 86 #define RKISP1_CIF_ISP_DPCC_RO_LIMITS_n_RB(n,v) ((v) << ((n) * 4 + 2)) 87 #define RKISP1_CIF_ISP_DPCC_RND_OFFS_n_G(n,v) ((v) << ((n) * 4)) 88 #define RKISP1_CIF_ISP_DPCC_RND_OFFS_n_RB(n,v) ((v) << ((n) * 4 + 2)) 89 #define RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS 17 90 #define RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS 6 91 #define RKISP1_CIF_ISP_COMPAND_NUM_POINTS 64 92 #define RKISP1_CIF_ISP_STAT_AWB (1U << 0) 93 #define RKISP1_CIF_ISP_STAT_AUTOEXP (1U << 1) 94 #define RKISP1_CIF_ISP_STAT_AFM (1U << 2) 95 #define RKISP1_CIF_ISP_STAT_HIST (1U << 3) 96 enum rkisp1_cif_isp_version { 97 RKISP1_V10 = 10, 98 RKISP1_V11, 99 RKISP1_V12, 100 RKISP1_V13, 101 RKISP1_V_IMX8MP, 102 }; 103 enum rkisp1_cif_isp_histogram_mode { 104 RKISP1_CIF_ISP_HISTOGRAM_MODE_DISABLE, 105 RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED, 106 RKISP1_CIF_ISP_HISTOGRAM_MODE_R_HISTOGRAM, 107 RKISP1_CIF_ISP_HISTOGRAM_MODE_G_HISTOGRAM, 108 RKISP1_CIF_ISP_HISTOGRAM_MODE_B_HISTOGRAM, 109 RKISP1_CIF_ISP_HISTOGRAM_MODE_Y_HISTOGRAM 110 }; 111 enum rkisp1_cif_isp_awb_mode_type { 112 RKISP1_CIF_ISP_AWB_MODE_MANUAL, 113 RKISP1_CIF_ISP_AWB_MODE_RGB, 114 RKISP1_CIF_ISP_AWB_MODE_YCBCR 115 }; 116 enum rkisp1_cif_isp_flt_mode { 117 RKISP1_CIF_ISP_FLT_STATIC_MODE, 118 RKISP1_CIF_ISP_FLT_DYNAMIC_MODE 119 }; 120 enum rkisp1_cif_isp_exp_ctrl_autostop { 121 RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_0 = 0, 122 RKISP1_CIF_ISP_EXP_CTRL_AUTOSTOP_1 = 1, 123 }; 124 enum rkisp1_cif_isp_exp_meas_mode { 125 RKISP1_CIF_ISP_EXP_MEASURING_MODE_0, 126 RKISP1_CIF_ISP_EXP_MEASURING_MODE_1, 127 }; 128 struct rkisp1_cif_isp_window { 129 __u16 h_offs; 130 __u16 v_offs; 131 __u16 h_size; 132 __u16 v_size; 133 }; 134 struct rkisp1_cif_isp_bls_fixed_val { 135 __s16 r; 136 __s16 gr; 137 __s16 gb; 138 __s16 b; 139 }; 140 struct rkisp1_cif_isp_bls_config { 141 __u8 enable_auto; 142 __u8 en_windows; 143 struct rkisp1_cif_isp_window bls_window1; 144 struct rkisp1_cif_isp_window bls_window2; 145 __u8 bls_samples; 146 struct rkisp1_cif_isp_bls_fixed_val fixed_val; 147 }; 148 struct rkisp1_cif_isp_dpcc_methods_config { 149 __u32 method; 150 __u32 line_thresh; 151 __u32 line_mad_fac; 152 __u32 pg_fac; 153 __u32 rnd_thresh; 154 __u32 rg_fac; 155 }; 156 struct rkisp1_cif_isp_dpcc_config { 157 __u32 mode; 158 __u32 output_mode; 159 __u32 set_use; 160 struct rkisp1_cif_isp_dpcc_methods_config methods[RKISP1_CIF_ISP_DPCC_METHODS_MAX]; 161 __u32 ro_limits; 162 __u32 rnd_offs; 163 }; 164 struct rkisp1_cif_isp_gamma_corr_curve { 165 __u16 gamma_y[RKISP1_CIF_ISP_DEGAMMA_CURVE_SIZE]; 166 }; 167 struct rkisp1_cif_isp_gamma_curve_x_axis_pnts { 168 __u32 gamma_dx0; 169 __u32 gamma_dx1; 170 }; 171 struct rkisp1_cif_isp_sdg_config { 172 struct rkisp1_cif_isp_gamma_corr_curve curve_r; 173 struct rkisp1_cif_isp_gamma_corr_curve curve_g; 174 struct rkisp1_cif_isp_gamma_corr_curve curve_b; 175 struct rkisp1_cif_isp_gamma_curve_x_axis_pnts xa_pnts; 176 }; 177 struct rkisp1_cif_isp_lsc_config { 178 __u16 r_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; 179 __u16 gr_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; 180 __u16 gb_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; 181 __u16 b_data_tbl[RKISP1_CIF_ISP_LSC_SAMPLES_MAX][RKISP1_CIF_ISP_LSC_SAMPLES_MAX]; 182 __u16 x_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; 183 __u16 y_grad_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; 184 __u16 x_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; 185 __u16 y_size_tbl[RKISP1_CIF_ISP_LSC_SECTORS_TBL_SIZE]; 186 __u16 config_width; 187 __u16 config_height; 188 }; 189 struct rkisp1_cif_isp_ie_config { 190 __u16 effect; 191 __u16 color_sel; 192 __u16 eff_mat_1; 193 __u16 eff_mat_2; 194 __u16 eff_mat_3; 195 __u16 eff_mat_4; 196 __u16 eff_mat_5; 197 __u16 eff_tint; 198 }; 199 struct rkisp1_cif_isp_cproc_config { 200 __u8 c_out_range; 201 __u8 y_in_range; 202 __u8 y_out_range; 203 __u8 contrast; 204 __u8 brightness; 205 __u8 sat; 206 __u8 hue; 207 }; 208 struct rkisp1_cif_isp_awb_meas_config { 209 struct rkisp1_cif_isp_window awb_wnd; 210 __u32 awb_mode; 211 __u8 max_y; 212 __u8 min_y; 213 __u8 max_csum; 214 __u8 min_c; 215 __u8 frames; 216 __u8 awb_ref_cr; 217 __u8 awb_ref_cb; 218 __u8 enable_ymax_cmp; 219 }; 220 struct rkisp1_cif_isp_awb_gain_config { 221 __u16 gain_red; 222 __u16 gain_green_r; 223 __u16 gain_blue; 224 __u16 gain_green_b; 225 }; 226 struct rkisp1_cif_isp_flt_config { 227 __u32 mode; 228 __u8 grn_stage1; 229 __u8 chr_h_mode; 230 __u8 chr_v_mode; 231 __u32 thresh_bl0; 232 __u32 thresh_bl1; 233 __u32 thresh_sh0; 234 __u32 thresh_sh1; 235 __u32 lum_weight; 236 __u32 fac_sh1; 237 __u32 fac_sh0; 238 __u32 fac_mid; 239 __u32 fac_bl0; 240 __u32 fac_bl1; 241 }; 242 struct rkisp1_cif_isp_bdm_config { 243 __u8 demosaic_th; 244 }; 245 struct rkisp1_cif_isp_ctk_config { 246 __u16 coeff[3][3]; 247 __u16 ct_offset[3]; 248 }; 249 enum rkisp1_cif_isp_goc_mode { 250 RKISP1_CIF_ISP_GOC_MODE_LOGARITHMIC, 251 RKISP1_CIF_ISP_GOC_MODE_EQUIDISTANT 252 }; 253 struct rkisp1_cif_isp_goc_config { 254 __u32 mode; 255 __u16 gamma_y[RKISP1_CIF_ISP_GAMMA_OUT_MAX_SAMPLES]; 256 }; 257 struct rkisp1_cif_isp_hst_config { 258 __u32 mode; 259 __u8 histogram_predivider; 260 struct rkisp1_cif_isp_window meas_window; 261 __u8 hist_weight[RKISP1_CIF_ISP_HISTOGRAM_WEIGHT_GRIDS_SIZE]; 262 }; 263 struct rkisp1_cif_isp_aec_config { 264 __u32 mode; 265 __u32 autostop; 266 struct rkisp1_cif_isp_window meas_window; 267 }; 268 struct rkisp1_cif_isp_afc_config { 269 __u8 num_afm_win; 270 struct rkisp1_cif_isp_window afm_win[RKISP1_CIF_ISP_AFM_MAX_WINDOWS]; 271 __u32 thres; 272 __u32 var_shift; 273 }; 274 enum rkisp1_cif_isp_dpf_gain_usage { 275 RKISP1_CIF_ISP_DPF_GAIN_USAGE_DISABLED, 276 RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_GAINS, 277 RKISP1_CIF_ISP_DPF_GAIN_USAGE_LSC_GAINS, 278 RKISP1_CIF_ISP_DPF_GAIN_USAGE_NF_LSC_GAINS, 279 RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_GAINS, 280 RKISP1_CIF_ISP_DPF_GAIN_USAGE_AWB_LSC_GAINS, 281 RKISP1_CIF_ISP_DPF_GAIN_USAGE_MAX 282 }; 283 enum rkisp1_cif_isp_dpf_rb_filtersize { 284 RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_13x9, 285 RKISP1_CIF_ISP_DPF_RB_FILTERSIZE_9x9, 286 }; 287 enum rkisp1_cif_isp_dpf_nll_scale_mode { 288 RKISP1_CIF_ISP_NLL_SCALE_LINEAR, 289 RKISP1_CIF_ISP_NLL_SCALE_LOGARITHMIC, 290 }; 291 struct rkisp1_cif_isp_dpf_nll { 292 __u16 coeff[RKISP1_CIF_ISP_DPF_MAX_NLF_COEFFS]; 293 __u32 scale_mode; 294 }; 295 struct rkisp1_cif_isp_dpf_rb_flt { 296 __u32 fltsize; 297 __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS]; 298 __u8 r_enable; 299 __u8 b_enable; 300 }; 301 struct rkisp1_cif_isp_dpf_g_flt { 302 __u8 spatial_coeff[RKISP1_CIF_ISP_DPF_MAX_SPATIAL_COEFFS]; 303 __u8 gr_enable; 304 __u8 gb_enable; 305 }; 306 struct rkisp1_cif_isp_dpf_gain { 307 __u32 mode; 308 __u16 nf_r_gain; 309 __u16 nf_b_gain; 310 __u16 nf_gr_gain; 311 __u16 nf_gb_gain; 312 }; 313 struct rkisp1_cif_isp_dpf_config { 314 struct rkisp1_cif_isp_dpf_gain gain; 315 struct rkisp1_cif_isp_dpf_g_flt g_flt; 316 struct rkisp1_cif_isp_dpf_rb_flt rb_flt; 317 struct rkisp1_cif_isp_dpf_nll nll; 318 }; 319 struct rkisp1_cif_isp_dpf_strength_config { 320 __u8 r; 321 __u8 g; 322 __u8 b; 323 }; 324 struct rkisp1_cif_isp_isp_other_cfg { 325 struct rkisp1_cif_isp_dpcc_config dpcc_config; 326 struct rkisp1_cif_isp_bls_config bls_config; 327 struct rkisp1_cif_isp_sdg_config sdg_config; 328 struct rkisp1_cif_isp_lsc_config lsc_config; 329 struct rkisp1_cif_isp_awb_gain_config awb_gain_config; 330 struct rkisp1_cif_isp_flt_config flt_config; 331 struct rkisp1_cif_isp_bdm_config bdm_config; 332 struct rkisp1_cif_isp_ctk_config ctk_config; 333 struct rkisp1_cif_isp_goc_config goc_config; 334 struct rkisp1_cif_isp_dpf_config dpf_config; 335 struct rkisp1_cif_isp_dpf_strength_config dpf_strength_config; 336 struct rkisp1_cif_isp_cproc_config cproc_config; 337 struct rkisp1_cif_isp_ie_config ie_config; 338 }; 339 struct rkisp1_cif_isp_isp_meas_cfg { 340 struct rkisp1_cif_isp_awb_meas_config awb_meas_config; 341 struct rkisp1_cif_isp_hst_config hst_config; 342 struct rkisp1_cif_isp_aec_config aec_config; 343 struct rkisp1_cif_isp_afc_config afc_config; 344 }; 345 struct rkisp1_params_cfg { 346 __u32 module_en_update; 347 __u32 module_ens; 348 __u32 module_cfg_update; 349 struct rkisp1_cif_isp_isp_meas_cfg meas; 350 struct rkisp1_cif_isp_isp_other_cfg others; 351 }; 352 struct rkisp1_cif_isp_compand_bls_config { 353 __u32 r; 354 __u32 gr; 355 __u32 gb; 356 __u32 b; 357 }; 358 struct rkisp1_cif_isp_compand_curve_config { 359 __u8 px[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; 360 __u32 x[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; 361 __u32 y[RKISP1_CIF_ISP_COMPAND_NUM_POINTS]; 362 }; 363 struct rkisp1_cif_isp_awb_meas { 364 __u32 cnt; 365 __u8 mean_y_or_g; 366 __u8 mean_cb_or_b; 367 __u8 mean_cr_or_r; 368 }; 369 struct rkisp1_cif_isp_awb_stat { 370 struct rkisp1_cif_isp_awb_meas awb_mean[RKISP1_CIF_ISP_AWB_MAX_GRID]; 371 }; 372 struct rkisp1_cif_isp_bls_meas_val { 373 __u16 meas_r; 374 __u16 meas_gr; 375 __u16 meas_gb; 376 __u16 meas_b; 377 }; 378 struct rkisp1_cif_isp_ae_stat { 379 __u8 exp_mean[RKISP1_CIF_ISP_AE_MEAN_MAX]; 380 struct rkisp1_cif_isp_bls_meas_val bls_val; 381 }; 382 struct rkisp1_cif_isp_af_meas_val { 383 __u32 sum; 384 __u32 lum; 385 }; 386 struct rkisp1_cif_isp_af_stat { 387 struct rkisp1_cif_isp_af_meas_val window[RKISP1_CIF_ISP_AFM_MAX_WINDOWS]; 388 }; 389 struct rkisp1_cif_isp_hist_stat { 390 __u32 hist_bins[RKISP1_CIF_ISP_HIST_BIN_N_MAX]; 391 }; 392 struct rkisp1_cif_isp_stat { 393 struct rkisp1_cif_isp_awb_stat awb; 394 struct rkisp1_cif_isp_ae_stat ae; 395 struct rkisp1_cif_isp_af_stat af; 396 struct rkisp1_cif_isp_hist_stat hist; 397 }; 398 struct rkisp1_stat_buffer { 399 __u32 meas_type; 400 __u32 frame_id; 401 struct rkisp1_cif_isp_stat params; 402 }; 403 enum rkisp1_ext_params_block_type { 404 RKISP1_EXT_PARAMS_BLOCK_TYPE_BLS, 405 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPCC, 406 RKISP1_EXT_PARAMS_BLOCK_TYPE_SDG, 407 RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_GAIN, 408 RKISP1_EXT_PARAMS_BLOCK_TYPE_FLT, 409 RKISP1_EXT_PARAMS_BLOCK_TYPE_BDM, 410 RKISP1_EXT_PARAMS_BLOCK_TYPE_CTK, 411 RKISP1_EXT_PARAMS_BLOCK_TYPE_GOC, 412 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF, 413 RKISP1_EXT_PARAMS_BLOCK_TYPE_DPF_STRENGTH, 414 RKISP1_EXT_PARAMS_BLOCK_TYPE_CPROC, 415 RKISP1_EXT_PARAMS_BLOCK_TYPE_IE, 416 RKISP1_EXT_PARAMS_BLOCK_TYPE_LSC, 417 RKISP1_EXT_PARAMS_BLOCK_TYPE_AWB_MEAS, 418 RKISP1_EXT_PARAMS_BLOCK_TYPE_HST_MEAS, 419 RKISP1_EXT_PARAMS_BLOCK_TYPE_AEC_MEAS, 420 RKISP1_EXT_PARAMS_BLOCK_TYPE_AFC_MEAS, 421 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_BLS, 422 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_EXPAND, 423 RKISP1_EXT_PARAMS_BLOCK_TYPE_COMPAND_COMPRESS, 424 }; 425 #define RKISP1_EXT_PARAMS_FL_BLOCK_DISABLE (1U << 0) 426 #define RKISP1_EXT_PARAMS_FL_BLOCK_ENABLE (1U << 1) 427 struct rkisp1_ext_params_block_header { 428 __u16 type; 429 __u16 flags; 430 __u32 size; 431 }; 432 struct rkisp1_ext_params_bls_config { 433 struct rkisp1_ext_params_block_header header; 434 struct rkisp1_cif_isp_bls_config config; 435 } __attribute__((aligned(8))); 436 struct rkisp1_ext_params_dpcc_config { 437 struct rkisp1_ext_params_block_header header; 438 struct rkisp1_cif_isp_dpcc_config config; 439 } __attribute__((aligned(8))); 440 struct rkisp1_ext_params_sdg_config { 441 struct rkisp1_ext_params_block_header header; 442 struct rkisp1_cif_isp_sdg_config config; 443 } __attribute__((aligned(8))); 444 struct rkisp1_ext_params_lsc_config { 445 struct rkisp1_ext_params_block_header header; 446 struct rkisp1_cif_isp_lsc_config config; 447 } __attribute__((aligned(8))); 448 struct rkisp1_ext_params_awb_gain_config { 449 struct rkisp1_ext_params_block_header header; 450 struct rkisp1_cif_isp_awb_gain_config config; 451 } __attribute__((aligned(8))); 452 struct rkisp1_ext_params_flt_config { 453 struct rkisp1_ext_params_block_header header; 454 struct rkisp1_cif_isp_flt_config config; 455 } __attribute__((aligned(8))); 456 struct rkisp1_ext_params_bdm_config { 457 struct rkisp1_ext_params_block_header header; 458 struct rkisp1_cif_isp_bdm_config config; 459 } __attribute__((aligned(8))); 460 struct rkisp1_ext_params_ctk_config { 461 struct rkisp1_ext_params_block_header header; 462 struct rkisp1_cif_isp_ctk_config config; 463 } __attribute__((aligned(8))); 464 struct rkisp1_ext_params_goc_config { 465 struct rkisp1_ext_params_block_header header; 466 struct rkisp1_cif_isp_goc_config config; 467 } __attribute__((aligned(8))); 468 struct rkisp1_ext_params_dpf_config { 469 struct rkisp1_ext_params_block_header header; 470 struct rkisp1_cif_isp_dpf_config config; 471 } __attribute__((aligned(8))); 472 struct rkisp1_ext_params_dpf_strength_config { 473 struct rkisp1_ext_params_block_header header; 474 struct rkisp1_cif_isp_dpf_strength_config config; 475 } __attribute__((aligned(8))); 476 struct rkisp1_ext_params_cproc_config { 477 struct rkisp1_ext_params_block_header header; 478 struct rkisp1_cif_isp_cproc_config config; 479 } __attribute__((aligned(8))); 480 struct rkisp1_ext_params_ie_config { 481 struct rkisp1_ext_params_block_header header; 482 struct rkisp1_cif_isp_ie_config config; 483 } __attribute__((aligned(8))); 484 struct rkisp1_ext_params_awb_meas_config { 485 struct rkisp1_ext_params_block_header header; 486 struct rkisp1_cif_isp_awb_meas_config config; 487 } __attribute__((aligned(8))); 488 struct rkisp1_ext_params_hst_config { 489 struct rkisp1_ext_params_block_header header; 490 struct rkisp1_cif_isp_hst_config config; 491 } __attribute__((aligned(8))); 492 struct rkisp1_ext_params_aec_config { 493 struct rkisp1_ext_params_block_header header; 494 struct rkisp1_cif_isp_aec_config config; 495 } __attribute__((aligned(8))); 496 struct rkisp1_ext_params_afc_config { 497 struct rkisp1_ext_params_block_header header; 498 struct rkisp1_cif_isp_afc_config config; 499 } __attribute__((aligned(8))); 500 struct rkisp1_ext_params_compand_bls_config { 501 struct rkisp1_ext_params_block_header header; 502 struct rkisp1_cif_isp_compand_bls_config config; 503 } __attribute__((aligned(8))); 504 struct rkisp1_ext_params_compand_curve_config { 505 struct rkisp1_ext_params_block_header header; 506 struct rkisp1_cif_isp_compand_curve_config config; 507 } __attribute__((aligned(8))); 508 #define RKISP1_EXT_PARAMS_MAX_SIZE (sizeof(struct rkisp1_ext_params_bls_config) + sizeof(struct rkisp1_ext_params_dpcc_config) + sizeof(struct rkisp1_ext_params_sdg_config) + sizeof(struct rkisp1_ext_params_lsc_config) + sizeof(struct rkisp1_ext_params_awb_gain_config) + sizeof(struct rkisp1_ext_params_flt_config) + sizeof(struct rkisp1_ext_params_bdm_config) + sizeof(struct rkisp1_ext_params_ctk_config) + sizeof(struct rkisp1_ext_params_goc_config) + sizeof(struct rkisp1_ext_params_dpf_config) + sizeof(struct rkisp1_ext_params_dpf_strength_config) + sizeof(struct rkisp1_ext_params_cproc_config) + sizeof(struct rkisp1_ext_params_ie_config) + sizeof(struct rkisp1_ext_params_awb_meas_config) + sizeof(struct rkisp1_ext_params_hst_config) + sizeof(struct rkisp1_ext_params_aec_config) + sizeof(struct rkisp1_ext_params_afc_config) + sizeof(struct rkisp1_ext_params_compand_bls_config) + sizeof(struct rkisp1_ext_params_compand_curve_config) + sizeof(struct rkisp1_ext_params_compand_curve_config)) 509 enum rksip1_ext_param_buffer_version { 510 RKISP1_EXT_PARAM_BUFFER_V1 = 1, 511 }; 512 struct rkisp1_ext_params_cfg { 513 __u32 version; 514 __u32 data_size; 515 __u8 data[RKISP1_EXT_PARAMS_MAX_SIZE]; 516 }; 517 #endif 518