1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Support for Intel Camera Imaging ISP subsystem. 4 * Copyright (c) 2010 - 2015, Intel Corporation. 5 */ 6 7 #ifndef _ISP_TYPES_H_ 8 #define _ISP_TYPES_H_ 9 10 /* 11 * Workaround: hivecc complains about "tag "sh_css_3a_output" already declared" 12 * without this extra decl. 13 */ 14 struct ia_css_3a_output; 15 16 /* 17 * Input stream formats, these correspond to the MIPI formats and the way 18 * the CSS receiver sends these to the input formatter. 19 * The bit depth of each pixel element is stored in the global variable 20 * isp_bits_per_pixel. 21 * NOTE: for rgb565, we set isp_bits_per_pixel to 565, for all other rgb 22 * formats it's the actual depth (4, for 444, 8 for 888 etc). 23 */ 24 enum sh_stream_format { 25 sh_stream_format_yuv420_legacy, 26 sh_stream_format_yuv420, 27 sh_stream_format_yuv422, 28 sh_stream_format_rgb, 29 sh_stream_format_raw, 30 sh_stream_format_binary, /* bytestream such as jpeg */ 31 }; 32 33 struct s_isp_frames { 34 /* 35 * Global variables that are written to by either the SP or the host, 36 * every ISP binary needs these. 37 */ 38 /* output frame */ 39 char *xmem_base_addr_y; 40 char *xmem_base_addr_uv; 41 char *xmem_base_addr_u; 42 char *xmem_base_addr_v; 43 /* 2nd output frame */ 44 char *xmem_base_addr_second_out_y; 45 char *xmem_base_addr_second_out_u; 46 char *xmem_base_addr_second_out_v; 47 /* input yuv frame */ 48 char *xmem_base_addr_y_in; 49 char *xmem_base_addr_u_in; 50 char *xmem_base_addr_v_in; 51 /* input raw frame */ 52 char *xmem_base_addr_raw; 53 /* output raw frame */ 54 char *xmem_base_addr_raw_out; 55 /* viewfinder output (vf_veceven) */ 56 char *xmem_base_addr_vfout_y; 57 char *xmem_base_addr_vfout_u; 58 char *xmem_base_addr_vfout_v; 59 /* overlay frame (for vf_pp) */ 60 char *xmem_base_addr_overlay_y; 61 char *xmem_base_addr_overlay_u; 62 char *xmem_base_addr_overlay_v; 63 /* pre-gdc output frame (gdc input) */ 64 char *xmem_base_addr_qplane_r; 65 char *xmem_base_addr_qplane_ratb; 66 char *xmem_base_addr_qplane_gr; 67 char *xmem_base_addr_qplane_gb; 68 char *xmem_base_addr_qplane_b; 69 char *xmem_base_addr_qplane_batr; 70 /* YUV as input, used by postisp binary */ 71 char *xmem_base_addr_yuv_16_y; 72 char *xmem_base_addr_yuv_16_u; 73 char *xmem_base_addr_yuv_16_v; 74 }; 75 76 #endif /* _ISP_TYPES_H_ */ 77