]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_defs.h
staging/atomisp: Add support for the Intel IPU v2
[karo-tx-linux.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / sh_css_defs.h
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #ifndef _SH_CSS_DEFS_H_
16 #define _SH_CSS_DEFS_H_
17
18 #if !defined(__SP1)
19 #include "isp.h"
20 #else
21 #include "system_local.h"  /* to get IS_ISP_2500_SYSTEM for SP1*/
22 #endif
23 /*#include "vamem.h"*/ /* Cannot include for VAMEM properties this file is visible on ISP -> pipeline generator */
24
25 #include "math_support.h"       /* max(), min, etc etc */
26
27 /* ID's for refcount */
28 #define IA_CSS_REFCOUNT_PARAM_SET_POOL  0xCAFE0001
29 #define IA_CSS_REFCOUNT_PARAM_BUFFER    0xCAFE0002
30
31 /* Digital Image Stabilization */
32 #define SH_CSS_DIS_DECI_FACTOR_LOG2       6
33
34 /* UV offset: 1:uv=-128...127, 0:uv=0...255 */
35 #define SH_CSS_UV_OFFSET_IS_0             0
36
37 /* Bits of bayer is adjusted as 13 in ISP */
38 #define SH_CSS_BAYER_BITS                 13
39
40 /* Max value of bayer data (unsigned 13bit in ISP) */
41 #define SH_CSS_BAYER_MAXVAL               ((1U << SH_CSS_BAYER_BITS) - 1)
42
43 /* Bits of yuv in ISP */
44 #define SH_CSS_ISP_YUV_BITS               8
45
46 #define SH_CSS_DP_GAIN_SHIFT              5
47 #define SH_CSS_BNR_GAIN_SHIFT             13
48 #define SH_CSS_YNR_GAIN_SHIFT             13
49 #define SH_CSS_AE_YCOEF_SHIFT             13
50 #define SH_CSS_AF_FIR_SHIFT               13
51 #define SH_CSS_YEE_DETAIL_GAIN_SHIFT      8  /* [u5.8] */
52 #define SH_CSS_YEE_SCALE_SHIFT            8
53 #define SH_CSS_TNR_COEF_SHIFT             13
54 #define SH_CSS_MACC_COEF_SHIFT            11 /* [s2.11] for ISP1 */
55 #define SH_CSS_MACC2_COEF_SHIFT           13 /* [s[exp].[13-exp]] for ISP2 */
56 #define SH_CSS_DIS_COEF_SHIFT             13
57
58 /* enumeration of the bayer downscale factors. When a binary supports multiple
59  * factors, the OR of these defines is used to build the mask of supported
60  * factors. The BDS factor is used in pre-processor expressions so we cannot
61  * use an enum here. */
62 #define SH_CSS_BDS_FACTOR_1_00  (0)
63 #define SH_CSS_BDS_FACTOR_1_25  (1)
64 #define SH_CSS_BDS_FACTOR_1_50  (2)
65 #define SH_CSS_BDS_FACTOR_2_00  (3)
66 #define SH_CSS_BDS_FACTOR_2_25  (4)
67 #define SH_CSS_BDS_FACTOR_2_50  (5)
68 #define SH_CSS_BDS_FACTOR_3_00  (6)
69 #define SH_CSS_BDS_FACTOR_4_00  (7)
70 #define SH_CSS_BDS_FACTOR_4_50  (8)
71 #define SH_CSS_BDS_FACTOR_5_00  (9)
72 #define SH_CSS_BDS_FACTOR_6_00  (10)
73 #define SH_CSS_BDS_FACTOR_8_00  (11)
74 #define NUM_BDS_FACTORS         (12)
75
76 #define PACK_BDS_FACTOR(factor) (1<<(factor))
77
78 /* Following macros should match with the type enum ia_css_pipe_version in
79  * ia_css_pipe_public.h. The reason to add these macros is that enum type
80  * will be evaluted to 0 in preprocessing time. */
81 #define SH_CSS_ISP_PIPE_VERSION_1       1
82 #define SH_CSS_ISP_PIPE_VERSION_2_2     2
83 #define SH_CSS_ISP_PIPE_VERSION_2_6_1   3
84 #define SH_CSS_ISP_PIPE_VERSION_2_7     4
85
86 /*--------------- sRGB Gamma -----------------
87 CCM        : YCgCo[0,8191] -> RGB[0,4095]
88 sRGB Gamma : RGB  [0,4095] -> RGB[0,8191]
89 CSC        : RGB  [0,8191] -> YUV[0,8191]
90
91 CCM:
92 Y[0,8191],CgCo[-4096,4095],coef[-8192,8191] -> RGB[0,4095]
93
94 sRGB Gamma:
95 RGB[0,4095] -(interpolation step16)-> RGB[0,255] -(LUT 12bit)-> RGB[0,4095] -> RGB[0,8191]
96
97 CSC:
98 RGB[0,8191],coef[-8192,8191] -> RGB[0,8191]
99 --------------------------------------------*/
100 /* Bits of input/output of sRGB Gamma */
101 #define SH_CSS_RGB_GAMMA_INPUT_BITS       12 /* [0,4095] */
102 #define SH_CSS_RGB_GAMMA_OUTPUT_BITS      13 /* [0,8191] */
103
104 /* Bits of fractional part of interpolation in vamem, [0,4095]->[0,255] */
105 #define SH_CSS_RGB_GAMMA_FRAC_BITS        \
106         (SH_CSS_RGB_GAMMA_INPUT_BITS - SH_CSS_ISP_RGB_GAMMA_TABLE_SIZE_LOG2)
107 #define SH_CSS_RGB_GAMMA_ONE              (1 << SH_CSS_RGB_GAMMA_FRAC_BITS)
108
109 /* Bits of input of CCM,  = 13, Y[0,8191],CgCo[-4096,4095] */
110 #define SH_CSS_YUV2RGB_CCM_INPUT_BITS     SH_CSS_BAYER_BITS
111
112 /* Bits of output of CCM,  = 12, RGB[0,4095] */
113 #define SH_CSS_YUV2RGB_CCM_OUTPUT_BITS    SH_CSS_RGB_GAMMA_INPUT_BITS
114
115 /* Maximum value of output of CCM */
116 #define SH_CSS_YUV2RGB_CCM_MAX_OUTPUT     \
117         ((1 << SH_CSS_YUV2RGB_CCM_OUTPUT_BITS) - 1)
118
119 #define SH_CSS_NUM_INPUT_BUF_LINES        4
120
121 /* Left cropping only applicable for sufficiently large nway */
122 #if ISP_VEC_NELEMS == 16
123 #define SH_CSS_MAX_LEFT_CROPPING          0
124 #define SH_CSS_MAX_TOP_CROPPING           0
125 #else
126 #define SH_CSS_MAX_LEFT_CROPPING          12
127 #define SH_CSS_MAX_TOP_CROPPING           12
128 #endif
129
130 #define SH_CSS_SP_MAX_WIDTH               1280
131
132 /* This is the maximum grid we can handle in the ISP binaries.
133  * The host code makes sure no bigger grid is ever selected. */
134 #define SH_CSS_MAX_BQ_GRID_WIDTH          80
135 #define SH_CSS_MAX_BQ_GRID_HEIGHT         60
136
137 /* The minimum dvs envelope is 12x12(for IPU2) to make sure the 
138  * invalid rows/columns that result from filter initialization are skipped. */
139 #define SH_CSS_MIN_DVS_ENVELOPE           12U
140
141 /* The FPGA system (vec_nelems == 16) only supports upto 5MP */
142 #if ISP_VEC_NELEMS == 16
143 #define SH_CSS_MAX_SENSOR_WIDTH           2560
144 #define SH_CSS_MAX_SENSOR_HEIGHT          1920
145 #else
146 #define SH_CSS_MAX_SENSOR_WIDTH           4608
147 #define SH_CSS_MAX_SENSOR_HEIGHT          3450
148 #endif
149
150 /* Limited to reduce vmem pressure */
151 #if ISP_VMEM_DEPTH >= 3072
152 #define SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH  SH_CSS_MAX_SENSOR_WIDTH
153 #define SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT SH_CSS_MAX_SENSOR_HEIGHT
154 #else
155 #define SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH  3264
156 #define SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT 2448
157 #endif
158 /* When using bayer decimation */
159 /*
160 #define SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH_DEC  4224
161 #define SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT_DEC 3168
162 */
163 #define SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH_DEC  SH_CSS_MAX_SENSOR_WIDTH
164 #define SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT_DEC SH_CSS_MAX_SENSOR_HEIGHT
165
166 #define SH_CSS_MIN_SENSOR_WIDTH           2
167 #define SH_CSS_MIN_SENSOR_HEIGHT          2
168
169 #if defined(IS_ISP_2400_SYSTEM)
170 /* MAX width and height set to the same to allow for rotated
171  * resolutions. */
172 #define SH_CSS_MAX_VF_WIDTH               1920
173 #define SH_CSS_MAX_VF_HEIGHT              1920
174 #else
175 #define SH_CSS_MAX_VF_WIDTH               1280
176 #define SH_CSS_MAX_VF_HEIGHT              960
177 #endif
178 /*
179 #define SH_CSS_MAX_VF_WIDTH_DEC               1920
180 #define SH_CSS_MAX_VF_HEIGHT_DEC              1080
181 */
182 #define SH_CSS_MAX_VF_WIDTH_DEC               SH_CSS_MAX_VF_WIDTH
183 #define SH_CSS_MAX_VF_HEIGHT_DEC              SH_CSS_MAX_VF_HEIGHT
184
185 /* We use 16 bits per coordinate component, including integer
186    and fractional bits */
187 #define SH_CSS_MORPH_TABLE_GRID               ISP_VEC_NELEMS
188 #define SH_CSS_MORPH_TABLE_ELEM_BYTES         2
189 #define SH_CSS_MORPH_TABLE_ELEMS_PER_DDR_WORD \
190         (HIVE_ISP_DDR_WORD_BYTES/SH_CSS_MORPH_TABLE_ELEM_BYTES)
191
192 #ifndef ISP2401
193 #define SH_CSS_MAX_SCTBL_WIDTH_PER_COLOR   (SH_CSS_MAX_BQ_GRID_WIDTH + 1)
194 #define SH_CSS_MAX_SCTBL_HEIGHT_PER_COLOR   (SH_CSS_MAX_BQ_GRID_HEIGHT + 1)
195 #else
196 /* TODO: I will move macros of "*_SCTBL_*" to SC kernel.
197    "+ 2" should be "+ SH_CSS_SCTBL_CENTERING_MARGIN + SH_CSS_SCTBL_LAST_GRID_COUNT". (michie, Sep/23/2014) */
198 #define SH_CSS_MAX_SCTBL_WIDTH_PER_COLOR   (SH_CSS_MAX_BQ_GRID_WIDTH + 2)
199 #define SH_CSS_MAX_SCTBL_HEIGHT_PER_COLOR   (SH_CSS_MAX_BQ_GRID_HEIGHT + 2)
200 #endif
201 #define SH_CSS_MAX_SCTBL_ALIGNED_WIDTH_PER_COLOR \
202         CEIL_MUL(SH_CSS_MAX_SCTBL_WIDTH_PER_COLOR, ISP_VEC_NELEMS)
203
204 /* Each line of this table is aligned to the maximum line width. */
205 #define SH_CSS_MAX_S3ATBL_WIDTH              SH_CSS_MAX_BQ_GRID_WIDTH
206
207 #ifndef ISP2401
208 /* The video binary supports a delay of 1 or 2 */
209 #define MAX_DVS_FRAME_DELAY             2
210 /* We always need one additional frame because the video binary
211  * reads the previous and writes the current frame concurrently */
212 #define MAX_NUM_VIDEO_DELAY_FRAMES      (MAX_DVS_FRAME_DELAY + 1)
213 #define NUM_VIDEO_TNR_FRAMES            2
214
215 #define NUM_TNR_FRAMES                  2       /* FIXME */
216
217
218 #define MAX_NUM_DELAY_FRAMES            MAX_NUM_VIDEO_DELAY_FRAMES
219
220 #else
221 /* Video mode specific DVS define */
222 /* The video binary supports a delay of 1 or 2 frames */
223 #define VIDEO_FRAME_DELAY               2
224 /* +1 because DVS reads the previous and writes the current frame concurrently */
225 #define MAX_NUM_VIDEO_DELAY_FRAMES      (VIDEO_FRAME_DELAY + 1)
226
227 /* Preview mode specific DVS define. */
228 /* In preview we only need GDC functionality (and not the DVS functionality) */
229 /* The minimum number of DVS frames you need is 2, one were GDC reads from and another where GDC writes into */
230 #define NUM_PREVIEW_DVS_FRAMES          (2)
231
232 /* TNR is no longer exclusive to video, SkyCam preview has TNR too (same kernel as video).
233  * All uses the generic define NUM_TNR_FRAMES. The define NUM_VIDEO_TNR_FRAMES has been deprecated.
234  *
235  * Notes
236  * 1) The value depends on the used TNR kernel and is not something that depends on the mode
237  *    and it is not something you just could choice.
238  * 2) For the luma only pipeline a version that supports two different sets of TNR reference frames
239  * is being used.
240  *.
241  */
242 #define NUM_VALID_TNR_REF_FRAMES                (1) /* At least one valid TNR reference frame is required */
243 #define NUM_TNR_FRAMES_PER_REF_BUF_SET          (2)
244
245 /* In luma-only mode alternate illuminated frames are supported, that requires two double buffers */
246 #ifdef ENABLE_LUMA_ONLY
247 #define NUM_TNR_REF_BUF_SETS    (2)
248 #else
249 #define NUM_TNR_REF_BUF_SETS    (1)
250 #endif
251
252 #define NUM_TNR_FRAMES          (NUM_TNR_FRAMES_PER_REF_BUF_SET * NUM_TNR_REF_BUF_SETS)
253
254 #define MAX_NUM_DELAY_FRAMES    MAX(MAX_NUM_VIDEO_DELAY_FRAMES, NUM_PREVIEW_DVS_FRAMES)
255
256 #endif
257
258 /* Note that this is the define used to configure all data structures common for all modes */
259 /* It should be equal or bigger to the max number of DVS frames for all possible modes */
260 /* Rules: these implement logic shared between the host code and ISP firmware.
261    The ISP firmware needs these rules to be applied at pre-processor time,
262    that's why these are macros, not functions. */
263 #define _ISP_BQS(num)  ((num)/2)
264 #define _ISP_VECS(width) CEIL_DIV(width, ISP_VEC_NELEMS)
265
266 #define ISP_BQ_GRID_WIDTH(elements_per_line, deci_factor_log2) \
267         CEIL_SHIFT(elements_per_line/2,  deci_factor_log2)
268 #define ISP_BQ_GRID_HEIGHT(lines_per_frame, deci_factor_log2) \
269         CEIL_SHIFT(lines_per_frame/2,  deci_factor_log2)
270 #define ISP_C_VECTORS_PER_LINE(elements_per_line) \
271         _ISP_VECS(elements_per_line/2)
272
273 /* The morphing table is similar to the shading table in the sense that we
274    have 1 more value than we have cells in the grid. */
275 #define _ISP_MORPH_TABLE_WIDTH(int_width) \
276         (CEIL_DIV(int_width, SH_CSS_MORPH_TABLE_GRID) + 1)
277 #define _ISP_MORPH_TABLE_HEIGHT(int_height) \
278         (CEIL_DIV(int_height, SH_CSS_MORPH_TABLE_GRID) + 1)
279 #define _ISP_MORPH_TABLE_ALIGNED_WIDTH(width) \
280         CEIL_MUL(_ISP_MORPH_TABLE_WIDTH(width), \
281                  SH_CSS_MORPH_TABLE_ELEMS_PER_DDR_WORD)
282
283 #ifndef ISP2401
284 #define _ISP_SCTBL_WIDTH_PER_COLOR(input_width, deci_factor_log2) \
285         (ISP_BQ_GRID_WIDTH(input_width, deci_factor_log2) + 1)
286 #define _ISP_SCTBL_HEIGHT(input_height, deci_factor_log2) \
287         (ISP_BQ_GRID_HEIGHT(input_height, deci_factor_log2) + 1)
288 #define _ISP_SCTBL_ALIGNED_WIDTH_PER_COLOR(input_width, deci_factor_log2) \
289         CEIL_MUL(_ISP_SCTBL_WIDTH_PER_COLOR(input_width, deci_factor_log2), \
290                  ISP_VEC_NELEMS)
291
292 #endif
293 /* *****************************************************************
294  * Statistics for 3A (Auto Focus, Auto White Balance, Auto Exposure)
295  * *****************************************************************/
296 /* if left cropping is used, 3A statistics are also cropped by 2 vectors. */
297 #define _ISP_S3ATBL_WIDTH(in_width, deci_factor_log2) \
298         (_ISP_BQS(in_width) >> deci_factor_log2)
299 #define _ISP_S3ATBL_HEIGHT(in_height, deci_factor_log2) \
300         (_ISP_BQS(in_height) >> deci_factor_log2)
301 #define _ISP_S3A_ELEMS_ISP_WIDTH(width, left_crop) \
302         (width - ((left_crop) ? 2 * ISP_VEC_NELEMS : 0))
303
304 #define _ISP_S3ATBL_ISP_WIDTH(in_width, deci_factor_log2) \
305         CEIL_SHIFT(_ISP_BQS(in_width), deci_factor_log2)
306 #define _ISP_S3ATBL_ISP_HEIGHT(in_height, deci_factor_log2) \
307         CEIL_SHIFT(_ISP_BQS(in_height), deci_factor_log2)
308 #define ISP_S3ATBL_VECTORS \
309         _ISP_VECS(SH_CSS_MAX_S3ATBL_WIDTH * \
310                   (sizeof(struct ia_css_3a_output)/sizeof(int32_t)))
311 #define ISP_S3ATBL_HI_LO_STRIDE \
312         (ISP_S3ATBL_VECTORS * ISP_VEC_NELEMS)
313 #define ISP_S3ATBL_HI_LO_STRIDE_BYTES \
314         (sizeof(unsigned short) * ISP_S3ATBL_HI_LO_STRIDE)
315
316 /* Viewfinder support */
317 #define __ISP_MAX_VF_OUTPUT_WIDTH(width, left_crop) \
318         (width - 2*ISP_VEC_NELEMS + ((left_crop) ? 2 * ISP_VEC_NELEMS : 0))
319
320 #define __ISP_VF_OUTPUT_WIDTH_VECS(out_width, vf_log_downscale) \
321         (_ISP_VECS((out_width) >> (vf_log_downscale)))
322
323 #define _ISP_VF_OUTPUT_WIDTH(vf_out_vecs) ((vf_out_vecs) * ISP_VEC_NELEMS)
324 #define _ISP_VF_OUTPUT_HEIGHT(out_height, vf_log_ds) \
325         ((out_height) >> (vf_log_ds))
326
327 #define _ISP_LOG_VECTOR_STEP(mode) \
328         ((mode) == IA_CSS_BINARY_MODE_CAPTURE_PP ? 2 : 1)
329
330 /* It is preferred to have not more than 2x scaling at one step
331  * in GDC (assumption is for capture_pp and yuv_scale stages) */
332 #define MAX_PREFERRED_YUV_DS_PER_STEP   2
333
334 /* Rules for computing the internal width. This is extremely complicated
335  * and definitely needs to be commented and explained. */
336 #define _ISP_LEFT_CROP_EXTRA(left_crop) ((left_crop) > 0 ? 2*ISP_VEC_NELEMS : 0)
337
338 #define __ISP_MIN_INTERNAL_WIDTH(num_chunks, pipelining, mode) \
339         ((num_chunks) * (pipelining) * (1<<_ISP_LOG_VECTOR_STEP(mode)) * \
340          ISP_VEC_NELEMS)
341
342 #define __ISP_PADDED_OUTPUT_WIDTH(out_width, dvs_env_width, left_crop) \
343         ((out_width) + MAX(dvs_env_width, _ISP_LEFT_CROP_EXTRA(left_crop)))
344
345 #define __ISP_CHUNK_STRIDE_ISP(mode) \
346         ((1<<_ISP_LOG_VECTOR_STEP(mode)) * ISP_VEC_NELEMS)
347
348 #define __ISP_CHUNK_STRIDE_DDR(c_subsampling, num_chunks) \
349         ((c_subsampling) * (num_chunks) * HIVE_ISP_DDR_WORD_BYTES)
350 #define __ISP_INTERNAL_WIDTH(out_width, \
351                              dvs_env_width, \
352                              left_crop, \
353                              mode, \
354                              c_subsampling, \
355                              num_chunks, \
356                              pipelining) \
357         CEIL_MUL2(CEIL_MUL2(MAX(__ISP_PADDED_OUTPUT_WIDTH(out_width, \
358                                                             dvs_env_width, \
359                                                             left_crop), \
360                                   __ISP_MIN_INTERNAL_WIDTH(num_chunks, \
361                                                            pipelining, \
362                                                            mode) \
363                                  ), \
364                           __ISP_CHUNK_STRIDE_ISP(mode) \
365                          ), \
366                  __ISP_CHUNK_STRIDE_DDR(c_subsampling, num_chunks) \
367                 )
368
369 #define __ISP_INTERNAL_HEIGHT(out_height, dvs_env_height, top_crop) \
370         ((out_height) + (dvs_env_height) + top_crop)
371
372 /* @GC: Input can be up to sensor resolution when either bayer downscaling
373  *      or raw binning is enabled.
374  *      Also, during continuous mode, we need to align to 4*NWAY since input
375  *      should support binning */
376 #define _ISP_MAX_INPUT_WIDTH(max_internal_width, enable_ds, enable_fixed_bayer_ds, enable_raw_bin, \
377                                 enable_continuous) \
378         ((enable_ds) ? \
379            SH_CSS_MAX_SENSOR_WIDTH :\
380          (enable_fixed_bayer_ds) ? \
381            CEIL_MUL(SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH_DEC, 4*ISP_VEC_NELEMS) : \
382          (enable_raw_bin) ? \
383            CEIL_MUL(SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH, 4*ISP_VEC_NELEMS) : \
384          (enable_continuous) ? \
385            SH_CSS_MAX_CONTINUOUS_SENSOR_WIDTH \
386            : max_internal_width)
387
388 #define _ISP_INPUT_WIDTH(internal_width, ds_input_width, enable_ds) \
389         ((enable_ds) ? (ds_input_width) : (internal_width))
390
391 #define _ISP_MAX_INPUT_HEIGHT(max_internal_height, enable_ds, enable_fixed_bayer_ds, enable_raw_bin, \
392                                 enable_continuous) \
393         ((enable_ds) ? \
394            SH_CSS_MAX_SENSOR_HEIGHT :\
395          (enable_fixed_bayer_ds) ? \
396            SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT_DEC : \
397          (enable_raw_bin || enable_continuous) ? \
398            SH_CSS_MAX_CONTINUOUS_SENSOR_HEIGHT \
399            : max_internal_height)
400
401 #define _ISP_INPUT_HEIGHT(internal_height, ds_input_height, enable_ds) \
402         ((enable_ds) ? (ds_input_height) : (internal_height))
403
404 #define SH_CSS_MAX_STAGES 8 /* primary_stage[1-6], capture_pp, vf_pp */
405
406 /* For CSI2+ input system, it requires extra paddinga from vmem */
407 #ifdef CONFIG_CSI2_PLUS
408 #define _ISP_EXTRA_PADDING_VECS 2
409 #else
410 #define _ISP_EXTRA_PADDING_VECS 0
411 #endif /* CONFIG_CSI2_PLUS */
412
413 #endif /* _SH_CSS_DEFS_H_ */