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_EXT_H_
20#define _MSM_MDP_EXT_H_
21#include <linux/msm_mdp.h>
22#define MDP_IOCTL_MAGIC 'S'
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#define MSMFB_ATOMIC_COMMIT _IOWR(MDP_IOCTL_MAGIC, 128, void *)
25#define MSMFB_ASYNC_POSITION_UPDATE _IOWR(MDP_IOCTL_MAGIC, 129, struct mdp_position_update)
26#define MDP_LAYER_FLIP_LR 0x1
27#define MDP_LAYER_FLIP_UD 0x2
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define MDP_LAYER_ENABLE_PIXEL_EXT 0x4
30#define MDP_LAYER_FORGROUND 0x8
31#define MDP_LAYER_SECURE_SESSION 0x10
32#define MDP_LAYER_SOLID_FILL 0x20
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define MDP_LAYER_DEINTERLACE 0x40
35#define MDP_LAYER_BWC 0x80
36#define MDP_LAYER_ASYNC 0x100
37#define MDP_LAYER_PP 0x200
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define MDP_LAYER_SECURE_DISPLAY_SESSION 0x400
40#define MDP_VALIDATE_LAYER 0x01
41#define MDP_COMMIT_WAIT_FOR_FINISH 0x02
42#define MDP_COMMIT_SYNC_FENCE_WAIT 0x04
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define MDP_COMMIT_VERSION_1_0 0x00010000
45struct mdp_layer_plane {
46  int fd;
47  uint32_t offset;
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  uint32_t stride;
50};
51struct mdp_layer_buffer {
52  uint32_t width;
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  uint32_t height;
55  uint32_t format;
56  struct mdp_layer_plane planes[MAX_PLANES];
57  uint32_t plane_count;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  struct mult_factor comp_ratio;
60  int fence;
61  uint32_t reserved;
62};
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64struct mdp_input_layer {
65  uint32_t flags;
66  uint32_t pipe_ndx;
67  uint8_t horz_deci;
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  uint8_t vert_deci;
70  uint8_t alpha;
71  uint16_t z_order;
72  uint32_t transp_mask;
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  uint32_t bg_color;
75  enum mdss_mdp_blend_op blend_op;
76  enum mdp_color_space color_space;
77  struct mdp_rect src_rect;
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  struct mdp_rect dst_rect;
80  struct mdp_scale_data __user * scale;
81  struct mdp_layer_buffer buffer;
82  void __user * pp_info;
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  int error_code;
85  uint32_t reserved[6];
86};
87struct mdp_output_layer {
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  uint32_t flags;
90  uint32_t writeback_ndx;
91  struct mdp_layer_buffer buffer;
92  uint32_t reserved[6];
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94};
95struct mdp_layer_commit_v1 {
96  uint32_t flags;
97  int release_fence;
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  struct mdp_rect left_roi;
100  struct mdp_rect right_roi;
101  struct mdp_input_layer __user * input_layers;
102  uint32_t input_layer_cnt;
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  struct mdp_output_layer __user * output_layer;
105  int retire_fence;
106  uint32_t reserved[6];
107};
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109struct mdp_layer_commit {
110  uint32_t version;
111  union {
112    struct mdp_layer_commit_v1 commit_v1;
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  };
115};
116struct mdp_point {
117  uint32_t x;
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119  uint32_t y;
120};
121struct mdp_async_layer {
122  uint32_t flags;
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  uint32_t pipe_ndx;
125  struct mdp_point src;
126  struct mdp_point dst;
127  int error_code;
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  uint32_t reserved[3];
130};
131struct mdp_position_update {
132  struct mdp_async_layer __user * input_layers;
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  uint32_t input_layer_cnt;
135};
136#endif
137
138