blob: ed9022bead8ce28d4df5260df612380ff33c9814 [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
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_
Christopher Ferris106b3a82016-08-24 12:15:38 -070021#include "drm.h"
22#ifdef __cplusplus
Christopher Ferris106b3a82016-08-24 12:15:38 -070023#endif
Ben Cheng655a7c02013-10-16 16:09:24 -070024struct drm_exynos_gem_create {
Christopher Ferris106b3a82016-08-24 12:15:38 -070025 __u64 size;
26 __u32 flags;
Christopher Ferris106b3a82016-08-24 12:15:38 -070027 __u32 handle;
Ben Cheng655a7c02013-10-16 16:09:24 -070028};
Christopher Ferris106b3a82016-08-24 12:15:38 -070029struct drm_exynos_gem_map {
30 __u32 handle;
Christopher Ferris106b3a82016-08-24 12:15:38 -070031 __u32 reserved;
32 __u64 offset;
33};
Ben Cheng655a7c02013-10-16 16:09:24 -070034struct drm_exynos_gem_info {
Christopher Ferris106b3a82016-08-24 12:15:38 -070035 __u32 handle;
36 __u32 flags;
37 __u64 size;
Christopher Ferris82d75042015-01-26 10:57:07 -080038};
Christopher Ferris106b3a82016-08-24 12:15:38 -070039struct drm_exynos_vidi_connection {
40 __u32 connection;
41 __u32 extensions;
42 __u64 edid;
Ben Cheng655a7c02013-10-16 16:09:24 -070043};
44enum e_drm_exynos_gem_mem_type {
Tao Baod7db5942015-01-28 10:07:51 -080045 EXYNOS_BO_CONTIG = 0 << 0,
Tao Baod7db5942015-01-28 10:07:51 -080046 EXYNOS_BO_NONCONTIG = 1 << 0,
47 EXYNOS_BO_NONCACHABLE = 0 << 1,
48 EXYNOS_BO_CACHABLE = 1 << 1,
49 EXYNOS_BO_WC = 1 << 2,
Tao Baod7db5942015-01-28 10:07:51 -080050 EXYNOS_BO_MASK = EXYNOS_BO_NONCONTIG | EXYNOS_BO_CACHABLE | EXYNOS_BO_WC
Ben Cheng655a7c02013-10-16 16:09:24 -070051};
52struct drm_exynos_g2d_get_ver {
Tao Baod7db5942015-01-28 10:07:51 -080053 __u32 major;
Tao Baod7db5942015-01-28 10:07:51 -080054 __u32 minor;
Ben Cheng655a7c02013-10-16 16:09:24 -070055};
56struct drm_exynos_g2d_cmd {
Tao Baod7db5942015-01-28 10:07:51 -080057 __u32 offset;
Tao Baod7db5942015-01-28 10:07:51 -080058 __u32 data;
Ben Cheng655a7c02013-10-16 16:09:24 -070059};
60enum drm_exynos_g2d_buf_type {
Tao Baod7db5942015-01-28 10:07:51 -080061 G2D_BUF_USERPTR = 1 << 31,
Ben Cheng655a7c02013-10-16 16:09:24 -070062};
63enum drm_exynos_g2d_event_type {
Tao Baod7db5942015-01-28 10:07:51 -080064 G2D_EVENT_NOT,
65 G2D_EVENT_NONSTOP,
Tao Baod7db5942015-01-28 10:07:51 -080066 G2D_EVENT_STOP,
Ben Cheng655a7c02013-10-16 16:09:24 -070067};
68struct drm_exynos_g2d_userptr {
Tao Baod7db5942015-01-28 10:07:51 -080069 unsigned long userptr;
Tao Baod7db5942015-01-28 10:07:51 -080070 unsigned long size;
Ben Cheng655a7c02013-10-16 16:09:24 -070071};
72struct drm_exynos_g2d_set_cmdlist {
Tao Baod7db5942015-01-28 10:07:51 -080073 __u64 cmd;
Tao Baod7db5942015-01-28 10:07:51 -080074 __u64 cmd_buf;
75 __u32 cmd_nr;
76 __u32 cmd_buf_nr;
77 __u64 event_type;
Tao Baod7db5942015-01-28 10:07:51 -080078 __u64 user_data;
Ben Cheng655a7c02013-10-16 16:09:24 -070079};
80struct drm_exynos_g2d_exec {
Tao Baod7db5942015-01-28 10:07:51 -080081 __u64 async;
Ben Cheng655a7c02013-10-16 16:09:24 -070082};
Christopher Ferris82d75042015-01-26 10:57:07 -080083#define DRM_EXYNOS_GEM_CREATE 0x00
Christopher Ferris106b3a82016-08-24 12:15:38 -070084#define DRM_EXYNOS_GEM_MAP 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070085#define DRM_EXYNOS_GEM_GET 0x04
86#define DRM_EXYNOS_VIDI_CONNECTION 0x07
Ben Cheng655a7c02013-10-16 16:09:24 -070087#define DRM_EXYNOS_G2D_GET_VER 0x20
88#define DRM_EXYNOS_G2D_SET_CMDLIST 0x21
89#define DRM_EXYNOS_G2D_EXEC 0x22
Tao Baod7db5942015-01-28 10:07:51 -080090#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
Christopher Ferris106b3a82016-08-24 12:15:38 -070091#define DRM_IOCTL_EXYNOS_GEM_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_MAP, struct drm_exynos_gem_map)
Tao Baod7db5942015-01-28 10:07:51 -080092#define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info)
93#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
Christopher Ferris106b3a82016-08-24 12:15:38 -070094#define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver)
Tao Baod7db5942015-01-28 10:07:51 -080095#define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist)
96#define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec)
Christopher Ferris82d75042015-01-26 10:57:07 -080097#define DRM_EXYNOS_G2D_EVENT 0x80000000
Ben Cheng655a7c02013-10-16 16:09:24 -070098struct drm_exynos_g2d_event {
Tao Baod7db5942015-01-28 10:07:51 -080099 struct drm_event base;
100 __u64 user_data;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700101 __u32 tv_sec;
Tao Baod7db5942015-01-28 10:07:51 -0800102 __u32 tv_usec;
103 __u32 cmdlist_no;
104 __u32 reserved;
Christopher Ferris106b3a82016-08-24 12:15:38 -0700105};
Christopher Ferris106b3a82016-08-24 12:15:38 -0700106#ifdef __cplusplus
107#endif
Ben Cheng655a7c02013-10-16 16:09:24 -0700108#endif