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