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
75enum {
76 NOTIFY_UPDATE_START,
77 NOTIFY_UPDATE_STOP,
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79};
80enum {
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 */
119enum {
120 PMEM_IMG,
121 FB_IMG,
122};
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124enum {
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)
181struct 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 */
189struct 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 */
204struct 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};
210struct 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
221struct 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 */
234struct 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
240struct 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
251struct 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};
261struct 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 */
269struct 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
276struct 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 */
284struct 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
295struct 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};
305struct 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};
310struct 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};
316struct 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};
332struct 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 */
339struct 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};
347struct 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};
356enum {
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};
377struct 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};
385struct 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};
395struct 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 */
399struct 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};
405enum {
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};
412struct 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};
420struct 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};
426struct 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 */
439struct 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};
446struct 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};
456struct 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};
461enum {
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};
471struct 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 */
484enum {
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};
491struct mdp_blend_cfg {
492 uint32_t is_premultiplied;
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494};
495struct 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
507struct 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};
515struct 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 */
524struct 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};
530struct mdp_page_protection {
531 uint32_t page_protection;
532};
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534struct 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 */
544struct 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};
550enum {
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