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
31 #ifndef _COMMON_ISP_CONST_H_
32 #define _COMMON_ISP_CONST_H_
34 /*#include "isp.h"*/ /* ISP_VEC_NELEMS */
36 /* Binary independent constants */
39 # define NO_HOIST HIVE_ATTRIBUTE (( no_hoist ))
42 #define NO_HOIST_CSE HIVE_ATTRIBUTE ((no_hoist, no_cse))
44 #define UNION struct /* Union constructors not allowed in C++ */
46 /* ISP binary identifiers.
47 These determine the order in which the binaries are looked up, do not change
49 Also, the SP firmware uses this same order (isp_loader.hive.c).
50 Also, gen_firmware.c uses this order in its firmware_header.
52 /* The binary id is used in pre-processor expressions so we cannot
53 * use an enum here. */
55 #define SH_CSS_BINARY_ID_COPY 0
56 #define SH_CSS_BINARY_ID_BAYER_DS 1
57 #define SH_CSS_BINARY_ID_VF_PP_FULL 2
58 #define SH_CSS_BINARY_ID_VF_PP_OPT 3
59 #define SH_CSS_BINARY_ID_YUV_SCALE 4
60 #define SH_CSS_BINARY_ID_CAPTURE_PP 5
61 #define SH_CSS_BINARY_ID_PRE_ISP 6
62 #define SH_CSS_BINARY_ID_PRE_ISP_ISP2 7
63 #define SH_CSS_BINARY_ID_GDC 8
64 #define SH_CSS_BINARY_ID_POST_ISP 9
65 #define SH_CSS_BINARY_ID_POST_ISP_ISP2 10
66 #define SH_CSS_BINARY_ID_ANR 11
67 #define SH_CSS_BINARY_ID_ANR_ISP2 12
68 #define SH_CSS_BINARY_ID_PREVIEW_CONT_DS 13
69 #define SH_CSS_BINARY_ID_PREVIEW_DS 14
70 #define SH_CSS_BINARY_ID_PREVIEW_DEC 15
71 #define SH_CSS_BINARY_ID_PREVIEW_CONT_BDS125_ISP2 16
72 #define SH_CSS_BINARY_ID_PREVIEW_CONT_DPC_BDS150_ISP2 17
73 #define SH_CSS_BINARY_ID_PREVIEW_CONT_BDS150_ISP2 18
74 #define SH_CSS_BINARY_ID_PREVIEW_CONT_DPC_BDS200_ISP2 19
75 #define SH_CSS_BINARY_ID_PREVIEW_CONT_BDS200_ISP2 20
76 #define SH_CSS_BINARY_ID_PREVIEW_DZ 21
77 #define SH_CSS_BINARY_ID_PREVIEW_DZ_ISP2 22
78 #define SH_CSS_BINARY_ID_PRIMARY_DS 23
79 #define SH_CSS_BINARY_ID_PRIMARY_VAR 24
80 #define SH_CSS_BINARY_ID_PRIMARY_VAR_ISP2 25
81 #define SH_CSS_BINARY_ID_PRIMARY_SMALL 26
82 #define SH_CSS_BINARY_ID_PRIMARY_STRIPED 27
83 #define SH_CSS_BINARY_ID_PRIMARY_STRIPED_ISP2 28
84 #define SH_CSS_BINARY_ID_PRIMARY_8MP 29
85 #define SH_CSS_BINARY_ID_PRIMARY_14MP 30
86 #define SH_CSS_BINARY_ID_PRIMARY_16MP 31
87 #define SH_CSS_BINARY_ID_PRIMARY_REF 32
88 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE0 33
89 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE1 34
90 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE2 35
91 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE3 36
92 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE4 37
93 #define SH_CSS_BINARY_ID_PRIMARY_ISP261_STAGE5 38
94 #define SH_CSS_BINARY_ID_VIDEO_OFFLINE 39
95 #define SH_CSS_BINARY_ID_VIDEO_DS 40
96 #define SH_CSS_BINARY_ID_VIDEO_YUV_DS 41
97 #define SH_CSS_BINARY_ID_VIDEO_DZ 42
98 #define SH_CSS_BINARY_ID_VIDEO_DZ_2400_ONLY 43
99 #define SH_CSS_BINARY_ID_VIDEO_HIGH 44
100 #define SH_CSS_BINARY_ID_VIDEO_NODZ 45
101 #define SH_CSS_BINARY_ID_VIDEO_CONT_MULTIBDS_ISP2_MIN 46
102 #define SH_CSS_BINARY_ID_VIDEO_CONT_BDS_300_600_ISP2_MIN 47
103 #define SH_CSS_BINARY_ID_VIDEO_CONT_DPC_BDS150_ISP2_MIN 48
104 #define SH_CSS_BINARY_ID_VIDEO_CONT_BDS150_ISP2_MIN 49
105 #define SH_CSS_BINARY_ID_VIDEO_CONT_DPC_BDS200_ISP2_MIN 50
106 #define SH_CSS_BINARY_ID_VIDEO_CONT_BDS200_ISP2_MIN 51
107 #define SH_CSS_BINARY_ID_VIDEO_CONT_NOBDS_ISP2_MIN 52
108 #define SH_CSS_BINARY_ID_VIDEO_DZ_ISP2_MIN 53
109 #define SH_CSS_BINARY_ID_VIDEO_DZ_ISP2 54
110 #define SH_CSS_BINARY_ID_VIDEO_LP_ISP2 55
111 #define SH_CSS_BINARY_ID_RESERVED1 56
112 #define SH_CSS_BINARY_ID_ACCELERATION 57
113 #define SH_CSS_BINARY_ID_PRE_DE_ISP2 58
114 #define SH_CSS_BINARY_ID_KERNEL_TEST_LOAD_STORE 59
115 #define SH_CSS_BINARY_ID_CAPTURE_PP_BLI 60
116 #define SH_CSS_BINARY_ID_CAPTURE_PP_LDC 61
118 #define SH_CSS_BINARY_ID_PRIMARY_STRIPED_ISP2_XNR 62
121 /* skycam kerneltest pipelines */
123 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_NORM 120
124 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_NORM_STRIPED 121
125 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_LIN 122
126 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_LIN_STRIPED 123
127 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_SHD 124
128 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_SHD_STRIPED 125
129 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AWB 126
130 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_3A 127
131 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_3A_STRIPED 128
132 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AF 129
133 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OBGRID 130
134 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_BAYER_DENOISE 131
135 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_BAYER_DENOISE_STRIPED 132
136 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_DEMOSAIC 133
137 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP1_C0 134
138 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP2 135
139 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_REF 136
140 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_REF_STRIPED 137
141 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_REF 138
142 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DVS 139
143 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR 140
144 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_STRIPED 141
145 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_BLENDING 142
146 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR_BLOCK 143
147 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AE 144
148 #define SH_CSS_BINARY_ID_VIDEO_RAW 145
149 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AWB_FR 146
150 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DM_RGBPP 147
151 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DM_RGBPP_STRIPED 148
152 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_ANR 149
153 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_IF 150
154 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_IF_STRIPED 151
155 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SYSTEM 152
156 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR_STRIPED 153
157 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DVS_STRIPED 154
158 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OBGRID_STRIPED 155
159 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV 156
160 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV_BLOCK 157
161 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV16_BLOCK 158
162 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV16_STRIPED 159
163 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_BLOCK_STRIPED 160
164 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_INPUT_YUV 161
165 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_YUV 162
166 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_YUV_16 163
167 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SPLIT 164
168 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SYSTEM_STRIPED 165
171 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_NORM 121
172 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_NORM_STRIPED 122
173 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OBGRID 123
174 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OBGRID_STRIPED 124
175 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_LIN 125
176 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_LIN_STRIPED 126
177 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_SHD 127
178 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_SHD_STRIPED 128
179 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AE 129
180 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AWB 130
181 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AF 131
182 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_ACC_AWB_FR 132
183 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_3A 133
184 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_3A_STRIPED 134
185 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_BAYER_DENOISE 135
186 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_BAYER_DENOISE_STRIPED 136
187 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_ANR 137
188 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_ANR_STRIPED 138
189 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_DEMOSAIC 139
190 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DM_RGBPP 140
191 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DM_RGBPP_STRIPED 141
192 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP1_C0 142
193 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP2 143
194 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP2_STRIPED 144
195 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_REF 145
196 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR 146
197 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_STRIPED 147
198 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_XNR_BLENDING 148
199 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_REF 149
200 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_REF_STRIPED 150
201 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DVS 151
202 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_DVS_STRIPED 152
203 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_DVS_STAT_C0 153
204 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR_BLOCK 154
205 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR_STRIPED 155
206 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SYSTEM 156
207 #define SH_CSS_BINARY_ID_VIDEO_RAW 157
208 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV 158
209 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV_BLOCK 159
210 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV16_BLOCK 160
211 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_YUV16_STRIPED 161
212 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_COPY_BLOCK_STRIPED 162
213 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_INPUT_YUV 163
214 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_YUV 164
215 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_YUV_16 165
216 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SPLIT 166
217 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_OUTPUT_SYSTEM_STRIPED 167
218 #define SH_CSS_BINARY_ID_COPY_KERNELTEST_OUTPUT_SYSTEM 168
221 /* skycam partial test pipelines*/
223 #define SH_CSS_BINARY_ID_IF_TO_DPC 201
224 #define SH_CSS_BINARY_ID_IF_TO_BDS 202
226 #define SH_CSS_BINARY_ID_IF_TO_BDS 201
227 #define SH_CSS_BINARY_ID_IF_TO_BDS_STRIPED 202
229 #define SH_CSS_BINARY_ID_IF_TO_NORM 203
231 #define SH_CSS_BINARY_ID_IF_TO_OB 204
232 #define SH_CSS_BINARY_ID_IF_TO_LIN 205
233 #define SH_CSS_BINARY_ID_IF_TO_SHD 206
234 #define SH_CSS_BINARY_ID_IF_TO_BNR 207
235 #define SH_CSS_BINARY_ID_IF_TO_RGBPP_NV12_16 208
236 #define SH_CSS_BINARY_ID_IF_TO_RGBPP 210
237 #define SH_CSS_BINARY_ID_IF_TO_YUVP1 211
238 #define SH_CSS_BINARY_ID_IF_TO_DM 214
239 #define SH_CSS_BINARY_ID_IF_TO_YUVP2_C0 216
240 #define SH_CSS_BINARY_ID_IF_TO_YUVP2_ANR_VIA_ISP 217
241 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_DVS 218
242 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_TNR 219
243 #define SH_CSS_BINARY_ID_IF_TO_BDS_STRIPED 224
244 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_ANR_STRIPED 225
245 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_YUVP2_STRIPED 227
246 #define SH_CSS_BINARY_ID_IF_TO_BDS_RGBP_DVS_STAT_C0 228
247 #define SH_CSS_BINARY_ID_IF_TO_BDS_RGBP_DVS_STAT_C0_STRIPED 229
248 #define SH_CSS_BINARY_ID_IF_TO_REF 236
249 #define SH_CSS_BINARY_ID_IF_TO_DVS_STRIPED 237
250 #define SH_CSS_BINARY_ID_IF_TO_YUVP2_STRIPED 238
251 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_STRIPED 239
252 #define SH_CSS_BINARY_ID_IF_TO_RGBPP_STRIPED 240
253 #define SH_CSS_BINARY_ID_IF_TO_ANR_STRIPED 241
254 #define SH_CSS_BINARY_ID_IF_TO_BNR_STRIPED 242
255 #define SH_CSS_BINARY_ID_IF_TO_SHD_STRIPED 243
256 #define SH_CSS_BINARY_ID_IF_TO_LIN_STRIPED 244
257 #define SH_CSS_BINARY_ID_IF_TO_OB_STRIPED 245
258 #define SH_CSS_BINARY_ID_IF_TO_NORM_STRIPED 248
259 #define SH_CSS_BINARY_ID_COPY_KERNELTEST_OUTPUT_SYSTEM 253
260 #define SH_CSS_BINARY_ID_IF_TO_XNR 256
261 #define SH_CSS_BINARY_ID_IF_TO_XNR_STRIPED 257
262 #define SH_CSS_BINARY_ID_IF_TO_REF_STRIPED 258
263 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_OSYS 259
264 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_C0 262
265 #define SH_CSS_BINARY_ID_IF_TO_XNR_PRIMARY 263
266 #define SH_CSS_BINARY_ID_IF_TO_XNR_PRIMARY_STRIPED 264
267 #define SH_CSS_BINARY_ID_IF_TO_ANR 265
268 #define SH_CSS_BINARY_ID_VIDEO_TEST_ACC_DVS_STAT_C0 266
269 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_OSYS_STRIPED 270
270 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PRIMARY 276
271 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PRIMARY_STRIPED 277
272 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_C0_STRIPED 278
274 #define SH_CSS_BINARY_ID_IF_TO_NORM_STRIPED 204
275 #define SH_CSS_BINARY_ID_IF_TO_OB 205
276 #define SH_CSS_BINARY_ID_IF_TO_OB_STRIPED 206
277 #define SH_CSS_BINARY_ID_IF_TO_LIN 207
278 #define SH_CSS_BINARY_ID_IF_TO_LIN_STRIPED 208
279 #define SH_CSS_BINARY_ID_IF_TO_SHD 209
280 #define SH_CSS_BINARY_ID_IF_TO_SHD_STRIPED 210
281 #define SH_CSS_BINARY_ID_IF_TO_BNR 211
282 #define SH_CSS_BINARY_ID_IF_TO_BNR_STRIPED 212
283 #define SH_CSS_BINARY_ID_IF_TO_ANR 213
284 #define SH_CSS_BINARY_ID_IF_TO_ANR_STRIPED 214
285 #define SH_CSS_BINARY_ID_IF_TO_DM 215
286 #define SH_CSS_BINARY_ID_IF_TO_BDS_RGBP_DVS_STAT_C0 216
287 #define SH_CSS_BINARY_ID_IF_TO_BDS_RGBP_DVS_STAT_C0_STRIPED 217
288 #define SH_CSS_BINARY_ID_IF_TO_RGBPP 218
289 #define SH_CSS_BINARY_ID_IF_TO_RGBPP_NV12_16 219
290 #define SH_CSS_BINARY_ID_IF_TO_RGBPP_STRIPED 220
291 #define SH_CSS_BINARY_ID_IF_TO_YUVP1 221
292 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_STRIPED 222
293 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_C0 223
294 #define SH_CSS_BINARY_ID_IF_TO_YUVP2_C0 224
295 #define SH_CSS_BINARY_ID_IF_TO_YUVP2_STRIPED 225
296 #define SH_CSS_BINARY_ID_IF_TO_XNR 226
297 #define SH_CSS_BINARY_ID_IF_TO_XNR_STRIPED 227
298 #define SH_CSS_BINARY_ID_IF_TO_XNR_PRIMARY 228
299 #define SH_CSS_BINARY_ID_IF_TO_XNR_PRIMARY_STRIPED 229
300 #define SH_CSS_BINARY_ID_IF_TO_REF 230
301 #define SH_CSS_BINARY_ID_IF_TO_REF_STRIPED 231
302 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_DVS 232
303 #define SH_CSS_BINARY_ID_IF_TO_DVS_STRIPED 233
304 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_TNR 234
305 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_OSYS 235
306 #define SH_CSS_BINARY_ID_VIDEO_IF_TO_OSYS_STRIPED 236
307 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PRIMARY 237
308 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PRIMARY_STRIPED 238
309 #define SH_CSS_BINARY_ID_IF_TO_YUVP1_C0_STRIPED 239
310 #define SH_CSS_BINARY_ID_VIDEO_YUVP1_TO_OSYS 240
311 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PREVIEW 241
312 #define SH_CSS_BINARY_ID_IF_TO_OSYS_PREVIEW_STRIPED 242
315 /* Skycam IR camera binaries */
317 #define SH_CSS_BINARY_ID_IR_IF_TO_OSYS_NO_XNR 300
318 #define SH_CSS_BINARY_ID_VIDEO_IR_IF_TO_OSYS_NO_DVS_NO_TNR_NO_XNR 301
319 #define SH_CSS_BINARY_ID_IR_IF_TO_OSYS_NO_XNR_NO_DVS_PRIMARY 302
321 #define SH_CSS_BINARY_ID_IR_IF_TO_OSYS 300
322 #define SH_CSS_BINARY_ID_IR_IF_TO_OSYS_NO_TNR3 301
323 #define SH_CSS_BINARY_ID_IR_IF_TO_OSYS_PRIMARY 302
325 /* Binaries under development */
326 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR3 401
327 #define SH_CSS_BINARY_ID_VIDEO_KERNELTEST_TNR3_STRIPED 402
331 #define XMEM_WIDTH_BITS HIVE_ISP_DDR_WORD_BITS
332 #define XMEM_SHORTS_PER_WORD (HIVE_ISP_DDR_WORD_BITS/16)
333 #define XMEM_INTS_PER_WORD (HIVE_ISP_DDR_WORD_BITS/32)
334 #define XMEM_POW2_BYTES_PER_WORD HIVE_ISP_DDR_WORD_BYTES
336 #define BITS8_ELEMENTS_PER_XMEM_ADDR CEIL_DIV(XMEM_WIDTH_BITS, 8)
337 #define BITS16_ELEMENTS_PER_XMEM_ADDR CEIL_DIV(XMEM_WIDTH_BITS, 16)
339 #if ISP_VEC_NELEMS == 64
340 #define ISP_NWAY_LOG2 6
341 #elif ISP_VEC_NELEMS == 32
342 #define ISP_NWAY_LOG2 5
343 #elif ISP_VEC_NELEMS == 16
344 #define ISP_NWAY_LOG2 4
345 #elif ISP_VEC_NELEMS == 8
346 #define ISP_NWAY_LOG2 3
348 #error "isp_const.h ISP_VEC_NELEMS must be one of {8, 16, 32, 64}"
351 /* *****************************
352 * ISP input/output buffer sizes
353 * ****************************/
355 #define INPUT_BUF_DMA_HEIGHT 2
356 #define INPUT_BUF_HEIGHT 2 /* double buffer */
357 #define OUTPUT_BUF_DMA_HEIGHT 2
358 #define OUTPUT_BUF_HEIGHT 2 /* double buffer */
359 #define OUTPUT_NUM_TRANSFERS 4
361 /* GDC accelerator: Up/Down Scaling */
362 /* These should be moved to the gdc_defs.h in the device */
363 #define UDS_SCALING_N HRT_GDC_N
364 /* AB: This should cover the zooming up to 16MP */
365 #define UDS_MAX_OXDIM 5000
366 /* We support maximally 2 planes with different parameters
367 - luma and chroma (YUV420) */
368 #define UDS_MAX_PLANES 2
369 #define UDS_BLI_BLOCK_HEIGHT 2
370 #define UDS_BCI_BLOCK_HEIGHT 4
371 #define UDS_BLI_INTERP_ENVELOPE 1
372 #define UDS_BCI_INTERP_ENVELOPE 3
373 #define UDS_MAX_ZOOM_FAC 64
374 /* Make it always one FPGA vector.
375 Four FPGA vectors are required and
376 four of them fit in one ASIC vector.*/
377 #define UDS_MAX_CHUNKS 16
379 #define ISP_LEFT_PADDING _ISP_LEFT_CROP_EXTRA(ISP_LEFT_CROPPING)
380 #define ISP_LEFT_PADDING_VECS CEIL_DIV(ISP_LEFT_PADDING, ISP_VEC_NELEMS)
381 /* in case of continuous the croppong of the current binary doesn't matter for the buffer calculation, but the cropping of the sp copy should be used */
382 #define ISP_LEFT_PADDING_CONT _ISP_LEFT_CROP_EXTRA(SH_CSS_MAX_LEFT_CROPPING)
383 #define ISP_LEFT_PADDING_VECS_CONT CEIL_DIV(ISP_LEFT_PADDING_CONT, ISP_VEC_NELEMS)
385 #define CEIL_ROUND_DIV_STRIPE(width, stripe, padding) \
386 CEIL_MUL(padding + CEIL_DIV(width - padding, stripe), ((ENABLE_RAW_BINNING || ENABLE_FIXED_BAYER_DS)?4:2))
388 /* output (Y,U,V) image, 4:2:0 */
389 #define MAX_VECTORS_PER_LINE \
390 CEIL_ROUND_DIV_STRIPE(CEIL_DIV(ISP_MAX_INTERNAL_WIDTH, ISP_VEC_NELEMS), \
392 ISP_LEFT_PADDING_VECS)
395 * ITERATOR_VECTOR_INCREMENT' explanation:
396 * when striping an even number of iterations, one of the stripes is
397 * one iteration wider than the other to account for overlap
398 * so the calc for the output buffer vmem size is:
399 * ((width[vectors]/num_of_stripes) + 2[vectors])
401 #define MAX_VECTORS_PER_OUTPUT_LINE \
402 CEIL_DIV(CEIL_DIV(ISP_MAX_OUTPUT_WIDTH, ISP_NUM_STRIPES) + ISP_LEFT_PADDING, ISP_VEC_NELEMS)
404 /* Must be even due to interlaced bayer input */
405 #define MAX_VECTORS_PER_INPUT_LINE CEIL_MUL((CEIL_DIV(ISP_MAX_INPUT_WIDTH, ISP_VEC_NELEMS) + ISP_LEFT_PADDING_VECS), 2)
406 #define MAX_VECTORS_PER_INPUT_STRIPE CEIL_ROUND_DIV_STRIPE(MAX_VECTORS_PER_INPUT_LINE, \
408 ISP_LEFT_PADDING_VECS)
411 /* Add 2 for left croppping */
412 #define MAX_SP_RAW_COPY_VECTORS_PER_INPUT_LINE (CEIL_DIV(ISP_MAX_INPUT_WIDTH, ISP_VEC_NELEMS) + 2)
414 #define MAX_VECTORS_PER_BUF_LINE \
415 (MAX_VECTORS_PER_LINE + DUMMY_BUF_VECTORS)
416 #define MAX_VECTORS_PER_BUF_INPUT_LINE \
417 (MAX_VECTORS_PER_INPUT_STRIPE + DUMMY_BUF_VECTORS)
418 #define MAX_OUTPUT_Y_FRAME_WIDTH \
419 (MAX_VECTORS_PER_LINE * ISP_VEC_NELEMS)
420 #define MAX_OUTPUT_Y_FRAME_SIMDWIDTH \
422 #define MAX_OUTPUT_C_FRAME_WIDTH \
423 (MAX_OUTPUT_Y_FRAME_WIDTH / 2)
424 #define MAX_OUTPUT_C_FRAME_SIMDWIDTH \
425 CEIL_DIV(MAX_OUTPUT_C_FRAME_WIDTH, ISP_VEC_NELEMS)
428 #define NO_CHUNKING (OUTPUT_NUM_CHUNKS == 1)
430 #define MAX_VECTORS_PER_CHUNK \
431 (NO_CHUNKING ? MAX_VECTORS_PER_LINE \
432 : 2*CEIL_DIV(MAX_VECTORS_PER_LINE, \
433 2*OUTPUT_NUM_CHUNKS))
435 #define MAX_C_VECTORS_PER_CHUNK \
436 (MAX_VECTORS_PER_CHUNK/2)
439 #define MAX_VECTORS_PER_OUTPUT_CHUNK \
440 (NO_CHUNKING ? MAX_VECTORS_PER_OUTPUT_LINE \
441 : 2*CEIL_DIV(MAX_VECTORS_PER_OUTPUT_LINE, \
442 2*OUTPUT_NUM_CHUNKS))
444 #define MAX_C_VECTORS_PER_OUTPUT_CHUNK \
445 (MAX_VECTORS_PER_OUTPUT_CHUNK/2)
450 #define MAX_VECTORS_PER_INPUT_CHUNK \
451 (INPUT_NUM_CHUNKS == 1 ? MAX_VECTORS_PER_INPUT_STRIPE \
452 : 2*CEIL_DIV(MAX_VECTORS_PER_INPUT_STRIPE, \
453 2*OUTPUT_NUM_CHUNKS))
455 #define DEFAULT_C_SUBSAMPLING 2
457 /****** DMA buffer properties */
459 #define RAW_BUF_LINES ((ENABLE_RAW_BINNING || ENABLE_FIXED_BAYER_DS) ? 4 : 2)
461 #define RAW_BUF_STRIDE \
462 (BINARY_ID == SH_CSS_BINARY_ID_POST_ISP ? MAX_VECTORS_PER_INPUT_CHUNK : \
463 ISP_NUM_STRIPES > 1 ? MAX_VECTORS_PER_INPUT_STRIPE+_ISP_EXTRA_PADDING_VECS : \
464 !ENABLE_CONTINUOUS ? MAX_VECTORS_PER_INPUT_LINE : \
465 MAX_VECTORS_PER_INPUT_CHUNK)
467 /* [isp vmem] table size[vectors] per line per color (GR,R,B,GB),
469 #define SCTBL_VECTORS_PER_LINE_PER_COLOR \
470 CEIL_DIV(SH_CSS_MAX_SCTBL_WIDTH_PER_COLOR, ISP_VEC_NELEMS)
471 /* [isp vmem] table size[vectors] per line for 4colors (GR,R,B,GB),
473 #define SCTBL_VECTORS_PER_LINE \
474 (SCTBL_VECTORS_PER_LINE_PER_COLOR * IA_CSS_SC_NUM_COLORS)
478 /* Format for fixed primaries */
480 #define ISP_FIXED_PRIMARY_FORMAT IA_CSS_FRAME_FORMAT_NV12
482 #endif /* _COMMON_ISP_CONST_H_ */