• 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 _UAPI_EXYNOS_DRM_H_
20 #define _UAPI_EXYNOS_DRM_H_
21 #include <drm/drm.h>
22 struct drm_exynos_gem_create {
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24   uint64_t size;
25   unsigned int flags;
26   unsigned int handle;
27 };
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 struct drm_exynos_gem_info {
30   unsigned int handle;
31   unsigned int flags;
32   uint64_t size;
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 };
35 struct drm_exynos_vidi_connection {
36   unsigned int connection;
37   unsigned int extensions;
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39   uint64_t edid;
40 };
41 enum e_drm_exynos_gem_mem_type {
42   EXYNOS_BO_CONTIG = 0 << 0,
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44   EXYNOS_BO_NONCONTIG = 1 << 0,
45   EXYNOS_BO_NONCACHABLE = 0 << 1,
46   EXYNOS_BO_CACHABLE = 1 << 1,
47   EXYNOS_BO_WC = 1 << 2,
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49   EXYNOS_BO_MASK = EXYNOS_BO_NONCONTIG | EXYNOS_BO_CACHABLE | EXYNOS_BO_WC
50 };
51 struct drm_exynos_g2d_get_ver {
52   __u32 major;
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54   __u32 minor;
55 };
56 struct drm_exynos_g2d_cmd {
57   __u32 offset;
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59   __u32 data;
60 };
61 enum drm_exynos_g2d_buf_type {
62   G2D_BUF_USERPTR = 1 << 31,
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64 };
65 enum drm_exynos_g2d_event_type {
66   G2D_EVENT_NOT,
67   G2D_EVENT_NONSTOP,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69   G2D_EVENT_STOP,
70 };
71 struct drm_exynos_g2d_userptr {
72   unsigned long userptr;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74   unsigned long size;
75 };
76 struct drm_exynos_g2d_set_cmdlist {
77   __u64 cmd;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   __u64 cmd_buf;
80   __u32 cmd_nr;
81   __u32 cmd_buf_nr;
82   __u64 event_type;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   __u64 user_data;
85 };
86 struct drm_exynos_g2d_exec {
87   __u64 async;
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 };
90 enum drm_exynos_ops_id {
91   EXYNOS_DRM_OPS_SRC,
92   EXYNOS_DRM_OPS_DST,
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   EXYNOS_DRM_OPS_MAX,
95 };
96 struct drm_exynos_sz {
97   __u32 hsize;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   __u32 vsize;
100 };
101 struct drm_exynos_pos {
102   __u32 x;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   __u32 y;
105   __u32 w;
106   __u32 h;
107 };
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 enum drm_exynos_flip {
110   EXYNOS_DRM_FLIP_NONE = (0 << 0),
111   EXYNOS_DRM_FLIP_VERTICAL = (1 << 0),
112   EXYNOS_DRM_FLIP_HORIZONTAL = (1 << 1),
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   EXYNOS_DRM_FLIP_BOTH = EXYNOS_DRM_FLIP_VERTICAL | EXYNOS_DRM_FLIP_HORIZONTAL,
115 };
116 enum drm_exynos_degree {
117   EXYNOS_DRM_DEGREE_0,
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119   EXYNOS_DRM_DEGREE_90,
120   EXYNOS_DRM_DEGREE_180,
121   EXYNOS_DRM_DEGREE_270,
122 };
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 enum drm_exynos_planer {
125   EXYNOS_DRM_PLANAR_Y,
126   EXYNOS_DRM_PLANAR_CB,
127   EXYNOS_DRM_PLANAR_CR,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   EXYNOS_DRM_PLANAR_MAX,
130 };
131 struct drm_exynos_ipp_prop_list {
132   __u32 version;
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134   __u32 ipp_id;
135   __u32 count;
136   __u32 writeback;
137   __u32 flip;
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139   __u32 degree;
140   __u32 csc;
141   __u32 crop;
142   __u32 scale;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   __u32 refresh_min;
145   __u32 refresh_max;
146   __u32 reserved;
147   struct drm_exynos_sz crop_min;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   struct drm_exynos_sz crop_max;
150   struct drm_exynos_sz scale_min;
151   struct drm_exynos_sz scale_max;
152 };
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154 struct drm_exynos_ipp_config {
155   enum drm_exynos_ops_id ops_id;
156   enum drm_exynos_flip flip;
157   enum drm_exynos_degree degree;
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   __u32 fmt;
160   struct drm_exynos_sz sz;
161   struct drm_exynos_pos pos;
162 };
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 enum drm_exynos_ipp_cmd {
165   IPP_CMD_NONE,
166   IPP_CMD_M2M,
167   IPP_CMD_WB,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   IPP_CMD_OUTPUT,
170   IPP_CMD_MAX,
171 };
172 struct drm_exynos_ipp_property {
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174   struct drm_exynos_ipp_config config[EXYNOS_DRM_OPS_MAX];
175   enum drm_exynos_ipp_cmd cmd;
176   __u32 ipp_id;
177   __u32 prop_id;
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179   __u32 refresh_rate;
180 };
181 enum drm_exynos_ipp_buf_type {
182   IPP_BUF_ENQUEUE,
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   IPP_BUF_DEQUEUE,
185 };
186 struct drm_exynos_ipp_queue_buf {
187   enum drm_exynos_ops_id ops_id;
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189   enum drm_exynos_ipp_buf_type buf_type;
190   __u32 prop_id;
191   __u32 buf_id;
192   __u32 handle[EXYNOS_DRM_PLANAR_MAX];
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   __u32 reserved;
195   __u64 user_data;
196 };
197 enum drm_exynos_ipp_ctrl {
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   IPP_CTRL_PLAY,
200   IPP_CTRL_STOP,
201   IPP_CTRL_PAUSE,
202   IPP_CTRL_RESUME,
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204   IPP_CTRL_MAX,
205 };
206 struct drm_exynos_ipp_cmd_ctrl {
207   __u32 prop_id;
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   enum drm_exynos_ipp_ctrl ctrl;
210 };
211 #define DRM_EXYNOS_GEM_CREATE 0x00
212 #define DRM_EXYNOS_GEM_GET 0x04
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214 #define DRM_EXYNOS_VIDI_CONNECTION 0x07
215 #define DRM_EXYNOS_G2D_GET_VER 0x20
216 #define DRM_EXYNOS_G2D_SET_CMDLIST 0x21
217 #define DRM_EXYNOS_G2D_EXEC 0x22
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219 #define DRM_EXYNOS_IPP_GET_PROPERTY 0x30
220 #define DRM_EXYNOS_IPP_SET_PROPERTY 0x31
221 #define DRM_EXYNOS_IPP_QUEUE_BUF 0x32
222 #define DRM_EXYNOS_IPP_CMD_CTRL 0x33
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
225 #define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info)
226 #define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
227 #define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver)
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229 #define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist)
230 #define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec)
231 #define DRM_IOCTL_EXYNOS_IPP_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_GET_PROPERTY, struct drm_exynos_ipp_prop_list)
232 #define DRM_IOCTL_EXYNOS_IPP_SET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_SET_PROPERTY, struct drm_exynos_ipp_property)
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234 #define DRM_IOCTL_EXYNOS_IPP_QUEUE_BUF DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_QUEUE_BUF, struct drm_exynos_ipp_queue_buf)
235 #define DRM_IOCTL_EXYNOS_IPP_CMD_CTRL DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_IPP_CMD_CTRL, struct drm_exynos_ipp_cmd_ctrl)
236 #define DRM_EXYNOS_G2D_EVENT 0x80000000
237 #define DRM_EXYNOS_IPP_EVENT 0x80000001
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239 struct drm_exynos_g2d_event {
240   struct drm_event base;
241   __u64 user_data;
242   __u32 tv_sec;
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244   __u32 tv_usec;
245   __u32 cmdlist_no;
246   __u32 reserved;
247 };
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249 struct drm_exynos_ipp_event {
250   struct drm_event base;
251   __u64 user_data;
252   __u32 tv_sec;
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254   __u32 tv_usec;
255   __u32 prop_id;
256   __u32 reserved;
257   __u32 buf_id[EXYNOS_DRM_OPS_MAX];
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259 };
260 #endif
261