1*f5fbb83fSMauro 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_STREAM_H_ 179d4fa1a1SMauro Carvalho Chehab #define _IA_CSS_STREAM_H_ 189d4fa1a1SMauro Carvalho Chehab 199d4fa1a1SMauro Carvalho Chehab #include <type_support.h> 209d4fa1a1SMauro Carvalho Chehab #include <system_local.h> 219d4fa1a1SMauro Carvalho Chehab #include <input_system.h> 229d4fa1a1SMauro Carvalho Chehab #include "ia_css_types.h" 239d4fa1a1SMauro Carvalho Chehab #include "ia_css_stream_public.h" 249d4fa1a1SMauro Carvalho Chehab 259d4fa1a1SMauro Carvalho Chehab /** 269d4fa1a1SMauro Carvalho Chehab * structure to hold all internal stream related information 279d4fa1a1SMauro Carvalho Chehab */ 289d4fa1a1SMauro Carvalho Chehab struct ia_css_stream { 299d4fa1a1SMauro Carvalho Chehab struct ia_css_stream_config config; 309d4fa1a1SMauro Carvalho Chehab struct ia_css_stream_info info; 319d4fa1a1SMauro Carvalho Chehab rx_cfg_t csi_rx_config; 329d4fa1a1SMauro Carvalho Chehab bool reconfigure_css_rx; 339d4fa1a1SMauro Carvalho Chehab struct ia_css_pipe *last_pipe; 349d4fa1a1SMauro Carvalho Chehab int num_pipes; 359d4fa1a1SMauro Carvalho Chehab struct ia_css_pipe **pipes; 369d4fa1a1SMauro Carvalho Chehab struct ia_css_pipe *continuous_pipe; 379d4fa1a1SMauro Carvalho Chehab struct ia_css_isp_parameters *isp_params_configs; 389d4fa1a1SMauro Carvalho Chehab struct ia_css_isp_parameters *per_frame_isp_params_configs; 399d4fa1a1SMauro Carvalho Chehab 409d4fa1a1SMauro Carvalho Chehab bool cont_capt; 419d4fa1a1SMauro Carvalho Chehab bool disable_cont_vf; 429d4fa1a1SMauro Carvalho Chehab 439d4fa1a1SMauro Carvalho Chehab /* ISP2401 */ 449d4fa1a1SMauro Carvalho Chehab bool stop_copy_preview; 459d4fa1a1SMauro Carvalho Chehab bool started; 469d4fa1a1SMauro Carvalho Chehab }; 479d4fa1a1SMauro Carvalho Chehab 489d4fa1a1SMauro Carvalho Chehab /* @brief Get a binary in the stream, which binary has the shading correction. 499d4fa1a1SMauro Carvalho Chehab * 509d4fa1a1SMauro Carvalho Chehab * @param[in] stream: The stream. 519d4fa1a1SMauro Carvalho Chehab * @return The binary which has the shading correction. 529d4fa1a1SMauro Carvalho Chehab * 539d4fa1a1SMauro Carvalho Chehab */ 549d4fa1a1SMauro Carvalho Chehab struct ia_css_binary * 559d4fa1a1SMauro Carvalho Chehab ia_css_stream_get_shading_correction_binary(const struct ia_css_stream *stream); 569d4fa1a1SMauro Carvalho Chehab 579d4fa1a1SMauro Carvalho Chehab struct ia_css_binary * 589d4fa1a1SMauro Carvalho Chehab ia_css_stream_get_dvs_binary(const struct ia_css_stream *stream); 599d4fa1a1SMauro Carvalho Chehab 609d4fa1a1SMauro Carvalho Chehab struct ia_css_binary * 619d4fa1a1SMauro Carvalho Chehab ia_css_stream_get_3a_binary(const struct ia_css_stream *stream); 629d4fa1a1SMauro Carvalho Chehab 639d4fa1a1SMauro Carvalho Chehab unsigned int 649d4fa1a1SMauro Carvalho Chehab ia_css_stream_input_format_bits_per_pixel(struct ia_css_stream *stream); 659d4fa1a1SMauro Carvalho Chehab 669d4fa1a1SMauro Carvalho Chehab bool 679d4fa1a1SMauro Carvalho Chehab sh_css_params_set_binning_factor(struct ia_css_stream *stream, 689d4fa1a1SMauro Carvalho Chehab unsigned int sensor_binning); 699d4fa1a1SMauro Carvalho Chehab 709d4fa1a1SMauro Carvalho Chehab void 719d4fa1a1SMauro Carvalho Chehab sh_css_invalidate_params(struct ia_css_stream *stream); 729d4fa1a1SMauro Carvalho Chehab 739d4fa1a1SMauro Carvalho Chehab /* The following functions are used for testing purposes only */ 749d4fa1a1SMauro Carvalho Chehab const struct ia_css_fpn_table * 759d4fa1a1SMauro Carvalho Chehab ia_css_get_fpn_table(struct ia_css_stream *stream); 769d4fa1a1SMauro Carvalho Chehab 779d4fa1a1SMauro Carvalho Chehab /* @brief Get a pointer to the shading table. 789d4fa1a1SMauro Carvalho Chehab * 799d4fa1a1SMauro Carvalho Chehab * @param[in] stream: The stream. 809d4fa1a1SMauro Carvalho Chehab * @return The pointer to the shading table. 819d4fa1a1SMauro Carvalho Chehab * 829d4fa1a1SMauro Carvalho Chehab */ 839d4fa1a1SMauro Carvalho Chehab struct ia_css_shading_table * 849d4fa1a1SMauro Carvalho Chehab ia_css_get_shading_table(struct ia_css_stream *stream); 859d4fa1a1SMauro Carvalho Chehab 869d4fa1a1SMauro Carvalho Chehab void 879d4fa1a1SMauro Carvalho Chehab ia_css_get_isp_dis_coefficients(struct ia_css_stream *stream, 889d4fa1a1SMauro Carvalho Chehab short *horizontal_coefficients, 899d4fa1a1SMauro Carvalho Chehab short *vertical_coefficients); 909d4fa1a1SMauro Carvalho Chehab 919d4fa1a1SMauro Carvalho Chehab void 929d4fa1a1SMauro Carvalho Chehab ia_css_get_isp_dvs2_coefficients(struct ia_css_stream *stream, 939d4fa1a1SMauro Carvalho Chehab short *hor_coefs_odd_real, 949d4fa1a1SMauro Carvalho Chehab short *hor_coefs_odd_imag, 959d4fa1a1SMauro Carvalho Chehab short *hor_coefs_even_real, 969d4fa1a1SMauro Carvalho Chehab short *hor_coefs_even_imag, 979d4fa1a1SMauro Carvalho Chehab short *ver_coefs_odd_real, 989d4fa1a1SMauro Carvalho Chehab short *ver_coefs_odd_imag, 999d4fa1a1SMauro Carvalho Chehab short *ver_coefs_even_real, 1009d4fa1a1SMauro Carvalho Chehab short *ver_coefs_even_imag); 1019d4fa1a1SMauro Carvalho Chehab 10241022d35SMauro Carvalho Chehab int 1039d4fa1a1SMauro Carvalho Chehab ia_css_stream_isp_parameters_init(struct ia_css_stream *stream); 1049d4fa1a1SMauro Carvalho Chehab 1059d4fa1a1SMauro Carvalho Chehab void 1069d4fa1a1SMauro Carvalho Chehab ia_css_stream_isp_parameters_uninit(struct ia_css_stream *stream); 1079d4fa1a1SMauro Carvalho Chehab 1089d4fa1a1SMauro Carvalho Chehab #endif /*_IA_CSS_STREAM_H_*/ 109