1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */
3
4 #ifndef _RKISP_ISP_PARAM_V2X_H
5 #define _RKISP_ISP_PARAM_V2X_H
6
7 #include <linux/rkisp1-config.h>
8 #include <linux/rk-preisp.h>
9 #include "common.h"
10 #include "isp_params.h"
11
12 #define ISP2X_YUVAE_ENA BIT(0)
13 #define ISP2X_YUVAE_WNDNUM_SET BIT(1)
14 #define ISP2X_YUVAE_SUBWIN1_EN BIT(4)
15 #define ISP2X_YUVAE_SUBWIN2_EN BIT(5)
16 #define ISP2X_YUVAE_SUBWIN3_EN BIT(6)
17 #define ISP2X_YUVAE_SUBWIN4_EN BIT(7)
18 #define ISP2X_YUVAE_YSEL BIT(16)
19 #define ISP2X_YUVAE_H_OFFSET_SET(x) ((x) & 0x1FFF)
20 #define ISP2X_YUVAE_V_OFFSET_SET(x) (((x) & 0x1FFF) << 16)
21 #define ISP2X_YUVAE_H_SIZE_SET(x) ((x) & 0x7FF)
22 #define ISP2X_YUVAE_V_SIZE_SET(x) (((x) & 0x7FF) << 16)
23 #define ISP2X_YUVAE_SUBWIN_H_OFFSET_SET(x) ((x) & 0x1FFF)
24 #define ISP2X_YUVAE_SUBWIN_V_OFFSET_SET(x) (((x) & 0x1FFF) << 16)
25 #define ISP2X_YUVAE_SUBWIN_H_SIZE_SET(x) ((x) & 0x1FFF)
26 #define ISP2X_YUVAE_SUBWIN_V_SIZE_SET(x) (((x) & 0x1FFF) << 16)
27
28 #define ISP2X_RAWAE_LITE_ENA BIT(0)
29 #define ISP2X_RAWAE_LITE_WNDNUM_SET(x) (((x) & 0x1) << 1)
30 #define ISP2X_RAWAE_LITE_H_OFFSET_SET(x) ((x) & 0x1FFF)
31 #define ISP2X_RAWAE_LITE_V_OFFSET_SET(x) (((x) & 0x1FFF) << 16)
32 #define ISP2X_RAWAE_LITE_H_SIZE_SET(x) ((x) & 0x1FFF)
33 #define ISP2X_RAWAE_LITE_V_SIZE_SET(x) (((x) & 0x1FFF) << 16)
34
35 #define ISP2X_RAWAEBIG_ENA BIT(0)
36 #define ISP2X_RAWAEBIG_WNDNUM_SET(x) (((x) & 0x3) << 1)
37 #define ISP2X_RAWAEBIG_SUBWIN1_EN BIT(4)
38 #define ISP2X_RAWAEBIG_SUBWIN2_EN BIT(5)
39 #define ISP2X_RAWAEBIG_SUBWIN3_EN BIT(6)
40 #define ISP2X_RAWAEBIG_SUBWIN4_EN BIT(7)
41 #define ISP2X_RAWAEBIG_H_OFFSET_SET(x) ((x) & 0x1FFF)
42 #define ISP2X_RAWAEBIG_V_OFFSET_SET(x) (((x) & 0x1FFF) << 16)
43 #define ISP2X_RAWAEBIG_H_SIZE_SET(x) ((x) & 0x7FF)
44 #define ISP2X_RAWAEBIG_V_SIZE_SET(x) (((x) & 0x7FF) << 16)
45 #define ISP2X_RAWAEBIG_SUBWIN_H_OFFSET_SET(x) ((x) & 0x1FFF)
46 #define ISP2X_RAWAEBIG_SUBWIN_V_OFFSET_SET(x) (((x) & 0x1FFF) << 16)
47 #define ISP2X_RAWAEBIG_SUBWIN_H_SIZE_SET(x) ((x) & 0x1FFF)
48 #define ISP2X_RAWAEBIG_SUBWIN_V_SIZE_SET(x) (((x) & 0x1FFF) << 16)
49
50 #define ISP2X_SIAWB_YMAX_CMP_EN BIT(2)
51 #define ISP2X_SIAWB_RGB_MODE_EN BIT(31)
52 #define ISP2X_SIAWB_SET_FRAMES(x) (((x) & 0x07) << 28)
53 #define ISP2X_SIAWB_MODE_SET(x) ((x) << 0)
54
55 #define ISP2X_SIAF_ENA BIT(0)
56 #define ISP2X_SIAF_WIN_X(x) (((x) & 0x1FFF) << 16)
57 #define ISP2X_SIAF_WIN_Y(x) ((x) & 0x1FFF)
58 #define ISP2X_SIAF_SET_SHIFT_A(x, y) (((x) & 0x7) << 16 | ((y) & 0x7) << 0)
59 #define ISP2X_SIAF_SET_SHIFT_B(x, y) (((x) & 0x7) << 20 | ((y) & 0x7) << 4)
60 #define ISP2X_SIAF_SET_SHIFT_C(x, y) (((x) & 0x7) << 24 | ((y) & 0x7) << 8)
61 #define ISP2X_SIAF_GET_LUM_SHIFT_A(x) (((x) & 0x70000) >> 16)
62 #define ISP2X_SIAF_GET_AFM_SHIFT_A(x) ((x) & 0x7)
63
64 #define ISP2X_RAWAF_ENA BIT(0)
65 #define ISP2X_RAWAF_GAMMA_ENA BIT(1)
66 #define ISP2X_RAWAF_GAUS_ENA BIT(2)
67
68 #define ISP2X_RAWAF_INT_LINE0_EN BIT(27)
69 #define ISP2X_RAWAF_INT_LINE1_EN BIT(28)
70 #define ISP2X_RAWAF_INT_LINE2_EN BIT(29)
71 #define ISP2X_RAWAF_INT_LINE3_EN BIT(30)
72 #define ISP2X_RAWAF_INT_LINE4_EN BIT(31)
73 #define ISP2X_RAWAF_INT_LINE0_NUM(x) (((x) & 0xF) << 0)
74 #define ISP2X_RAWAF_INT_LINE1_NUM(x) (((x) & 0xF) << 4)
75 #define ISP2X_RAWAF_INT_LINE2_NUM(x) (((x) & 0xF) << 8)
76 #define ISP2X_RAWAF_INT_LINE3_NUM(x) (((x) & 0xF) << 12)
77 #define ISP2X_RAWAF_INT_LINE4_NUM(x) (((x) & 0xF) << 16)
78
79 #define ISP2X_RAWAF_THRES(x) ((x) & 0xFFFF)
80
81 #define ISP2X_RAWAF_WIN_X(x) (((x) & 0x1FFF) << 16)
82 #define ISP2X_RAWAF_WIN_Y(x) ((x) & 0x1FFF)
83 #define ISP2X_RAWAF_SET_SHIFT_A(x, y) (((x) & 0x7) << 16 | ((y) & 0x7) << 0)
84 #define ISP2X_RAWAF_SET_SHIFT_B(x, y) (((x) & 0x7) << 20 | ((y) & 0x7) << 4)
85
86 #define ISP2X_SIHST_CTRL_EN_SET(x) (((x) & 0x01) << 0)
87 #define ISP2X_SIHST_CTRL_EN_MASK ISP2X_SIHST_CTRL_EN_SET(0x01)
88 #define ISP2X_SIHST_CTRL_STEPSIZE_SET(x) (((x) & 0x7F) << 1)
89 #define ISP2X_SIHST_CTRL_MODE_SET(x) (((x) & 0x07) << 8)
90 #define ISP2X_SIHST_CTRL_MODE_MASK ISP2X_SIHST_CTRL_MODE_SET(0x07)
91 #define ISP2X_SIHST_CTRL_AUTOSTOP_SET(x) (((x) & 0x01) << 11)
92 #define ISP2X_SIHST_CTRL_WATERLINE_SET(x) (((x) & 0xFFF) << 12)
93 #define ISP2X_SIHST_CTRL_DATASEL_SET(x) (((x) & 0x07) << 24)
94 #define ISP2X_SIHST_CTRL_INTRSEL_SET(x) (((x) & 0x01) << 27)
95 #define ISP2X_SIHST_CTRL_INTRSEL_MASK ISP2X_SIHST_CTRL_INTRSEL_SET(0x01)
96 #define ISP2X_SIHST_CTRL_WNDNUM_SET(x) (((x) & 0x03) << 28)
97 #define ISP2X_SIHST_CTRL_WNDNUM_MASK ISP2X_SIHST_CTRL_WNDNUM_SET(0x03)
98
99 #define ISP2X_SIHST_ROW_NUM 15
100 #define ISP2X_SIHST_COLUMN_NUM 15
101 #define ISP2X_SIHST_WEIGHT_REG_SIZE \
102 (ISP2X_SIHST_ROW_NUM * ISP2X_SIHST_COLUMN_NUM)
103
104 #define ISP2X_SIHST_WEIGHT_SET(v0, v1, v2, v3) \
105 (((v0) & 0x3F) | (((v1) & 0x3F) << 8) |\
106 (((v2) & 0x3F) << 16) |\
107 (((v3) & 0x3F) << 24))
108
109 #define ISP2X_SIHST_OFFS_SET(v0, v1) \
110 (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
111 #define ISP2X_SIHST_SIZE_SET(v0, v1) \
112 (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
113
114 #define ISP2X_RAWHSTBIG_CTRL_EN_SET(x) (((x) & 0x01) << 0)
115 #define ISP2X_RAWHSTBIG_CTRL_EN_MASK ISP2X_RAWHSTBIG_CTRL_EN_SET(0x01)
116 #define ISP2X_RAWHSTBIG_CTRL_STEPSIZE_SET(x) (((x) & 0x07) << 1)
117 #define ISP2X_RAWHSTBIG_CTRL_MODE_SET(x) (((x) & 0x07) << 8)
118 #define ISP2X_RAWHSTBIG_CTRL_MODE_MASK ISP2X_RAWHSTBIG_CTRL_MODE_SET(0x07)
119 #define ISP2X_RAWHSTBIG_CTRL_WATERLINE_SET(x) (((x) & 0xFFF) << 12)
120 #define ISP2X_RAWHSTBIG_CTRL_DATASEL_SET(x) (((x) & 0x07) << 24)
121 #define ISP2X_RAWHSTBIG_CTRL_WNDNUM_SET(x) (((x) & 0x03) << 28)
122 #define ISP2X_RAWHSTBIG_CTRL_WNDNUM_MASK ISP2X_RAWHSTBIG_CTRL_WNDNUM_SET(0x03)
123
124 #define ISP2X_RAWHSTBIG_WRAM_EN BIT(31)
125
126 #define ISP2X_RAWHSTBIG_ROW_NUM 15
127 #define ISP2X_RAWHSTBIG_COLUMN_NUM 15
128 #define ISP2X_RAWHSTBIG_WEIGHT_REG_SIZE \
129 (ISP2X_RAWHSTBIG_ROW_NUM * ISP2X_RAWHSTBIG_COLUMN_NUM)
130
131 #define ISP2X_RAWHSTBIG_WEIGHT_SET(v0, v1, v2, v3, v4) \
132 (((v0) & 0x3F) | (((v1) & 0x3F) << 6) |\
133 (((v2) & 0x3F) << 12) |\
134 (((v3) & 0x3F) << 18) |\
135 (((v4) & 0x3F) << 24))
136
137 #define ISP2X_RAWHSTBIG_OFFS_SET(v0, v1) \
138 (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
139 #define ISP2X_RAWHSTBIG_SIZE_SET(v0, v1) \
140 (((v0) & 0x7FF) | (((v1) & 0x7FF) << 16))
141
142 #define ISP2X_RAWHSTLITE_CTRL_EN_SET(x) (((x) & 0x01) << 0)
143 #define ISP2X_RAWHSTLITE_CTRL_EN_MASK ISP2X_RAWHSTBIG_CTRL_EN_SET(0x01)
144 #define ISP2X_RAWHSTLITE_CTRL_STEPSIZE_SET(x) (((x) & 0x07) << 1)
145 #define ISP2X_RAWHSTLITE_CTRL_MODE_SET(x) (((x) & 0x07) << 8)
146 #define ISP2X_RAWHSTLITE_CTRL_MODE_MASK ISP2X_RAWHSTBIG_CTRL_MODE_SET(0x07)
147 #define ISP2X_RAWHSTLITE_CTRL_WATERLINE_SET(x) (((x) & 0xFFF) << 12)
148 #define ISP2X_RAWHSTLITE_CTRL_DATASEL_SET(x) (((x) & 0x07) << 24)
149
150 #define ISP2X_RAWHSTLITE_ROW_NUM 5
151 #define ISP2X_RAWHSTLITE_COLUMN_NUM 5
152 #define ISP2X_RAWHSTLITE_WEIGHT_REG_SIZE \
153 (ISP2X_RAWHSTLITE_ROW_NUM * ISP2X_RAWHSTLITE_COLUMN_NUM)
154
155 #define ISP2X_RAWHSTLITE_WEIGHT_SET(v0, v1, v2, v3) \
156 (((v0) & 0x3F) | (((v1) & 0x3F) << 8) |\
157 (((v2) & 0x3F) << 16) |\
158 (((v3) & 0x3F) << 24))
159
160 #define ISP2X_RAWHSTLITE_OFFS_SET(v0, v1) \
161 (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 16))
162 #define ISP2X_RAWHSTLITE_SIZE_SET(v0, v1) \
163 (((v0) & 0x7FF) | (((v1) & 0x7FF) << 16))
164
165 #define ISP2X_RAWAWB_ENA BIT(0)
166 #define ISP2X_RAWAWB_WPTH2_SET(x) (((x) & 0x1FF) << 9)
167
168 #define ISP2X_ISPPATH_RAWAE_SEL_SET(x) (((x) & 0x03) << 16)
169 #define ISP2X_ISPPATH_RAWAF_SEL_SET(x) (((x) & 0x03) << 18)
170 #define ISP2X_ISPPATH_RAWAWB_SEL_SET(x) (((x) & 0x03) << 20)
171 #define ISP2X_ISPPATH_RAWAE_SWAP_SET(x) (((x) & 0x03) << 22)
172
173 #define RKISP_PARAM_3DLUT_BUF_NUM 2
174 #define RKISP_PARAM_3DLUT_BUF_SIZE (9 * 9 * 9 * 4)
175
176 #define RKISP_PARAM_LSC_LUT_BUF_NUM 2
177 #define RKISP_PARAM_LSC_LUT_TBL_SIZE (9 * 17 * 4)
178 #define RKISP_PARAM_LSC_LUT_BUF_SIZE (RKISP_PARAM_LSC_LUT_TBL_SIZE * 4)
179
180 struct rkisp_isp_params_vdev;
181 struct rkisp_isp_params_v2x_ops {
182 void (*dpcc_config)(struct rkisp_isp_params_vdev *params_vdev,
183 const struct isp2x_dpcc_cfg *arg);
184 void (*dpcc_enable)(struct rkisp_isp_params_vdev *params_vdev,
185 bool en);
186 void (*bls_config)(struct rkisp_isp_params_vdev *params_vdev,
187 const struct isp2x_bls_cfg *arg);
188 void (*bls_enable)(struct rkisp_isp_params_vdev *params_vdev,
189 bool en);
190 void (*sdg_config)(struct rkisp_isp_params_vdev *params_vdev,
191 const struct isp2x_sdg_cfg *arg);
192 void (*sdg_enable)(struct rkisp_isp_params_vdev *params_vdev,
193 bool en);
194 void (*sihst_config)(struct rkisp_isp_params_vdev *params_vdev,
195 const struct isp2x_sihst_cfg *arg);
196 void (*sihst_enable)(struct rkisp_isp_params_vdev *params_vdev,
197 bool en);
198 void (*lsc_config)(struct rkisp_isp_params_vdev *params_vdev,
199 const struct isp2x_lsc_cfg *arg);
200 void (*lsc_enable)(struct rkisp_isp_params_vdev *params_vdev,
201 bool en);
202 void (*awbgain_config)(struct rkisp_isp_params_vdev *params_vdev,
203 const struct isp2x_awb_gain_cfg *arg);
204 void (*awbgain_enable)(struct rkisp_isp_params_vdev *params_vdev,
205 bool en);
206 void (*debayer_config)(struct rkisp_isp_params_vdev *params_vdev,
207 const struct isp2x_debayer_cfg *arg);
208 void (*debayer_enable)(struct rkisp_isp_params_vdev *params_vdev,
209 bool en);
210 void (*ccm_config)(struct rkisp_isp_params_vdev *params_vdev,
211 const struct isp2x_ccm_cfg *arg);
212 void (*ccm_enable)(struct rkisp_isp_params_vdev *params_vdev,
213 bool en);
214 void (*goc_config)(struct rkisp_isp_params_vdev *params_vdev,
215 const struct isp2x_gammaout_cfg *arg);
216 void (*goc_enable)(struct rkisp_isp_params_vdev *params_vdev,
217 bool en);
218 void (*cproc_config)(struct rkisp_isp_params_vdev *params_vdev,
219 const struct isp2x_cproc_cfg *arg);
220 void (*cproc_enable)(struct rkisp_isp_params_vdev *params_vdev,
221 bool en);
222 void (*siaf_config)(struct rkisp_isp_params_vdev *params_vdev,
223 const struct isp2x_siaf_cfg *arg);
224 void (*siaf_enable)(struct rkisp_isp_params_vdev *params_vdev,
225 bool en);
226 void (*siawb_config)(struct rkisp_isp_params_vdev *params_vdev,
227 const struct isp2x_siawb_meas_cfg *arg);
228 void (*siawb_enable)(struct rkisp_isp_params_vdev *params_vdev,
229 bool en);
230 void (*ie_config)(struct rkisp_isp_params_vdev *params_vdev,
231 const struct isp2x_ie_cfg *arg);
232 void (*ie_enable)(struct rkisp_isp_params_vdev *params_vdev,
233 bool en);
234 void (*yuvae_config)(struct rkisp_isp_params_vdev *params_vdev,
235 const struct isp2x_yuvae_meas_cfg *arg);
236 void (*yuvae_enable)(struct rkisp_isp_params_vdev *params_vdev,
237 bool en);
238 void (*wdr_config)(struct rkisp_isp_params_vdev *params_vdev,
239 const struct isp2x_wdr_cfg *arg);
240 void (*wdr_enable)(struct rkisp_isp_params_vdev *params_vdev,
241 bool en);
242 void (*iesharp_config)(struct rkisp_isp_params_vdev *params_vdev,
243 const struct isp2x_rkiesharp_cfg *arg);
244 void (*iesharp_enable)(struct rkisp_isp_params_vdev *params_vdev,
245 bool en);
246 void (*rawaf_config)(struct rkisp_isp_params_vdev *params_vdev,
247 const struct isp2x_rawaf_meas_cfg *arg);
248 void (*rawaf_enable)(struct rkisp_isp_params_vdev *params_vdev,
249 bool en);
250 void (*rawae0_config)(struct rkisp_isp_params_vdev *params_vdev,
251 const struct isp2x_rawaelite_meas_cfg *arg);
252 void (*rawae0_enable)(struct rkisp_isp_params_vdev *params_vdev,
253 bool en);
254 void (*rawae1_config)(struct rkisp_isp_params_vdev *params_vdev,
255 const struct isp2x_rawaebig_meas_cfg *arg);
256 void (*rawae1_enable)(struct rkisp_isp_params_vdev *params_vdev,
257 bool en);
258 void (*rawae2_config)(struct rkisp_isp_params_vdev *params_vdev,
259 const struct isp2x_rawaebig_meas_cfg *arg);
260 void (*rawae2_enable)(struct rkisp_isp_params_vdev *params_vdev,
261 bool en);
262 void (*rawae3_config)(struct rkisp_isp_params_vdev *params_vdev,
263 const struct isp2x_rawaebig_meas_cfg *arg);
264 void (*rawae3_enable)(struct rkisp_isp_params_vdev *params_vdev,
265 bool en);
266 void (*rawawb_config)(struct rkisp_isp_params_vdev *params_vdev,
267 const struct isp2x_rawawb_meas_cfg *arg);
268 void (*rawawb_enable)(struct rkisp_isp_params_vdev *params_vdev,
269 bool en);
270 void (*rawhst0_config)(struct rkisp_isp_params_vdev *params_vdev,
271 const struct isp2x_rawhistlite_cfg *arg);
272 void (*rawhst0_enable)(struct rkisp_isp_params_vdev *params_vdev,
273 bool en);
274 void (*rawhst1_config)(struct rkisp_isp_params_vdev *params_vdev,
275 const struct isp2x_rawhistbig_cfg *arg);
276 void (*rawhst1_enable)(struct rkisp_isp_params_vdev *params_vdev,
277 bool en);
278 void (*rawhst2_config)(struct rkisp_isp_params_vdev *params_vdev,
279 const struct isp2x_rawhistbig_cfg *arg);
280 void (*rawhst2_enable)(struct rkisp_isp_params_vdev *params_vdev,
281 bool en);
282 void (*rawhst3_config)(struct rkisp_isp_params_vdev *params_vdev,
283 const struct isp2x_rawhistbig_cfg *arg);
284 void (*rawhst3_enable)(struct rkisp_isp_params_vdev *params_vdev,
285 bool en);
286 void (*hdrmge_config)(struct rkisp_isp_params_vdev *params_vdev,
287 const struct isp2x_hdrmge_cfg *arg, enum rkisp_params_type type);
288 void (*hdrmge_enable)(struct rkisp_isp_params_vdev *params_vdev,
289 bool en);
290 void (*rawnr_config)(struct rkisp_isp_params_vdev *params_vdev,
291 const struct isp2x_rawnr_cfg *arg);
292 void (*rawnr_enable)(struct rkisp_isp_params_vdev *params_vdev,
293 bool en);
294 void (*hdrtmo_config)(struct rkisp_isp_params_vdev *params_vdev,
295 const struct isp2x_hdrtmo_cfg *arg, enum rkisp_params_type type);
296 void (*hdrtmo_enable)(struct rkisp_isp_params_vdev *params_vdev,
297 bool en);
298 void (*gic_config)(struct rkisp_isp_params_vdev *params_vdev,
299 const struct isp2x_gic_cfg *arg);
300 void (*gic_enable)(struct rkisp_isp_params_vdev *params_vdev,
301 bool en);
302 void (*dhaz_config)(struct rkisp_isp_params_vdev *params_vdev,
303 const struct isp2x_dhaz_cfg *arg);
304 void (*dhaz_enable)(struct rkisp_isp_params_vdev *params_vdev,
305 bool en);
306 void (*gain_config)(struct rkisp_isp_params_vdev *params_vdev,
307 const struct isp2x_gain_cfg *arg);
308 void (*gain_enable)(struct rkisp_isp_params_vdev *params_vdev,
309 bool en);
310 void (*isp3dlut_config)(struct rkisp_isp_params_vdev *params_vdev,
311 const struct isp2x_3dlut_cfg *arg);
312 void (*isp3dlut_enable)(struct rkisp_isp_params_vdev *params_vdev,
313 bool en);
314 void (*ldch_config)(struct rkisp_isp_params_vdev *params_vdev,
315 const struct isp2x_ldch_cfg *arg);
316 void (*ldch_enable)(struct rkisp_isp_params_vdev *params_vdev,
317 bool en);
318 void (*csm_config)(struct rkisp_isp_params_vdev *params_vdev,
319 bool full_range);
320 };
321
322 struct rkisp_isp_params_val_v2x {
323 struct rkisp_dummy_buffer buf_3dlut[RKISP_PARAM_3DLUT_BUF_NUM];
324 u32 buf_3dlut_idx;
325
326 struct rkisp_dummy_buffer buf_ldch[ISP2X_LDCH_BUF_NUM];
327 u32 buf_ldch_idx;
328
329 struct rkisp_dummy_buffer buf_lsclut[RKISP_PARAM_LSC_LUT_BUF_NUM];
330 u32 buf_lsclut_idx;
331
332 struct isp2x_hdrtmo_cfg last_hdrtmo;
333 struct isp2x_hdrmge_cfg last_hdrmge;
334 struct isp2x_hdrtmo_cfg cur_hdrtmo;
335 struct isp2x_hdrmge_cfg cur_hdrmge;
336
337 u8 dhaz_en;
338 u8 wdr_en;
339 u8 tmo_en;
340 u8 lsc_en;
341 u8 mge_en;
342
343 /*
344 * LDCH will compete with LSC/3DLUT for the DDR bus,
345 * which may cause LDCH to read the map table exception.
346 * so enable LDCH in 2th frame.
347 */
348 bool delay_en_ldch;
349 };
350
351 #if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V20)
352 int rkisp_init_params_vdev_v2x(struct rkisp_isp_params_vdev *params_vdev);
353 void rkisp_uninit_params_vdev_v2x(struct rkisp_isp_params_vdev *params_vdev);
354 #else
rkisp_init_params_vdev_v2x(struct rkisp_isp_params_vdev * params_vdev)355 static inline int rkisp_init_params_vdev_v2x(struct rkisp_isp_params_vdev *params_vdev) { return -EINVAL; }
rkisp_uninit_params_vdev_v2x(struct rkisp_isp_params_vdev * params_vdev)356 static inline void rkisp_uninit_params_vdev_v2x(struct rkisp_isp_params_vdev *params_vdev) {}
357 #endif
358
359 #endif /* _RKISP_ISP_PARAM_V2X_H */
360