1f5fbb83fSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 29d4fa1a1SMauro Carvalho Chehab /* 39d4fa1a1SMauro Carvalho Chehab * Support for Intel Camera Imaging ISP subsystem. 49d4fa1a1SMauro Carvalho Chehab * Copyright (c) 2015, Intel Corporation. 59d4fa1a1SMauro Carvalho Chehab * 69d4fa1a1SMauro Carvalho Chehab * This program is free software; you can redistribute it and/or modify it 79d4fa1a1SMauro Carvalho Chehab * under the terms and conditions of the GNU General Public License, 89d4fa1a1SMauro Carvalho Chehab * version 2, as published by the Free Software Foundation. 99d4fa1a1SMauro Carvalho Chehab * 109d4fa1a1SMauro Carvalho Chehab * This program is distributed in the hope it will be useful, but WITHOUT 119d4fa1a1SMauro Carvalho Chehab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 129d4fa1a1SMauro Carvalho Chehab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 139d4fa1a1SMauro Carvalho Chehab * more details. 149d4fa1a1SMauro Carvalho Chehab */ 159d4fa1a1SMauro Carvalho Chehab 169d4fa1a1SMauro Carvalho Chehab #ifndef __IA_CSS_SDIS2_HOST_H 179d4fa1a1SMauro Carvalho Chehab #define __IA_CSS_SDIS2_HOST_H 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include "ia_css_sdis2_types.h" 209d4fa1a1SMauro Carvalho Chehab #include "ia_css_binary.h" 219d4fa1a1SMauro Carvalho Chehab #include "ia_css_stream.h" 229d4fa1a1SMauro Carvalho Chehab #include "sh_css_params.h" 239d4fa1a1SMauro Carvalho Chehab 249d4fa1a1SMauro Carvalho Chehab extern const struct ia_css_dvs2_coefficients default_sdis2_config; 259d4fa1a1SMauro Carvalho Chehab 269d4fa1a1SMauro Carvalho Chehab /* Opaque here, since size is binary dependent. */ 279d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_hori_coef_tbl; 289d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_vert_coef_tbl; 299d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_hori_proj_tbl; 309d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_vert_proj_tbl; 319d4fa1a1SMauro Carvalho Chehab 329d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_horicoef_vmem_encode( 339d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_hori_coef_tbl *to, 349d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *from, 359d4fa1a1SMauro Carvalho Chehab unsigned int size); 369d4fa1a1SMauro Carvalho Chehab 379d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_vertcoef_vmem_encode( 389d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_vert_coef_tbl *to, 399d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *from, 409d4fa1a1SMauro Carvalho Chehab unsigned int size); 419d4fa1a1SMauro Carvalho Chehab 429d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_horiproj_encode( 439d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_hori_proj_tbl *to, 449d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *from, 459d4fa1a1SMauro Carvalho Chehab unsigned int size); 469d4fa1a1SMauro Carvalho Chehab 479d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_vertproj_encode( 489d4fa1a1SMauro Carvalho Chehab struct sh_css_isp_sdis_vert_proj_tbl *to, 499d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *from, 509d4fa1a1SMauro Carvalho Chehab unsigned int size); 519d4fa1a1SMauro Carvalho Chehab 529d4fa1a1SMauro Carvalho Chehab void ia_css_get_isp_dvs2_coefficients( 539d4fa1a1SMauro Carvalho Chehab struct ia_css_stream *stream, 549d4fa1a1SMauro Carvalho Chehab short *hor_coefs_odd_real, 559d4fa1a1SMauro Carvalho Chehab short *hor_coefs_odd_imag, 569d4fa1a1SMauro Carvalho Chehab short *hor_coefs_even_real, 579d4fa1a1SMauro Carvalho Chehab short *hor_coefs_even_imag, 589d4fa1a1SMauro Carvalho Chehab short *ver_coefs_odd_real, 599d4fa1a1SMauro Carvalho Chehab short *ver_coefs_odd_imag, 609d4fa1a1SMauro Carvalho Chehab short *ver_coefs_even_real, 619d4fa1a1SMauro Carvalho Chehab short *ver_coefs_even_imag); 629d4fa1a1SMauro Carvalho Chehab 639d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_clear_coefficients( 649d4fa1a1SMauro Carvalho Chehab struct ia_css_dvs2_coefficients *dvs2_coefs); 659d4fa1a1SMauro Carvalho Chehab 6641022d35SMauro Carvalho Chehab int 679d4fa1a1SMauro Carvalho Chehab ia_css_get_dvs2_statistics( 689d4fa1a1SMauro Carvalho Chehab struct ia_css_dvs2_statistics *host_stats, 699d4fa1a1SMauro Carvalho Chehab const struct ia_css_isp_dvs_statistics *isp_stats); 709d4fa1a1SMauro Carvalho Chehab 719d4fa1a1SMauro Carvalho Chehab void 729d4fa1a1SMauro Carvalho Chehab ia_css_translate_dvs2_statistics( 739d4fa1a1SMauro Carvalho Chehab struct ia_css_dvs2_statistics *host_stats, 749d4fa1a1SMauro Carvalho Chehab const struct ia_css_isp_dvs_statistics_map *isp_stats); 759d4fa1a1SMauro Carvalho Chehab 769d4fa1a1SMauro Carvalho Chehab struct ia_css_isp_dvs_statistics * 779d4fa1a1SMauro Carvalho Chehab ia_css_isp_dvs2_statistics_allocate( 789d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs_grid_info *grid); 799d4fa1a1SMauro Carvalho Chehab 809d4fa1a1SMauro Carvalho Chehab void 819d4fa1a1SMauro Carvalho Chehab ia_css_isp_dvs2_statistics_free( 829d4fa1a1SMauro Carvalho Chehab struct ia_css_isp_dvs_statistics *me); 839d4fa1a1SMauro Carvalho Chehab 849d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_horicoef_debug_dtrace( 859d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *config, unsigned int level); 869d4fa1a1SMauro Carvalho Chehab 879d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_vertcoef_debug_dtrace( 889d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *config, unsigned int level); 899d4fa1a1SMauro Carvalho Chehab 909d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_horiproj_debug_dtrace( 919d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *config, unsigned int level); 929d4fa1a1SMauro Carvalho Chehab 939d4fa1a1SMauro Carvalho Chehab void ia_css_sdis2_vertproj_debug_dtrace( 949d4fa1a1SMauro Carvalho Chehab const struct ia_css_dvs2_coefficients *config, unsigned int level); 959d4fa1a1SMauro Carvalho Chehab 969d4fa1a1SMauro Carvalho Chehab #endif /* __IA_CSS_SDIS2_HOST_H */ 97