/* SPDX-License-Identifier: GPL-2.0 */ /* * Support for Intel Camera Imaging ISP subsystem. * Copyright (c) 2010 - 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 _ISP_TYPES_H_ #define _ISP_TYPES_H_ /* * Workaround: hivecc complains about "tag "sh_css_3a_output" already declared" * without this extra decl. */ struct ia_css_3a_output; /* * Input stream formats, these correspond to the MIPI formats and the way * the CSS receiver sends these to the input formatter. * The bit depth of each pixel element is stored in the global variable * isp_bits_per_pixel. * NOTE: for rgb565, we set isp_bits_per_pixel to 565, for all other rgb * formats it's the actual depth (4, for 444, 8 for 888 etc). */ enum sh_stream_format { sh_stream_format_yuv420_legacy, sh_stream_format_yuv420, sh_stream_format_yuv422, sh_stream_format_rgb, sh_stream_format_raw, sh_stream_format_binary, /* bytestream such as jpeg */ }; struct s_isp_frames { /* * Global variables that are written to by either the SP or the host, * every ISP binary needs these. */ /* output frame */ char *xmem_base_addr_y; char *xmem_base_addr_uv; char *xmem_base_addr_u; char *xmem_base_addr_v; /* 2nd output frame */ char *xmem_base_addr_second_out_y; char *xmem_base_addr_second_out_u; char *xmem_base_addr_second_out_v; /* input yuv frame */ char *xmem_base_addr_y_in; char *xmem_base_addr_u_in; char *xmem_base_addr_v_in; /* input raw frame */ char *xmem_base_addr_raw; /* output raw frame */ char *xmem_base_addr_raw_out; /* viewfinder output (vf_veceven) */ char *xmem_base_addr_vfout_y; char *xmem_base_addr_vfout_u; char *xmem_base_addr_vfout_v; /* overlay frame (for vf_pp) */ char *xmem_base_addr_overlay_y; char *xmem_base_addr_overlay_u; char *xmem_base_addr_overlay_v; /* pre-gdc output frame (gdc input) */ char *xmem_base_addr_qplane_r; char *xmem_base_addr_qplane_ratb; char *xmem_base_addr_qplane_gr; char *xmem_base_addr_qplane_gb; char *xmem_base_addr_qplane_b; char *xmem_base_addr_qplane_batr; /* YUV as input, used by postisp binary */ char *xmem_base_addr_yuv_16_y; char *xmem_base_addr_yuv_16_u; char *xmem_base_addr_yuv_16_v; }; #endif /* _ISP_TYPES_H_ */