1 /* 2 * Support for Intel Camera Imaging ISP subsystem. 3 * Copyright (c) 2015, Intel Corporation. 4 * 5 * This program is free software; you can redistribute it and/or modify it 6 * under the terms and conditions of the GNU General Public License, 7 * version 2, as published by the Free Software Foundation. 8 * 9 * This program is distributed in the hope it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 12 * more details. 13 */ 14 15 #ifndef __IA_CSS_SDIS_HOST_H 16 #define __IA_CSS_SDIS_HOST_H 17 18 #include "ia_css_sdis_types.h" 19 #include "ia_css_binary.h" 20 #include "ia_css_stream.h" 21 #include "sh_css_params.h" 22 23 extern const struct ia_css_dvs_coefficients default_sdis_config; 24 25 /* Opaque here, since size is binary dependent. */ 26 struct sh_css_isp_sdis_hori_coef_tbl; 27 struct sh_css_isp_sdis_vert_coef_tbl; 28 struct sh_css_isp_sdis_hori_proj_tbl; 29 struct sh_css_isp_sdis_vert_proj_tbl; 30 31 void ia_css_sdis_horicoef_vmem_encode( 32 struct sh_css_isp_sdis_hori_coef_tbl *to, 33 const struct ia_css_dvs_coefficients *from, 34 unsigned int size); 35 36 void ia_css_sdis_vertcoef_vmem_encode( 37 struct sh_css_isp_sdis_vert_coef_tbl *to, 38 const struct ia_css_dvs_coefficients *from, 39 unsigned int size); 40 41 void ia_css_sdis_horiproj_encode( 42 struct sh_css_isp_sdis_hori_proj_tbl *to, 43 const struct ia_css_dvs_coefficients *from, 44 unsigned int size); 45 46 void ia_css_sdis_vertproj_encode( 47 struct sh_css_isp_sdis_vert_proj_tbl *to, 48 const struct ia_css_dvs_coefficients *from, 49 unsigned int size); 50 51 void ia_css_get_isp_dis_coefficients( 52 struct ia_css_stream *stream, 53 short *horizontal_coefficients, 54 short *vertical_coefficients); 55 56 int 57 ia_css_get_dvs_statistics( 58 struct ia_css_dvs_statistics *host_stats, 59 const struct ia_css_isp_dvs_statistics *isp_stats); 60 61 void 62 ia_css_translate_dvs_statistics( 63 struct ia_css_dvs_statistics *host_stats, 64 const struct ia_css_isp_dvs_statistics_map *isp_stats); 65 66 struct ia_css_isp_dvs_statistics * 67 ia_css_isp_dvs_statistics_allocate( 68 const struct ia_css_dvs_grid_info *grid); 69 70 void 71 ia_css_isp_dvs_statistics_free( 72 struct ia_css_isp_dvs_statistics *me); 73 74 size_t ia_css_sdis_hor_coef_tbl_bytes(const struct ia_css_binary *binary); 75 size_t ia_css_sdis_ver_coef_tbl_bytes(const struct ia_css_binary *binary); 76 77 void 78 ia_css_sdis_init_info( 79 struct ia_css_sdis_info *dis, 80 unsigned int sc_3a_dis_width, 81 unsigned int sc_3a_dis_padded_width, 82 unsigned int sc_3a_dis_height, 83 unsigned int isp_pipe_version, 84 unsigned int enabled); 85 86 void ia_css_sdis_clear_coefficients( 87 struct ia_css_dvs_coefficients *dvs_coefs); 88 89 void ia_css_sdis_horicoef_debug_dtrace( 90 const struct ia_css_dvs_coefficients *config, unsigned int level); 91 92 void ia_css_sdis_vertcoef_debug_dtrace( 93 const struct ia_css_dvs_coefficients *config, unsigned int level); 94 95 void ia_css_sdis_horiproj_debug_dtrace( 96 const struct ia_css_dvs_coefficients *config, unsigned int level); 97 98 void ia_css_sdis_vertproj_debug_dtrace( 99 const struct ia_css_dvs_coefficients *config, unsigned int level); 100 101 #endif /* __IA_CSS_SDIS_HOST_H */ 102