/* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2015, Intel Corporation. * * This program is free software; you can redistribute it and/or modify it * under the terms and conditions of the GNU General Public License, * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. */ #ifndef __IA_CSS_SDIS_HOST_H #define __IA_CSS_SDIS_HOST_H #include "ia_css_sdis_types.h" #include "ia_css_binary.h" #include "ia_css_stream.h" #include "sh_css_params.h" extern const struct ia_css_dvs_coefficients default_sdis_config; /* Opaque here, since size is binary dependent. */ struct sh_css_isp_sdis_hori_coef_tbl; struct sh_css_isp_sdis_vert_coef_tbl; struct sh_css_isp_sdis_hori_proj_tbl; struct sh_css_isp_sdis_vert_proj_tbl; void ia_css_sdis_horicoef_vmem_encode( struct sh_css_isp_sdis_hori_coef_tbl *to, const struct ia_css_dvs_coefficients *from, unsigned int size); void ia_css_sdis_vertcoef_vmem_encode( struct sh_css_isp_sdis_vert_coef_tbl *to, const struct ia_css_dvs_coefficients *from, unsigned int size); void ia_css_sdis_horiproj_encode( struct sh_css_isp_sdis_hori_proj_tbl *to, const struct ia_css_dvs_coefficients *from, unsigned int size); void ia_css_sdis_vertproj_encode( struct sh_css_isp_sdis_vert_proj_tbl *to, const struct ia_css_dvs_coefficients *from, unsigned int size); void ia_css_get_isp_dis_coefficients( struct ia_css_stream *stream, short *horizontal_coefficients, short *vertical_coefficients); enum ia_css_err ia_css_get_dvs_statistics( struct ia_css_dvs_statistics *host_stats, const struct ia_css_isp_dvs_statistics *isp_stats); void ia_css_translate_dvs_statistics( struct ia_css_dvs_statistics *host_stats, const struct ia_css_isp_dvs_statistics_map *isp_stats); struct ia_css_isp_dvs_statistics * ia_css_isp_dvs_statistics_allocate( const struct ia_css_dvs_grid_info *grid); void ia_css_isp_dvs_statistics_free( struct ia_css_isp_dvs_statistics *me); size_t ia_css_sdis_hor_coef_tbl_bytes(const struct ia_css_binary *binary); size_t ia_css_sdis_ver_coef_tbl_bytes(const struct ia_css_binary *binary); void ia_css_sdis_init_info( struct ia_css_sdis_info *dis, unsigned int sc_3a_dis_width, unsigned int sc_3a_dis_padded_width, unsigned int sc_3a_dis_height, unsigned int isp_pipe_version, unsigned int enabled); void ia_css_sdis_clear_coefficients( struct ia_css_dvs_coefficients *dvs_coefs); void ia_css_sdis_horicoef_debug_dtrace( const struct ia_css_dvs_coefficients *config, unsigned int level); void ia_css_sdis_vertcoef_debug_dtrace( const struct ia_css_dvs_coefficients *config, unsigned int level); void ia_css_sdis_horiproj_debug_dtrace( const struct ia_css_dvs_coefficients *config, unsigned int level); void ia_css_sdis_vertproj_debug_dtrace( const struct ia_css_dvs_coefficients *config, unsigned int level); #endif /* __IA_CSS_SDIS_HOST_H */