void ia_css_dp_encode( struct sh_css_isp_dp_params *to, const struct ia_css_dp_config *from) { int gain = from->gain; int gr = from->gr; int r = from->r; int b = from->b; int gb = from->gb; to->threshold_single = SH_CSS_BAYER_MAXVAL; to->threshold_2adjacent = uDIGIT_FITTING(from->threshold, 16, SH_CSS_BAYER_BITS); to->gain = uDIGIT_FITTING(from->gain, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_rr_gr = uDIGIT_FITTING (gain * gr / r, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_rr_gb = uDIGIT_FITTING (gain * gb / r, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_bb_gb = uDIGIT_FITTING (gain * gb / b, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_bb_gr = uDIGIT_FITTING (gain * gr / b, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_gr_rr = uDIGIT_FITTING (gain * r / gr, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_gr_bb = uDIGIT_FITTING (gain * b / gr, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_gb_bb = uDIGIT_FITTING (gain * b / gb, 8, SH_CSS_DP_GAIN_SHIFT); to->coef_gb_rr = uDIGIT_FITTING (gain * r / gb, 8, SH_CSS_DP_GAIN_SHIFT); }
void ia_css_ob2_encode( struct sh_css_isp_ob2_params *to, const struct ia_css_ob2_config *from, unsigned size) { (void)size; /* Blacklevels types are u0_16 */ to->blacklevel_gr = uDIGIT_FITTING(from->level_gr, 16, SH_CSS_BAYER_BITS); to->blacklevel_r = uDIGIT_FITTING(from->level_r, 16, SH_CSS_BAYER_BITS); to->blacklevel_b = uDIGIT_FITTING(from->level_b, 16, SH_CSS_BAYER_BITS); to->blacklevel_gb = uDIGIT_FITTING(from->level_gb, 16, SH_CSS_BAYER_BITS); }
void ia_css_gc_encode( struct sh_css_isp_gc_params *to, const struct ia_css_gc_config *from, unsigned size) { (void)size; to->gain_k1 = uDIGIT_FITTING((int)from->gain_k1, 16, IA_CSS_GAMMA_GAIN_K_SHIFT); to->gain_k2 = uDIGIT_FITTING((int)from->gain_k2, 16, IA_CSS_GAMMA_GAIN_K_SHIFT); }
void ia_css_wb_encode(struct sh_css_isp_wb_params *to, const struct ia_css_wb_config *from) { to->gain_shift = uISP_REG_BIT - from->integer_bits; to->gain_gr = uDIGIT_FITTING(from->gr, 16 - from->integer_bits, to->gain_shift); to->gain_r = uDIGIT_FITTING(from->r, 16 - from->integer_bits, to->gain_shift); to->gain_b = uDIGIT_FITTING(from->b, 16 - from->integer_bits, to->gain_shift); to->gain_gb = uDIGIT_FITTING(from->gb, 16 - from->integer_bits, to->gain_shift); }
void ia_css_xnr_encode( struct sh_css_isp_xnr_params *to, const struct ia_css_xnr_config *from, unsigned size) { (void)size; to->threshold = uDIGIT_FITTING(from->threshold, 16, SH_CSS_ISP_YUV_BITS); }