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