• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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