exynos_drm.h revision d7db594b8d1dab36b711bd887a9dd21675c87243
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>
22struct 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 */
29struct 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};
35struct 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};
41enum 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};
51struct drm_exynos_g2d_get_ver {
52  __u32 major;
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  __u32 minor;
55};
56struct drm_exynos_g2d_cmd {
57  __u32 offset;
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  __u32 data;
60};
61enum drm_exynos_g2d_buf_type {
62  G2D_BUF_USERPTR = 1 << 31,
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64};
65enum 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};
71struct 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};
76struct 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};
86struct drm_exynos_g2d_exec {
87  __u64 async;
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89};
90enum 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};
96struct drm_exynos_sz {
97  __u32 hsize;
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  __u32 vsize;
100};
101struct 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 */
109enum 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};
116enum 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 */
124enum 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};
131struct 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 */
154struct 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 */
164enum 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};
172struct 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};
181enum 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};
186struct 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};
197enum 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};
206struct 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 */
239struct 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 */
249struct 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