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