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 MSMFB_METADATA_GET _IOW(MSMFB_IOCTL_MAGIC, 166, struct msmfb_metadata)
71 #define FB_TYPE_3D_PANEL 0x10101010
72 #define MDP_IMGTYPE2_START 0x10000
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define MSMFB_DRIVER_VERSION 0xF9E8D701
75 enum {
76  NOTIFY_UPDATE_START,
77  NOTIFY_UPDATE_STOP,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79 };
80 enum {
81  MDP_RGB_565,
82  MDP_XRGB_8888,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  MDP_Y_CBCR_H2V2,
85  MDP_Y_CBCR_H2V2_ADRENO,
86  MDP_ARGB_8888,
87  MDP_RGB_888,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  MDP_Y_CRCB_H2V2,
90  MDP_YCRYCB_H2V1,
91  MDP_Y_CRCB_H2V1,
92  MDP_Y_CBCR_H2V1,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  MDP_Y_CRCB_H1V2,
95  MDP_Y_CBCR_H1V2,
96  MDP_RGBA_8888,
97  MDP_BGRA_8888,
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  MDP_RGBX_8888,
100  MDP_Y_CRCB_H2V2_TILE,
101  MDP_Y_CBCR_H2V2_TILE,
102  MDP_Y_CR_CB_H2V2,
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  MDP_Y_CR_CB_GH2V2,
105  MDP_Y_CB_CR_H2V2,
106  MDP_Y_CRCB_H1V1,
107  MDP_Y_CBCR_H1V1,
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  MDP_YCRCB_H1V1,
110  MDP_YCBCR_H1V1,
111  MDP_BGR_565,
112  MDP_IMGTYPE_LIMIT,
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  MDP_RGB_BORDERFILL,
115  MDP_FB_FORMAT = MDP_IMGTYPE2_START,
116  MDP_IMGTYPE_LIMIT2
117 };
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 enum {
120  PMEM_IMG,
121  FB_IMG,
122 };
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 enum {
125  HSIC_HUE = 0,
126  HSIC_SAT,
127  HSIC_INT,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  HSIC_CON,
130  NUM_HSIC_PARAM,
131 };
132 #define MDSS_MDP_ROT_ONLY 0x80
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 #define MDSS_MDP_RIGHT_MIXER 0x100
135 #define MDP_ROT_NOP 0
136 #define MDP_FLIP_LR 0x1
137 #define MDP_FLIP_UD 0x2
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define MDP_ROT_90 0x4
140 #define MDP_ROT_180 (MDP_FLIP_UD|MDP_FLIP_LR)
141 #define MDP_ROT_270 (MDP_ROT_90|MDP_FLIP_UD|MDP_FLIP_LR)
142 #define MDP_DITHER 0x8
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144 #define MDP_BLUR 0x10
145 #define MDP_BLEND_FG_PREMULT 0x20000
146 #define MDP_DEINTERLACE 0x80000000
147 #define MDP_SHARPENING 0x40000000
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 #define MDP_NO_DMA_BARRIER_START 0x20000000
150 #define MDP_NO_DMA_BARRIER_END 0x10000000
151 #define MDP_NO_BLIT 0x08000000
152 #define MDP_BLIT_WITH_DMA_BARRIERS 0x000
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 #define MDP_BLIT_WITH_NO_DMA_BARRIERS   (MDP_NO_DMA_BARRIER_START | MDP_NO_DMA_BARRIER_END)
155 #define MDP_BLIT_SRC_GEM 0x04000000
156 #define MDP_BLIT_DST_GEM 0x02000000
157 #define MDP_BLIT_NON_CACHED 0x01000000
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159 #define MDP_OV_PIPE_SHARE 0x00800000
160 #define MDP_DEINTERLACE_ODD 0x00400000
161 #define MDP_OV_PLAY_NOWAIT 0x00200000
162 #define MDP_SOURCE_ROTATED_90 0x00100000
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 #define MDP_OVERLAY_PP_CFG_EN 0x00080000
165 #define MDP_BACKEND_COMPOSITION 0x00040000
166 #define MDP_BORDERFILL_SUPPORTED 0x00010000
167 #define MDP_SECURE_OVERLAY_SESSION 0x00008000
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169 #define MDP_MEMORY_ID_TYPE_FB 0x00001000
170 #define MDP_TRANSP_NOP 0xffffffff
171 #define MDP_ALPHA_NOP 0xff
172 #define MDP_FB_PAGE_PROTECTION_NONCACHED (0)
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 #define MDP_FB_PAGE_PROTECTION_WRITECOMBINE (1)
175 #define MDP_FB_PAGE_PROTECTION_WRITETHROUGHCACHE (2)
176 #define MDP_FB_PAGE_PROTECTION_WRITEBACKCACHE (3)
177 #define MDP_FB_PAGE_PROTECTION_WRITEBACKWACACHE (4)
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 #define MDP_FB_PAGE_PROTECTION_INVALID (5)
180 #define MDP_NUM_FB_PAGE_PROTECTION_VALUES (5)
181 struct mdp_rect {
182  uint32_t x;
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  uint32_t y;
185  uint32_t w;
186  uint32_t h;
187 };
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 struct mdp_img {
190  uint32_t width;
191  uint32_t height;
192  uint32_t format;
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  uint32_t offset;
195  int memory_id;
196  uint32_t priv;
197 };
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199 #define MDP_CCS_RGB2YUV 0
200 #define MDP_CCS_YUV2RGB 1
201 #define MDP_CCS_SIZE 9
202 #define MDP_BV_SIZE 3
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 struct mdp_ccs {
205  int direction;
206  uint16_t ccs[MDP_CCS_SIZE];
207  uint16_t bv[MDP_BV_SIZE];
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209 };
210 struct mdp_csc {
211  int id;
212  uint32_t csc_mv[9];
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  uint32_t csc_pre_bv[3];
215  uint32_t csc_post_bv[3];
216  uint32_t csc_pre_lv[6];
217  uint32_t csc_post_lv[6];
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 };
220 #define MDP_BLIT_REQ_VERSION 2
221 struct mdp_blit_req {
222  struct mdp_img src;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224  struct mdp_img dst;
225  struct mdp_rect src_rect;
226  struct mdp_rect dst_rect;
227  uint32_t alpha;
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  uint32_t transp_mask;
230  uint32_t flags;
231  int sharpening_strength;
232 };
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 struct mdp_blit_req_list {
235  uint32_t count;
236  struct mdp_blit_req req[];
237 };
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 #define MSMFB_DATA_VERSION 2
240 struct msmfb_data {
241  uint32_t offset;
242  int memory_id;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244  int id;
245  uint32_t flags;
246  uint32_t priv;
247  uint32_t iova;
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 };
250 #define MSMFB_NEW_REQUEST -1
251 struct msmfb_overlay_data {
252  uint32_t id;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254  struct msmfb_data data;
255  uint32_t version_key;
256  struct msmfb_data plane1_data;
257  struct msmfb_data plane2_data;
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259  struct msmfb_data dst_data;
260 };
261 struct msmfb_img {
262  uint32_t width;
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264  uint32_t height;
265  uint32_t format;
266 };
267 #define MSMFB_WRITEBACK_DEQUEUE_BLOCKING 0x1
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269 struct msmfb_writeback_data {
270  struct msmfb_data buf_info;
271  struct msmfb_img img;
272 };
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274 #define MDP_PP_OPS_READ 0x2
275 #define MDP_PP_OPS_WRITE 0x4
276 struct mdp_qseed_cfg {
277  uint32_t table_num;
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  uint32_t ops;
280  uint32_t len;
281  uint32_t *data;
282 };
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 struct mdp_qseed_cfg_data {
285  uint32_t block;
286  struct mdp_qseed_cfg qseed_data;
287 };
288 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289 #define MDP_OVERLAY_PP_CSC_CFG 0x1
290 #define MDP_OVERLAY_PP_QSEED_CFG 0x2
291 #define MDP_CSC_FLAG_ENABLE 0x1
292 #define MDP_CSC_FLAG_YUV_IN 0x2
293 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294 #define MDP_CSC_FLAG_YUV_OUT 0x4
295 struct mdp_csc_cfg {
296  uint32_t flags;
297  uint32_t csc_mv[9];
298 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299  uint32_t csc_pre_bv[3];
300  uint32_t csc_post_bv[3];
301  uint32_t csc_pre_lv[6];
302  uint32_t csc_post_lv[6];
303 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304 };
305 struct mdp_csc_cfg_data {
306  uint32_t block;
307  struct mdp_csc_cfg csc_data;
308 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309 };
310 struct mdp_overlay_pp_params {
311  uint32_t config_ops;
312  struct mdp_csc_cfg csc_cfg;
313 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314  struct mdp_qseed_cfg qseed_cfg[2];
315 };
316 struct mdp_overlay {
317  struct msmfb_img src;
318 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319  struct mdp_rect src_rect;
320  struct mdp_rect dst_rect;
321  uint32_t z_order;
322  uint32_t is_fg;
323 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  uint32_t alpha;
325  uint32_t transp_mask;
326  uint32_t flags;
327  uint32_t id;
328 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329  uint32_t user_data[8];
330  struct mdp_overlay_pp_params overlay_pp_cfg;
331 };
332 struct msmfb_overlay_3d {
333 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334  uint32_t is_3d;
335  uint32_t width;
336  uint32_t height;
337 };
338 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339 struct msmfb_overlay_blt {
340  uint32_t enable;
341  uint32_t offset;
342  uint32_t width;
343 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  uint32_t height;
345  uint32_t bpp;
346 };
347 struct mdp_histogram {
348 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  uint32_t frame_cnt;
350  uint32_t bin_cnt;
351  uint32_t *r;
352  uint32_t *g;
353 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  uint32_t *b;
355 };
356 enum {
357  MDP_BLOCK_RESERVED = 0,
358 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  MDP_BLOCK_OVERLAY_0,
360  MDP_BLOCK_OVERLAY_1,
361  MDP_BLOCK_VG_1,
362  MDP_BLOCK_VG_2,
363 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  MDP_BLOCK_RGB_1,
365  MDP_BLOCK_RGB_2,
366  MDP_BLOCK_DMA_P,
367  MDP_BLOCK_DMA_S,
368 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  MDP_BLOCK_DMA_E,
370  MDP_BLOCK_OVERLAY_2,
371  MDP_LOGICAL_BLOCK_DISP_0 = 0x1000,
372  MDP_LOGICAL_BLOCK_DISP_1,
373 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  MDP_LOGICAL_BLOCK_DISP_2,
375  MDP_BLOCK_MAX,
376 };
377 struct mdp_histogram_start_req {
378 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  uint32_t block;
380  uint8_t frame_cnt;
381  uint8_t bit_mask;
382  uint8_t num_bins;
383 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384 };
385 struct mdp_histogram_data {
386  uint32_t block;
387  uint8_t bin_cnt;
388 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389  uint32_t *c0;
390  uint32_t *c1;
391  uint32_t *c2;
392  uint32_t *extra_info;
393 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394 };
395 struct mdp_pcc_coeff {
396  uint32_t c, r, g, b, rr, gg, bb, rg, gb, rb, rgb_0, rgb_1;
397 };
398 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399 struct mdp_pcc_cfg_data {
400  uint32_t block;
401  uint32_t ops;
402  struct mdp_pcc_coeff r, g, b;
403 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404 };
405 enum {
406  mdp_lut_igc,
407  mdp_lut_pgc,
408 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  mdp_lut_hist,
410  mdp_lut_max,
411 };
412 struct mdp_igc_lut_data {
413 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  uint32_t block;
415  uint32_t len, ops;
416  uint32_t *c0_c1_data;
417  uint32_t *c2_data;
418 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419 };
420 struct mdp_ar_gc_lut_data {
421  uint32_t x_start;
422  uint32_t slope;
423 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424  uint32_t offset;
425 };
426 struct mdp_pgc_lut_data {
427  uint32_t block;
428 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  uint32_t flags;
430  uint8_t num_r_stages;
431  uint8_t num_g_stages;
432  uint8_t num_b_stages;
433 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  struct mdp_ar_gc_lut_data *r_data;
435  struct mdp_ar_gc_lut_data *g_data;
436  struct mdp_ar_gc_lut_data *b_data;
437 };
438 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439 struct mdp_hist_lut_data {
440  uint32_t block;
441  uint32_t ops;
442  uint32_t len;
443 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  uint32_t *data;
445 };
446 struct mdp_lut_cfg_data {
447  uint32_t lut_type;
448 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  union {
450  struct mdp_igc_lut_data igc_lut_data;
451  struct mdp_pgc_lut_data pgc_lut_data;
452  struct mdp_hist_lut_data hist_lut_data;
453 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454  } data;
455 };
456 struct mdp_bl_scale_data {
457  uint32_t min_lvl;
458 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  uint32_t scale;
460 };
461 enum {
462  mdp_op_pcc_cfg,
463 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  mdp_op_csc_cfg,
465  mdp_op_lut_cfg,
466  mdp_op_qseed_cfg,
467  mdp_bl_scale_cfg,
468 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469  mdp_op_max,
470 };
471 struct msmfb_mdp_pp {
472  uint32_t op;
473 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474  union {
475  struct mdp_pcc_cfg_data pcc_cfg_data;
476  struct mdp_csc_cfg_data csc_cfg_data;
477  struct mdp_lut_cfg_data lut_cfg_data;
478 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  struct mdp_qseed_cfg_data qseed_cfg_data;
480  struct mdp_bl_scale_data bl_scale_data;
481  } data;
482 };
483 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484 enum {
485  metadata_op_none,
486  metadata_op_base_blend,
487  metadata_op_frame_rate,
488 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  metadata_op_max
490 };
491 struct mdp_blend_cfg {
492  uint32_t is_premultiplied;
493 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494 };
495 struct msmfb_metadata {
496  uint32_t op;
497  uint32_t flags;
498 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  union {
500  struct mdp_blend_cfg blend_cfg;
501  uint32_t panel_frame_rate;
502  } data;
503 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504 };
505 #define MDP_MAX_FENCE_FD 10
506 #define MDP_BUF_SYNC_FLAG_WAIT 1
507 struct mdp_buf_sync {
508 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  uint32_t flags;
510  uint32_t acq_fen_fd_cnt;
511  int *acq_fen_fd;
512  int *rel_fen_fd;
513 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514 };
515 struct mdp_buf_fence {
516  uint32_t flags;
517  uint32_t acq_fen_fd_cnt;
518 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519  int acq_fen_fd[MDP_MAX_FENCE_FD];
520  int rel_fen_fd[MDP_MAX_FENCE_FD];
521 };
522 #define MDP_DISPLAY_COMMIT_OVERLAY 0x00000001
523 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524 struct mdp_display_commit {
525  uint32_t flags;
526  uint32_t wait_for_finish;
527  struct fb_var_screeninfo var;
528 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529 };
530 struct mdp_page_protection {
531  uint32_t page_protection;
532 };
533 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534 struct mdp_mixer_info {
535  int pndx;
536  int pnum;
537  int ptype;
538 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539  int mixer_num;
540  int z_order;
541 };
542 #define MAX_PIPE_PER_MIXER 4
543 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544 struct msmfb_mixer_info_req {
545  int mixer_num;
546  int cnt;
547  struct mdp_mixer_info info[MAX_PIPE_PER_MIXER];
548 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549 };
550 enum {
551  DISPLAY_SUBSYSTEM_ID,
552  ROTATOR_SUBSYSTEM_ID,
553 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554 };
555 #endif
556 
557