1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef __ATOMISP_COMPAT_IOCTL32_H__
19#define __ATOMISP_COMPAT_IOCTL32_H__
20
21#include <linux/compat.h>
22#include <linux/videodev2.h>
23
24#include "atomisp_compat.h"
25
26struct atomisp_histogram32 {
27 unsigned int num_elements;
28 compat_uptr_t data;
29};
30
31struct atomisp_dvs2_stat_types32 {
32 compat_uptr_t odd_real;
33 compat_uptr_t odd_imag;
34 compat_uptr_t even_real;
35 compat_uptr_t even_imag;
36};
37
38struct atomisp_dvs2_coef_types32 {
39 compat_uptr_t odd_real;
40 compat_uptr_t odd_imag;
41 compat_uptr_t even_real;
42 compat_uptr_t even_imag;
43};
44
45struct atomisp_dvs2_statistics32 {
46 struct atomisp_dvs_grid_info grid_info;
47 struct atomisp_dvs2_stat_types32 hor_prod;
48 struct atomisp_dvs2_stat_types32 ver_prod;
49};
50
51struct atomisp_dis_statistics32 {
52 struct atomisp_dvs2_statistics32 dvs2_stat;
53 u32 exp_id;
54};
55
56struct atomisp_dis_coefficients32 {
57 struct atomisp_dvs_grid_info grid_info;
58 struct atomisp_dvs2_coef_types32 hor_coefs;
59 struct atomisp_dvs2_coef_types32 ver_coefs;
60};
61
62struct atomisp_3a_statistics32 {
63 struct atomisp_grid_info grid_info;
64 compat_uptr_t data;
65 compat_uptr_t rgby_data;
66 u32 exp_id;
67 u32 isp_config_id;
68};
69
70struct atomisp_metadata_with_type32 {
71
72 enum atomisp_metadata_type type;
73 compat_uptr_t data;
74 u32 width;
75 u32 height;
76 u32 stride;
77 u32 exp_id;
78 compat_uptr_t effective_width;
79};
80
81struct atomisp_metadata32 {
82 compat_uptr_t data;
83 u32 width;
84 u32 height;
85 u32 stride;
86 u32 exp_id;
87 compat_uptr_t effective_width;
88};
89
90struct atomisp_morph_table32 {
91 unsigned int enabled;
92 unsigned int height;
93 unsigned int width;
94 compat_uptr_t coordinates_x[ATOMISP_MORPH_TABLE_NUM_PLANES];
95 compat_uptr_t coordinates_y[ATOMISP_MORPH_TABLE_NUM_PLANES];
96};
97
98struct v4l2_framebuffer32 {
99 __u32 capability;
100 __u32 flags;
101 compat_uptr_t base;
102 struct v4l2_pix_format fmt;
103};
104
105struct atomisp_overlay32 {
106
107
108
109
110 compat_uptr_t frame;
111
112 unsigned char bg_y;
113
114 char bg_u;
115
116 char bg_v;
117
118 unsigned char blend_input_perc_y;
119
120 unsigned char blend_input_perc_u;
121
122 unsigned char blend_input_perc_v;
123
124 unsigned char blend_overlay_perc_y;
125
126 unsigned char blend_overlay_perc_u;
127
128 unsigned char blend_overlay_perc_v;
129
130
131 unsigned int overlay_start_x;
132
133
134 unsigned int overlay_start_y;
135};
136
137struct atomisp_calibration_group32 {
138 unsigned int size;
139 unsigned int type;
140 compat_uptr_t calb_grp_values;
141};
142
143struct atomisp_acc_fw_load32 {
144 unsigned int size;
145 unsigned int fw_handle;
146 compat_uptr_t data;
147};
148
149struct atomisp_acc_fw_arg32 {
150 unsigned int fw_handle;
151 unsigned int index;
152 compat_uptr_t value;
153 compat_size_t size;
154};
155
156struct v4l2_private_int_data32 {
157 __u32 size;
158 compat_uptr_t data;
159 __u32 reserved[2];
160};
161
162struct atomisp_shading_table32 {
163 __u32 enable;
164 __u32 sensor_width;
165 __u32 sensor_height;
166 __u32 width;
167 __u32 height;
168 __u32 fraction_bits;
169
170 compat_uptr_t data[ATOMISP_NUM_SC_COLORS];
171};
172
173struct atomisp_acc_map32 {
174 __u32 flags;
175 __u32 length;
176 compat_uptr_t user_ptr;
177 compat_ulong_t css_ptr;
178 __u32 reserved[4];
179};
180
181struct atomisp_acc_s_mapped_arg32 {
182 unsigned int fw_handle;
183 __u32 memory;
184 compat_size_t length;
185 compat_ulong_t css_ptr;
186};
187
188struct atomisp_parameters32 {
189 compat_uptr_t wb_config;
190 compat_uptr_t cc_config;
191 compat_uptr_t tnr_config;
192 compat_uptr_t ecd_config;
193 compat_uptr_t ynr_config;
194 compat_uptr_t fc_config;
195 compat_uptr_t formats_config;
196 compat_uptr_t cnr_config;
197 compat_uptr_t macc_config;
198 compat_uptr_t ctc_config;
199 compat_uptr_t aa_config;
200 compat_uptr_t baa_config;
201 compat_uptr_t ce_config;
202 compat_uptr_t dvs_6axis_config;
203 compat_uptr_t ob_config;
204 compat_uptr_t dp_config;
205 compat_uptr_t nr_config;
206 compat_uptr_t ee_config;
207 compat_uptr_t de_config;
208 compat_uptr_t gc_config;
209 compat_uptr_t anr_config;
210 compat_uptr_t a3a_config;
211 compat_uptr_t xnr_config;
212 compat_uptr_t dz_config;
213 compat_uptr_t yuv2rgb_cc_config;
214
215 compat_uptr_t rgb2yuv_cc_config;
216
217 compat_uptr_t macc_table;
218 compat_uptr_t gamma_table;
219 compat_uptr_t ctc_table;
220 compat_uptr_t xnr_table;
221 compat_uptr_t r_gamma_table;
222 compat_uptr_t g_gamma_table;
223 compat_uptr_t b_gamma_table;
224 compat_uptr_t motion_vector;
225 compat_uptr_t shading_table;
226 compat_uptr_t morph_table;
227 compat_uptr_t dvs_coefs;
228 compat_uptr_t dvs2_coefs;
229 compat_uptr_t capture_config;
230 compat_uptr_t anr_thres;
231
232 compat_uptr_t lin_2500_config;
233 compat_uptr_t obgrid_2500_config;
234 compat_uptr_t bnr_2500_config;
235 compat_uptr_t shd_2500_config;
236 compat_uptr_t dm_2500_config;
237 compat_uptr_t rgbpp_2500_config;
238 compat_uptr_t dvs_stat_2500_config;
239 compat_uptr_t lace_stat_2500_config;
240 compat_uptr_t yuvp1_2500_config;
241 compat_uptr_t yuvp2_2500_config;
242 compat_uptr_t tnr_2500_config;
243 compat_uptr_t dpc_2500_config;
244 compat_uptr_t awb_2500_config;
245 compat_uptr_t
246 awb_fr_2500_config;
247 compat_uptr_t anr_2500_config;
248 compat_uptr_t af_2500_config;
249 compat_uptr_t ae_2500_config;
250 compat_uptr_t bds_2500_config;
251 compat_uptr_t
252 dvs_2500_config;
253 compat_uptr_t res_mgr_2500_config;
254
255
256
257
258
259 compat_uptr_t output_frame;
260
261
262
263
264 u32 isp_config_id;
265 u32 per_frame_setting;
266};
267
268struct atomisp_acc_fw_load_to_pipe32 {
269 __u32 flags;
270 unsigned int fw_handle;
271 __u32 size;
272 compat_uptr_t data;
273 __u32 type;
274 __u32 reserved[3];
275};
276
277struct atomisp_dvs_6axis_config32 {
278 u32 exp_id;
279 u32 width_y;
280 u32 height_y;
281 u32 width_uv;
282 u32 height_uv;
283 compat_uptr_t xcoords_y;
284 compat_uptr_t ycoords_y;
285 compat_uptr_t xcoords_uv;
286 compat_uptr_t ycoords_uv;
287};
288
289struct atomisp_sensor_ae_bracketing_lut32 {
290 compat_uptr_t lut;
291 unsigned int lut_size;
292};
293
294#define ATOMISP_IOC_G_HISTOGRAM32 \
295 _IOWR('v', BASE_VIDIOC_PRIVATE + 3, struct atomisp_histogram32)
296#define ATOMISP_IOC_S_HISTOGRAM32 \
297 _IOW('v', BASE_VIDIOC_PRIVATE + 3, struct atomisp_histogram32)
298
299#define ATOMISP_IOC_G_DIS_STAT32 \
300 _IOWR('v', BASE_VIDIOC_PRIVATE + 6, struct atomisp_dis_statistics32)
301#define ATOMISP_IOC_S_DIS_COEFS32 \
302 _IOW('v', BASE_VIDIOC_PRIVATE + 6, struct atomisp_dis_coefficients32)
303
304#define ATOMISP_IOC_S_DIS_VECTOR32 \
305 _IOW('v', BASE_VIDIOC_PRIVATE + 6, struct atomisp_dvs_6axis_config32)
306
307#define ATOMISP_IOC_G_3A_STAT32 \
308 _IOWR('v', BASE_VIDIOC_PRIVATE + 7, struct atomisp_3a_statistics32)
309
310#define ATOMISP_IOC_G_ISP_GDC_TAB32 \
311 _IOR('v', BASE_VIDIOC_PRIVATE + 10, struct atomisp_morph_table32)
312#define ATOMISP_IOC_S_ISP_GDC_TAB32 \
313 _IOW('v', BASE_VIDIOC_PRIVATE + 10, struct atomisp_morph_table32)
314
315#define ATOMISP_IOC_S_ISP_FPN_TABLE32 \
316 _IOW('v', BASE_VIDIOC_PRIVATE + 17, struct v4l2_framebuffer32)
317
318#define ATOMISP_IOC_G_ISP_OVERLAY32 \
319 _IOWR('v', BASE_VIDIOC_PRIVATE + 18, struct atomisp_overlay32)
320#define ATOMISP_IOC_S_ISP_OVERLAY32 \
321 _IOW('v', BASE_VIDIOC_PRIVATE + 18, struct atomisp_overlay32)
322
323#define ATOMISP_IOC_G_SENSOR_CALIBRATION_GROUP32 \
324 _IOWR('v', BASE_VIDIOC_PRIVATE + 22, struct atomisp_calibration_group32)
325
326#define ATOMISP_IOC_ACC_LOAD32 \
327 _IOWR('v', BASE_VIDIOC_PRIVATE + 24, struct atomisp_acc_fw_load32)
328
329#define ATOMISP_IOC_ACC_S_ARG32 \
330 _IOW('v', BASE_VIDIOC_PRIVATE + 24, struct atomisp_acc_fw_arg32)
331
332#define ATOMISP_IOC_ACC_DESTAB32 \
333 _IOW('v', BASE_VIDIOC_PRIVATE + 25, struct atomisp_acc_fw_arg32)
334
335#define ATOMISP_IOC_G_SENSOR_PRIV_INT_DATA32 \
336 _IOWR('v', BASE_VIDIOC_PRIVATE + 26, struct v4l2_private_int_data32)
337
338#define ATOMISP_IOC_S_ISP_SHD_TAB32 \
339 _IOWR('v', BASE_VIDIOC_PRIVATE + 27, struct atomisp_shading_table32)
340
341#define ATOMISP_IOC_G_MOTOR_PRIV_INT_DATA32 \
342 _IOWR('v', BASE_VIDIOC_PRIVATE + 29, struct v4l2_private_int_data32)
343
344#define ATOMISP_IOC_ACC_MAP32 \
345 _IOWR('v', BASE_VIDIOC_PRIVATE + 30, struct atomisp_acc_map32)
346
347#define ATOMISP_IOC_ACC_UNMAP32 \
348 _IOW('v', BASE_VIDIOC_PRIVATE + 30, struct atomisp_acc_map32)
349
350#define ATOMISP_IOC_ACC_S_MAPPED_ARG32 \
351 _IOW('v', BASE_VIDIOC_PRIVATE + 30, struct atomisp_acc_s_mapped_arg32)
352
353#define ATOMISP_IOC_ACC_LOAD_TO_PIPE32 \
354 _IOWR('v', BASE_VIDIOC_PRIVATE + 31, struct atomisp_acc_fw_load_to_pipe32)
355
356#define ATOMISP_IOC_S_PARAMETERS32 \
357 _IOW('v', BASE_VIDIOC_PRIVATE + 32, struct atomisp_parameters32)
358
359#define ATOMISP_IOC_G_METADATA32 \
360 _IOWR('v', BASE_VIDIOC_PRIVATE + 34, struct atomisp_metadata32)
361
362#define ATOMISP_IOC_G_METADATA_BY_TYPE32 \
363 _IOWR('v', BASE_VIDIOC_PRIVATE + 34, struct atomisp_metadata_with_type32)
364
365#define ATOMISP_IOC_S_SENSOR_AE_BRACKETING_LUT32 \
366 _IOW('v', BASE_VIDIOC_PRIVATE + 43, struct atomisp_sensor_ae_bracketing_lut32)
367
368#endif
369