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