1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#ifndef _IA_CSS_ISP_PARAM_H
18#define _IA_CSS_ISP_PARAM_H
19
20
21
22enum ia_css_parameter_ids {
23 IA_CSS_AA_ID,
24 IA_CSS_ANR_ID,
25 IA_CSS_ANR2_ID,
26 IA_CSS_BH_ID,
27 IA_CSS_CNR_ID,
28 IA_CSS_CROP_ID,
29 IA_CSS_CSC_ID,
30 IA_CSS_DP_ID,
31 IA_CSS_BNR_ID,
32 IA_CSS_DE_ID,
33 IA_CSS_ECD_ID,
34 IA_CSS_FORMATS_ID,
35 IA_CSS_FPN_ID,
36 IA_CSS_GC_ID,
37 IA_CSS_CE_ID,
38 IA_CSS_YUV2RGB_ID,
39 IA_CSS_RGB2YUV_ID,
40 IA_CSS_R_GAMMA_ID,
41 IA_CSS_G_GAMMA_ID,
42 IA_CSS_B_GAMMA_ID,
43 IA_CSS_UDS_ID,
44 IA_CSS_RAA_ID,
45 IA_CSS_S3A_ID,
46 IA_CSS_OB_ID,
47 IA_CSS_OUTPUT_ID,
48 IA_CSS_SC_ID,
49 IA_CSS_BDS_ID,
50 IA_CSS_TNR_ID,
51 IA_CSS_MACC_ID,
52 IA_CSS_SDIS_HORICOEF_ID,
53 IA_CSS_SDIS_VERTCOEF_ID,
54 IA_CSS_SDIS_HORIPROJ_ID,
55 IA_CSS_SDIS_VERTPROJ_ID,
56 IA_CSS_SDIS2_HORICOEF_ID,
57 IA_CSS_SDIS2_VERTCOEF_ID,
58 IA_CSS_SDIS2_HORIPROJ_ID,
59 IA_CSS_SDIS2_VERTPROJ_ID,
60 IA_CSS_WB_ID,
61 IA_CSS_NR_ID,
62 IA_CSS_YEE_ID,
63 IA_CSS_YNR_ID,
64 IA_CSS_FC_ID,
65 IA_CSS_CTC_ID,
66 IA_CSS_XNR_TABLE_ID,
67 IA_CSS_XNR_ID,
68 IA_CSS_XNR3_ID,
69 IA_CSS_NUM_PARAMETER_IDS
70};
71
72
73
74struct ia_css_memory_offsets {
75 struct {
76 struct ia_css_isp_parameter aa;
77 struct ia_css_isp_parameter anr;
78 struct ia_css_isp_parameter bh;
79 struct ia_css_isp_parameter cnr;
80 struct ia_css_isp_parameter crop;
81 struct ia_css_isp_parameter csc;
82 struct ia_css_isp_parameter dp;
83 struct ia_css_isp_parameter bnr;
84 struct ia_css_isp_parameter de;
85 struct ia_css_isp_parameter ecd;
86 struct ia_css_isp_parameter formats;
87 struct ia_css_isp_parameter fpn;
88 struct ia_css_isp_parameter gc;
89 struct ia_css_isp_parameter ce;
90 struct ia_css_isp_parameter yuv2rgb;
91 struct ia_css_isp_parameter rgb2yuv;
92 struct ia_css_isp_parameter uds;
93 struct ia_css_isp_parameter raa;
94 struct ia_css_isp_parameter s3a;
95 struct ia_css_isp_parameter ob;
96 struct ia_css_isp_parameter output;
97 struct ia_css_isp_parameter sc;
98 struct ia_css_isp_parameter bds;
99 struct ia_css_isp_parameter tnr;
100 struct ia_css_isp_parameter macc;
101 struct ia_css_isp_parameter sdis_horiproj;
102 struct ia_css_isp_parameter sdis_vertproj;
103 struct ia_css_isp_parameter sdis2_horiproj;
104 struct ia_css_isp_parameter sdis2_vertproj;
105 struct ia_css_isp_parameter wb;
106 struct ia_css_isp_parameter nr;
107 struct ia_css_isp_parameter yee;
108 struct ia_css_isp_parameter ynr;
109 struct ia_css_isp_parameter fc;
110 struct ia_css_isp_parameter ctc;
111 struct ia_css_isp_parameter xnr;
112 struct ia_css_isp_parameter xnr3;
113 struct ia_css_isp_parameter get;
114 struct ia_css_isp_parameter put;
115 } dmem;
116 struct {
117 struct ia_css_isp_parameter anr2;
118 struct ia_css_isp_parameter ob;
119 struct ia_css_isp_parameter sdis_horicoef;
120 struct ia_css_isp_parameter sdis_vertcoef;
121 struct ia_css_isp_parameter sdis2_horicoef;
122 struct ia_css_isp_parameter sdis2_vertcoef;
123#ifdef ISP2401
124 struct ia_css_isp_parameter xnr3;
125#endif
126 } vmem;
127 struct {
128 struct ia_css_isp_parameter bh;
129 } hmem0;
130 struct {
131 struct ia_css_isp_parameter gc;
132 struct ia_css_isp_parameter g_gamma;
133 struct ia_css_isp_parameter xnr_table;
134 } vamem1;
135 struct {
136 struct ia_css_isp_parameter r_gamma;
137 struct ia_css_isp_parameter ctc;
138 } vamem0;
139 struct {
140 struct ia_css_isp_parameter b_gamma;
141 } vamem2;
142};
143
144#if defined(IA_CSS_INCLUDE_PARAMETERS)
145
146#include "ia_css_stream.h"
147#include "ia_css_binary.h"
148
149
150struct ia_css_pipeline_stage;
151
152extern void (* ia_css_kernel_process_param[IA_CSS_NUM_PARAMETER_IDS])(
153 unsigned pipe_id,
154 const struct ia_css_pipeline_stage *stage,
155 struct ia_css_isp_parameters *params);
156
157
158
159void
160ia_css_set_dp_config(struct ia_css_isp_parameters *params,
161 const struct ia_css_dp_config *config);
162
163
164
165void
166ia_css_set_wb_config(struct ia_css_isp_parameters *params,
167 const struct ia_css_wb_config *config);
168
169
170
171void
172ia_css_set_tnr_config(struct ia_css_isp_parameters *params,
173 const struct ia_css_tnr_config *config);
174
175
176
177void
178ia_css_set_ob_config(struct ia_css_isp_parameters *params,
179 const struct ia_css_ob_config *config);
180
181
182
183void
184ia_css_set_de_config(struct ia_css_isp_parameters *params,
185 const struct ia_css_de_config *config);
186
187
188
189void
190ia_css_set_anr_config(struct ia_css_isp_parameters *params,
191 const struct ia_css_anr_config *config);
192
193
194
195void
196ia_css_set_anr2_config(struct ia_css_isp_parameters *params,
197 const struct ia_css_anr_thres *config);
198
199
200
201void
202ia_css_set_ce_config(struct ia_css_isp_parameters *params,
203 const struct ia_css_ce_config *config);
204
205
206
207void
208ia_css_set_ecd_config(struct ia_css_isp_parameters *params,
209 const struct ia_css_ecd_config *config);
210
211
212
213void
214ia_css_set_ynr_config(struct ia_css_isp_parameters *params,
215 const struct ia_css_ynr_config *config);
216
217
218
219void
220ia_css_set_fc_config(struct ia_css_isp_parameters *params,
221 const struct ia_css_fc_config *config);
222
223
224
225void
226ia_css_set_cnr_config(struct ia_css_isp_parameters *params,
227 const struct ia_css_cnr_config *config);
228
229
230
231void
232ia_css_set_macc_config(struct ia_css_isp_parameters *params,
233 const struct ia_css_macc_config *config);
234
235
236
237void
238ia_css_set_ctc_config(struct ia_css_isp_parameters *params,
239 const struct ia_css_ctc_config *config);
240
241
242
243void
244ia_css_set_aa_config(struct ia_css_isp_parameters *params,
245 const struct ia_css_aa_config *config);
246
247
248
249void
250ia_css_set_yuv2rgb_config(struct ia_css_isp_parameters *params,
251 const struct ia_css_cc_config *config);
252
253
254
255void
256ia_css_set_rgb2yuv_config(struct ia_css_isp_parameters *params,
257 const struct ia_css_cc_config *config);
258
259
260
261void
262ia_css_set_csc_config(struct ia_css_isp_parameters *params,
263 const struct ia_css_cc_config *config);
264
265
266
267void
268ia_css_set_nr_config(struct ia_css_isp_parameters *params,
269 const struct ia_css_nr_config *config);
270
271
272
273void
274ia_css_set_gc_config(struct ia_css_isp_parameters *params,
275 const struct ia_css_gc_config *config);
276
277
278
279void
280ia_css_set_sdis_horicoef_config(struct ia_css_isp_parameters *params,
281 const struct ia_css_dvs_coefficients *config);
282
283
284
285void
286ia_css_set_sdis_vertcoef_config(struct ia_css_isp_parameters *params,
287 const struct ia_css_dvs_coefficients *config);
288
289
290
291void
292ia_css_set_sdis_horiproj_config(struct ia_css_isp_parameters *params,
293 const struct ia_css_dvs_coefficients *config);
294
295
296
297void
298ia_css_set_sdis_vertproj_config(struct ia_css_isp_parameters *params,
299 const struct ia_css_dvs_coefficients *config);
300
301
302
303void
304ia_css_set_sdis2_horicoef_config(struct ia_css_isp_parameters *params,
305 const struct ia_css_dvs2_coefficients *config);
306
307
308
309void
310ia_css_set_sdis2_vertcoef_config(struct ia_css_isp_parameters *params,
311 const struct ia_css_dvs2_coefficients *config);
312
313
314
315void
316ia_css_set_sdis2_horiproj_config(struct ia_css_isp_parameters *params,
317 const struct ia_css_dvs2_coefficients *config);
318
319
320
321void
322ia_css_set_sdis2_vertproj_config(struct ia_css_isp_parameters *params,
323 const struct ia_css_dvs2_coefficients *config);
324
325
326
327void
328ia_css_set_r_gamma_config(struct ia_css_isp_parameters *params,
329 const struct ia_css_rgb_gamma_table *config);
330
331
332
333void
334ia_css_set_g_gamma_config(struct ia_css_isp_parameters *params,
335 const struct ia_css_rgb_gamma_table *config);
336
337
338
339void
340ia_css_set_b_gamma_config(struct ia_css_isp_parameters *params,
341 const struct ia_css_rgb_gamma_table *config);
342
343
344
345void
346ia_css_set_xnr_table_config(struct ia_css_isp_parameters *params,
347 const struct ia_css_xnr_table *config);
348
349
350
351void
352ia_css_set_formats_config(struct ia_css_isp_parameters *params,
353 const struct ia_css_formats_config *config);
354
355
356
357void
358ia_css_set_xnr_config(struct ia_css_isp_parameters *params,
359 const struct ia_css_xnr_config *config);
360
361
362
363void
364ia_css_set_xnr3_config(struct ia_css_isp_parameters *params,
365 const struct ia_css_xnr3_config *config);
366
367
368
369void
370ia_css_set_s3a_config(struct ia_css_isp_parameters *params,
371 const struct ia_css_3a_config *config);
372
373
374
375void
376ia_css_set_output_config(struct ia_css_isp_parameters *params,
377 const struct ia_css_output_config *config);
378
379
380
381void
382ia_css_get_configs(struct ia_css_isp_parameters *params,
383 const struct ia_css_isp_config *config)
384;
385#ifdef ISP2401
386
387#endif
388
389
390void
391ia_css_set_configs(struct ia_css_isp_parameters *params,
392 const struct ia_css_isp_config *config)
393;
394#ifdef ISP2401
395
396#endif
397#endif
398
399#endif
400