• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _MSM_MDP_H_
20 #define _MSM_MDP_H_
21 #include <linux/types.h>
22 #include <linux/fb.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define MSMFB_IOCTL_MAGIC 'm'
25 #define MSMFB_GRP_DISP _IOW(MSMFB_IOCTL_MAGIC, 1, unsigned int)
26 #define MSMFB_BLIT _IOW(MSMFB_IOCTL_MAGIC, 2, unsigned int)
27 #define MSMFB_SUSPEND_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 128, unsigned int)
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define MSMFB_RESUME_SW_REFRESHER _IOW(MSMFB_IOCTL_MAGIC, 129, unsigned int)
30 #define MSMFB_CURSOR _IOW(MSMFB_IOCTL_MAGIC, 130, struct fb_cursor)
31 #define MSMFB_SET_LUT _IOW(MSMFB_IOCTL_MAGIC, 131, struct fb_cmap)
32 #define MSMFB_HISTOGRAM _IOWR(MSMFB_IOCTL_MAGIC, 132, struct mdp_histogram_data)
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define MSMFB_GET_CCS_MATRIX _IOWR(MSMFB_IOCTL_MAGIC, 133, struct mdp_ccs)
35 #define MSMFB_SET_CCS_MATRIX _IOW(MSMFB_IOCTL_MAGIC, 134, struct mdp_ccs)
36 #define MSMFB_OVERLAY_SET _IOWR(MSMFB_IOCTL_MAGIC, 135,   struct mdp_overlay)
37 #define MSMFB_OVERLAY_UNSET _IOW(MSMFB_IOCTL_MAGIC, 136, unsigned int)
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define MSMFB_OVERLAY_PLAY _IOW(MSMFB_IOCTL_MAGIC, 137,   struct msmfb_overlay_data)
40 #define MSMFB_OVERLAY_QUEUE MSMFB_OVERLAY_PLAY
41 #define MSMFB_GET_PAGE_PROTECTION _IOR(MSMFB_IOCTL_MAGIC, 138,   struct mdp_page_protection)
42 #define MSMFB_SET_PAGE_PROTECTION _IOW(MSMFB_IOCTL_MAGIC, 139,   struct mdp_page_protection)
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define MSMFB_OVERLAY_GET _IOR(MSMFB_IOCTL_MAGIC, 140,   struct mdp_overlay)
45 #define MSMFB_OVERLAY_PLAY_ENABLE _IOW(MSMFB_IOCTL_MAGIC, 141, unsigned int)
46 #define MSMFB_OVERLAY_BLT _IOWR(MSMFB_IOCTL_MAGIC, 142,   struct msmfb_overlay_blt)
47 #define MSMFB_OVERLAY_BLT_OFFSET _IOW(MSMFB_IOCTL_MAGIC, 143, unsigned int)
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define MSMFB_HISTOGRAM_START _IOR(MSMFB_IOCTL_MAGIC, 144,   struct mdp_histogram_start_req)
50 #define MSMFB_HISTOGRAM_STOP _IOR(MSMFB_IOCTL_MAGIC, 145, unsigned int)
51 #define MSMFB_NOTIFY_UPDATE _IOW(MSMFB_IOCTL_MAGIC, 146, unsigned int)
52 #define MSMFB_OVERLAY_3D _IOWR(MSMFB_IOCTL_MAGIC, 147,   struct msmfb_overlay_3d)
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define MSMFB_MIXER_INFO _IOWR(MSMFB_IOCTL_MAGIC, 148,   struct msmfb_mixer_info_req)
55 #define MSMFB_OVERLAY_PLAY_WAIT _IOWR(MSMFB_IOCTL_MAGIC, 149,   struct msmfb_overlay_data)
56 #define MSMFB_WRITEBACK_INIT _IO(MSMFB_IOCTL_MAGIC, 150)
57 #define MSMFB_WRITEBACK_START _IO(MSMFB_IOCTL_MAGIC, 151)
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define MSMFB_WRITEBACK_STOP _IO(MSMFB_IOCTL_MAGIC, 152)
60 #define MSMFB_WRITEBACK_QUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 153,   struct msmfb_data)
61 #define MSMFB_WRITEBACK_DEQUEUE_BUFFER _IOW(MSMFB_IOCTL_MAGIC, 154,   struct msmfb_data)
62 #define MSMFB_WRITEBACK_TERMINATE _IO(MSMFB_IOCTL_MAGIC, 155)
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 #define MSMFB_MDP_PP _IOWR(MSMFB_IOCTL_MAGIC, 156, struct msmfb_mdp_pp)
65 #define MSMFB_OVERLAY_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 160, unsigned int)
66 #define MSMFB_VSYNC_CTRL _IOW(MSMFB_IOCTL_MAGIC, 161, unsigned int)
67 #define MSMFB_BUFFER_SYNC _IOW(MSMFB_IOCTL_MAGIC, 162, struct mdp_buf_sync)
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69 #define MSMFB_DISPLAY_COMMIT _IOW(MSMFB_IOCTL_MAGIC, 164,   struct mdp_display_commit)
70 #define FB_TYPE_3D_PANEL 0x10101010
71 #define MDP_IMGTYPE2_START 0x10000
72 #define MSMFB_DRIVER_VERSION 0xF9E8D701
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 enum {
75  NOTIFY_UPDATE_START,
76  NOTIFY_UPDATE_STOP,
77 };
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 enum {
80  MDP_RGB_565,
81  MDP_XRGB_8888,
82  MDP_Y_CBCR_H2V2,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  MDP_Y_CBCR_H2V2_ADRENO,
85  MDP_ARGB_8888,
86  MDP_RGB_888,
87  MDP_Y_CRCB_H2V2,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  MDP_YCRYCB_H2V1,
90  MDP_Y_CRCB_H2V1,
91  MDP_Y_CBCR_H2V1,
92  MDP_Y_CRCB_H1V2,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  MDP_Y_CBCR_H1V2,
95  MDP_RGBA_8888,
96  MDP_BGRA_8888,
97  MDP_RGBX_8888,
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  MDP_Y_CRCB_H2V2_TILE,
100  MDP_Y_CBCR_H2V2_TILE,
101  MDP_Y_CR_CB_H2V2,
102  MDP_Y_CR_CB_GH2V2,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  MDP_Y_CB_CR_H2V2,
105  MDP_Y_CRCB_H1V1,
106  MDP_Y_CBCR_H1V1,
107  MDP_YCRCB_H1V1,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  MDP_YCBCR_H1V1,
110  MDP_BGR_565,
111  MDP_IMGTYPE_LIMIT,
112  MDP_RGB_BORDERFILL,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  MDP_FB_FORMAT = MDP_IMGTYPE2_START,
115  MDP_IMGTYPE_LIMIT2
116 };
117 enum {
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  PMEM_IMG,
120  FB_IMG,
121 };
122 enum {
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  HSIC_HUE = 0,
125  HSIC_SAT,
126  HSIC_INT,
127  HSIC_CON,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  NUM_HSIC_PARAM,
130 };
131 #define MDSS_MDP_ROT_ONLY 0x80
132 #define MDSS_MDP_RIGHT_MIXER 0x100
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 #define MDP_ROT_NOP 0
135 #define MDP_FLIP_LR 0x1
136 #define MDP_FLIP_UD 0x2
137 #define MDP_ROT_90 0x4
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR)
140 #define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR)
141 #define MDP_DITHER 0x8
142 #define MDP_BLUR 0x10
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 #define MDP_BLEND_FG_PREMULT 0x20000
145 #define MDP_DEINTERLACE 0x80000000
146 #define MDP_SHARPENING 0x40000000
147 #define MDP_NO_DMA_BARRIER_START 0x20000000
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 #define MDP_NO_DMA_BARRIER_END 0x10000000
150 #define MDP_NO_BLIT 0x08000000
151 #define MDP_BLIT_WITH_DMA_BARRIERS 0x000
152 #define MDP_BLIT_WITH_NO_DMA_BARRIERS   (MDP_NO_DMA_BARRIER_START | MDP_NO_DMA_BARRIER_END)
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 #define MDP_BLIT_SRC_GEM 0x04000000
155 #define MDP_BLIT_DST_GEM 0x02000000
156 #define MDP_BLIT_NON_CACHED 0x01000000
157 #define MDP_OV_PIPE_SHARE 0x00800000
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 #define MDP_DEINTERLACE_ODD 0x00400000
160 #define MDP_OV_PLAY_NOWAIT 0x00200000
161 #define MDP_SOURCE_ROTATED_90 0x00100000
162 #define MDP_OVERLAY_PP_CFG_EN 0x00080000
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 #define MDP_BACKEND_COMPOSITION 0x00040000
165 #define MDP_BORDERFILL_SUPPORTED 0x00010000
166 #define MDP_SECURE_OVERLAY_SESSION 0x00008000
167 #define MDP_MEMORY_ID_TYPE_FB 0x00001000
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 #define MDP_TRANSP_NOP 0xffffffff
170 #define MDP_ALPHA_NOP 0xff
171 #define MDP_FB_PAGE_PROTECTION_NONCACHED (0)
172 #define MDP_FB_PAGE_PROTECTION_WRITECOMBINE (1)
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 #define MDP_FB_PAGE_PROTECTION_WRITETHROUGHCACHE (2)
175 #define MDP_FB_PAGE_PROTECTION_WRITEBACKCACHE (3)
176 #define MDP_FB_PAGE_PROTECTION_WRITEBACKWACACHE (4)
177 #define MDP_FB_PAGE_PROTECTION_INVALID (5)
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 #define MDP_NUM_FB_PAGE_PROTECTION_VALUES (5)
180 struct mdp_rect {
181  uint32_t x;
182  uint32_t y;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  uint32_t w;
185  uint32_t h;
186 };
187 struct mdp_img {
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  uint32_t width;
190  uint32_t height;
191  uint32_t format;
192  uint32_t offset;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  int memory_id;
195  uint32_t priv;
196 };
197 #define MDP_CCS_RGB2YUV 0
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 #define MDP_CCS_YUV2RGB 1
200 #define MDP_CCS_SIZE 9
201 #define MDP_BV_SIZE 3
202 struct mdp_ccs {
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  int direction;
205  uint16_t ccs[MDP_CCS_SIZE];
206  uint16_t bv[MDP_BV_SIZE];
207 };
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 struct mdp_csc {
210  int id;
211  uint32_t csc_mv[9];
212  uint32_t csc_pre_bv[3];
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  uint32_t csc_post_bv[3];
215  uint32_t csc_pre_lv[6];
216  uint32_t csc_post_lv[6];
217 };
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define MDP_BLIT_REQ_VERSION 2
220 struct mdp_blit_req {
221  struct mdp_img src;
222  struct mdp_img dst;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224  struct mdp_rect src_rect;
225  struct mdp_rect dst_rect;
226  uint32_t alpha;
227  uint32_t transp_mask;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  uint32_t flags;
230  int sharpening_strength;
231 };
232 struct mdp_blit_req_list {
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  uint32_t count;
235  struct mdp_blit_req req[];
236 };
237 #define MSMFB_DATA_VERSION 2
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 struct msmfb_data {
240  uint32_t offset;
241  int memory_id;
242  int id;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244  uint32_t flags;
245  uint32_t priv;
246  uint32_t iova;
247 };
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 #define MSMFB_NEW_REQUEST -1
250 struct msmfb_overlay_data {
251  uint32_t id;
252  struct msmfb_data data;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  uint32_t version_key;
255  struct msmfb_data plane1_data;
256  struct msmfb_data plane2_data;
257  struct msmfb_data dst_data;
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 };
260 struct msmfb_img {
261  uint32_t width;
262  uint32_t height;
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264  uint32_t format;
265 };
266 #define MSMFB_WRITEBACK_DEQUEUE_BLOCKING 0x1
267 struct msmfb_writeback_data {
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  struct msmfb_data buf_info;
270  struct msmfb_img img;
271 };
272 #define MDP_PP_OPS_READ 0x2
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 #define MDP_PP_OPS_WRITE 0x4
275 struct mdp_qseed_cfg {
276  uint32_t table_num;
277  uint32_t ops;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  uint32_t len;
280  uint32_t *data;
281 };
282 struct mdp_qseed_cfg_data {
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284  uint32_t block;
285  struct mdp_qseed_cfg qseed_data;
286 };
287 #define MDP_OVERLAY_PP_CSC_CFG 0x1
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 #define MDP_OVERLAY_PP_QSEED_CFG 0x2
290 #define MDP_CSC_FLAG_ENABLE 0x1
291 #define MDP_CSC_FLAG_YUV_IN 0x2
292 #define MDP_CSC_FLAG_YUV_OUT 0x4
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 struct mdp_csc_cfg {
295  uint32_t flags;
296  uint32_t csc_mv[9];
297  uint32_t csc_pre_bv[3];
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  uint32_t csc_post_bv[3];
300  uint32_t csc_pre_lv[6];
301  uint32_t csc_post_lv[6];
302 };
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 struct mdp_csc_cfg_data {
305  uint32_t block;
306  struct mdp_csc_cfg csc_data;
307 };
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 struct mdp_overlay_pp_params {
310  uint32_t config_ops;
311  struct mdp_csc_cfg csc_cfg;
312  struct mdp_qseed_cfg qseed_cfg[2];
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314 };
315 struct mdp_overlay {
316  struct msmfb_img src;
317  struct mdp_rect src_rect;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319  struct mdp_rect dst_rect;
320  uint32_t z_order;
321  uint32_t is_fg;
322  uint32_t alpha;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  uint32_t transp_mask;
325  uint32_t flags;
326  uint32_t id;
327  uint32_t user_data[8];
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329  struct mdp_overlay_pp_params overlay_pp_cfg;
330 };
331 struct msmfb_overlay_3d {
332  uint32_t is_3d;
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334  uint32_t width;
335  uint32_t height;
336 };
337 struct msmfb_overlay_blt {
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  uint32_t enable;
340  uint32_t offset;
341  uint32_t width;
342  uint32_t height;
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  uint32_t bpp;
345 };
346 struct mdp_histogram {
347  uint32_t frame_cnt;
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  uint32_t bin_cnt;
350  uint32_t *r;
351  uint32_t *g;
352  uint32_t *b;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354 };
355 enum {
356  MDP_BLOCK_RESERVED = 0,
357  MDP_BLOCK_OVERLAY_0,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  MDP_BLOCK_OVERLAY_1,
360  MDP_BLOCK_VG_1,
361  MDP_BLOCK_VG_2,
362  MDP_BLOCK_RGB_1,
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  MDP_BLOCK_RGB_2,
365  MDP_BLOCK_DMA_P,
366  MDP_BLOCK_DMA_S,
367  MDP_BLOCK_DMA_E,
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  MDP_BLOCK_OVERLAY_2,
370  MDP_BLOCK_MAX,
371 };
372 struct mdp_histogram_start_req {
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  uint32_t block;
375  uint8_t frame_cnt;
376  uint8_t bit_mask;
377  uint8_t num_bins;
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379 };
380 struct mdp_histogram_data {
381  uint32_t block;
382  uint8_t bin_cnt;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  uint32_t *c0;
385  uint32_t *c1;
386  uint32_t *c2;
387  uint32_t *extra_info;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389 };
390 struct mdp_pcc_coeff {
391  uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1;
392 };
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 struct mdp_pcc_cfg_data {
395  uint32_t block;
396  uint32_t ops;
397  struct mdp_pcc_coeff r, g, b;
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 };
400 enum {
401  mdp_lut_igc,
402  mdp_lut_pgc,
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  mdp_lut_hist,
405  mdp_lut_max,
406 };
407 struct mdp_igc_lut_data {
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  uint32_t block;
410  uint32_t len, ops;
411  uint32_t *c0_c1_data;
412  uint32_t *c2_data;
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414 };
415 struct mdp_ar_gc_lut_data {
416  uint32_t x_start;
417  uint32_t slope;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  uint32_t offset;
420 };
421 struct mdp_pgc_lut_data {
422  uint32_t block;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  uint32_t flags;
425  uint8_t num_r_stages;
426  uint8_t num_g_stages;
427  uint8_t num_b_stages;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  struct mdp_ar_gc_lut_data *r_data;
430  struct mdp_ar_gc_lut_data *g_data;
431  struct mdp_ar_gc_lut_data *b_data;
432 };
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434 struct mdp_hist_lut_data {
435  uint32_t block;
436  uint32_t ops;
437  uint32_t len;
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  uint32_t *data;
440 };
441 struct mdp_lut_cfg_data {
442  uint32_t lut_type;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  union {
445  struct mdp_igc_lut_data igc_lut_data;
446  struct mdp_pgc_lut_data pgc_lut_data;
447  struct mdp_hist_lut_data hist_lut_data;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  } data;
450 };
451 struct mdp_bl_scale_data {
452  uint32_t min_lvl;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  uint32_t scale;
455 };
456 enum {
457  mdp_op_pcc_cfg,
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  mdp_op_csc_cfg,
460  mdp_op_lut_cfg,
461  mdp_op_qseed_cfg,
462  mdp_bl_scale_cfg,
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  mdp_op_max,
465 };
466 struct msmfb_mdp_pp {
467  uint32_t op;
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  union {
470  struct mdp_pcc_cfg_data pcc_cfg_data;
471  struct mdp_csc_cfg_data csc_cfg_data;
472  struct mdp_lut_cfg_data lut_cfg_data;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  struct mdp_qseed_cfg_data qseed_cfg_data;
475  struct mdp_bl_scale_data bl_scale_data;
476  } data;
477 };
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479 #define MDP_MAX_FENCE_FD 10
480 #define MDP_BUF_SYNC_FLAG_WAIT 1
481 struct mdp_buf_sync {
482  uint32_t flags;
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  uint32_t acq_fen_fd_cnt;
485  int *acq_fen_fd;
486  int *rel_fen_fd;
487 };
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489 struct mdp_buf_fence {
490  uint32_t flags;
491  uint32_t acq_fen_fd_cnt;
492  int acq_fen_fd[MDP_MAX_FENCE_FD];
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494  int rel_fen_fd[MDP_MAX_FENCE_FD];
495 };
496 #define MDP_DISPLAY_COMMIT_OVERLAY 0x00000001
497 struct mdp_display_commit {
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  uint32_t flags;
500  uint32_t wait_for_finish;
501  struct fb_var_screeninfo var;
502  struct mdp_buf_fence buf_fence;
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 };
505 struct mdp_page_protection {
506  uint32_t page_protection;
507 };
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509 struct mdp_mixer_info {
510  int pndx;
511  int pnum;
512  int ptype;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514  int mixer_num;
515  int z_order;
516 };
517 #define MAX_PIPE_PER_MIXER 4
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519 struct msmfb_mixer_info_req {
520  int mixer_num;
521  int cnt;
522  struct mdp_mixer_info info[MAX_PIPE_PER_MIXER];
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 };
525 enum {
526  DISPLAY_SUBSYSTEM_ID,
527  ROTATOR_SUBSYSTEM_ID,
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529 };
530 #endif
531 
532