1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2015, Intel Corporation. 5 */ 6 7 #ifndef __IA_CSS_SDIS_HOST_H 8 #define __IA_CSS_SDIS_HOST_H 9 10 #include "ia_css_sdis_types.h" 11 #include "ia_css_binary.h" 12 #include "ia_css_stream.h" 13 #include "sh_css_params.h" 14 15 extern const struct ia_css_dvs_coefficients default_sdis_config; 16 17 /* Opaque here, since size is binary dependent. */ 18 struct sh_css_isp_sdis_hori_coef_tbl; 19 struct sh_css_isp_sdis_vert_coef_tbl; 20 struct sh_css_isp_sdis_hori_proj_tbl; 21 struct sh_css_isp_sdis_vert_proj_tbl; 22 23 void ia_css_sdis_horicoef_vmem_encode( 24 struct sh_css_isp_sdis_hori_coef_tbl *to, 25 const struct ia_css_dvs_coefficients *from, 26 unsigned int size); 27 28 void ia_css_sdis_vertcoef_vmem_encode( 29 struct sh_css_isp_sdis_vert_coef_tbl *to, 30 const struct ia_css_dvs_coefficients *from, 31 unsigned int size); 32 33 void ia_css_sdis_horiproj_encode( 34 struct sh_css_isp_sdis_hori_proj_tbl *to, 35 const struct ia_css_dvs_coefficients *from, 36 unsigned int size); 37 38 void ia_css_sdis_vertproj_encode( 39 struct sh_css_isp_sdis_vert_proj_tbl *to, 40 const struct ia_css_dvs_coefficients *from, 41 unsigned int size); 42 43 void ia_css_get_isp_dis_coefficients( 44 struct ia_css_stream *stream, 45 short *horizontal_coefficients, 46 short *vertical_coefficients); 47 48 int 49 ia_css_get_dvs_statistics( 50 struct ia_css_dvs_statistics *host_stats, 51 const struct ia_css_isp_dvs_statistics *isp_stats); 52 53 void 54 ia_css_translate_dvs_statistics( 55 struct ia_css_dvs_statistics *host_stats, 56 const struct ia_css_isp_dvs_statistics_map *isp_stats); 57 58 struct ia_css_isp_dvs_statistics * 59 ia_css_isp_dvs_statistics_allocate( 60 const struct ia_css_dvs_grid_info *grid); 61 62 void 63 ia_css_isp_dvs_statistics_free( 64 struct ia_css_isp_dvs_statistics *me); 65 66 size_t ia_css_sdis_hor_coef_tbl_bytes(const struct ia_css_binary *binary); 67 size_t ia_css_sdis_ver_coef_tbl_bytes(const struct ia_css_binary *binary); 68 69 void 70 ia_css_sdis_init_info( 71 struct ia_css_sdis_info *dis, 72 unsigned int sc_3a_dis_width, 73 unsigned int sc_3a_dis_padded_width, 74 unsigned int sc_3a_dis_height, 75 unsigned int isp_pipe_version, 76 unsigned int enabled); 77 78 void ia_css_sdis_clear_coefficients( 79 struct ia_css_dvs_coefficients *dvs_coefs); 80 81 void ia_css_sdis_horicoef_debug_dtrace( 82 const struct ia_css_dvs_coefficients *config, unsigned int level); 83 84 void ia_css_sdis_vertcoef_debug_dtrace( 85 const struct ia_css_dvs_coefficients *config, unsigned int level); 86 87 void ia_css_sdis_horiproj_debug_dtrace( 88 const struct ia_css_dvs_coefficients *config, unsigned int level); 89 90 void ia_css_sdis_vertproj_debug_dtrace( 91 const struct ia_css_dvs_coefficients *config, unsigned int level); 92 93 #endif /* __IA_CSS_SDIS_HOST_H */ 94