3 * Support for Intel Camera Imaging ISP subsystem.
4 * Copyright (c) 2015, Intel Corporation.
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms and conditions of the GNU General Public License,
8 * version 2, as published by the Free Software Foundation.
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
17 Support for Intel Camera Imaging ISP subsystem.
18 Copyright (c) 2010 - 2015, Intel Corporation.
20 This program is free software; you can redistribute it and/or modify it
21 under the terms and conditions of the GNU General Public License,
22 version 2, as published by the Free Software Foundation.
24 This program is distributed in the hope it will be useful, but WITHOUT
25 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
34 /* Workaround: hivecc complains about "tag "sh_css_3a_output" already declared"
35 without this extra decl. */
36 struct ia_css_3a_output;
39 struct isp_uds_config {
43 unsigned hive_bpp; /* gdc_bits_per_pixel */
47 struct s_isp_gdcac_config {
52 /* output.hive.c request information */
57 } output_channel_type;
59 typedef struct s_output_dma_info {
60 unsigned cond; /* Condition for transfer */
61 output_channel_type channel_type;
66 unsigned v_delta; /* Offset for v address to do cropping */
67 char *x_base; /* X base address */
68 } output_dma_info_type;
71 /* Input stream formats, these correspond to the MIPI formats and the way
72 * the CSS receiver sends these to the input formatter.
73 * The bit depth of each pixel element is stored in the global variable
75 * NOTE: for rgb565, we set isp_bits_per_pixel to 565, for all other rgb
76 * formats it's the actual depth (4, for 444, 8 for 888 etc).
78 enum sh_stream_format {
79 sh_stream_format_yuv420_legacy,
80 sh_stream_format_yuv420,
81 sh_stream_format_yuv422,
84 sh_stream_format_binary, /* bytestream such as jpeg */
88 /* global variables that are written to by either the SP or the host,
89 every ISP binary needs these. */
91 char *xmem_base_addr_y;
92 char *xmem_base_addr_uv;
93 char *xmem_base_addr_u;
94 char *xmem_base_addr_v;
95 /* 2nd output frame */
96 char *xmem_base_addr_second_out_y;
97 char *xmem_base_addr_second_out_u;
98 char *xmem_base_addr_second_out_v;
100 char *xmem_base_addr_y_in;
101 char *xmem_base_addr_u_in;
102 char *xmem_base_addr_v_in;
103 /* input raw frame */
104 char *xmem_base_addr_raw;
105 /* output raw frame */
106 char *xmem_base_addr_raw_out;
107 /* viewfinder output (vf_veceven) */
108 char *xmem_base_addr_vfout_y;
109 char *xmem_base_addr_vfout_u;
110 char *xmem_base_addr_vfout_v;
111 /* overlay frame (for vf_pp) */
112 char *xmem_base_addr_overlay_y;
113 char *xmem_base_addr_overlay_u;
114 char *xmem_base_addr_overlay_v;
115 /* pre-gdc output frame (gdc input) */
116 char *xmem_base_addr_qplane_r;
117 char *xmem_base_addr_qplane_ratb;
118 char *xmem_base_addr_qplane_gr;
119 char *xmem_base_addr_qplane_gb;
120 char *xmem_base_addr_qplane_b;
121 char *xmem_base_addr_qplane_batr;
122 /* YUV as input, used by postisp binary */
123 char *xmem_base_addr_yuv_16_y;
124 char *xmem_base_addr_yuv_16_u;
125 char *xmem_base_addr_yuv_16_v;
128 #endif /* _ISP_TYPES_H_ */