XenevaOS
Loading...
Searching...
No Matches
exynos_drm.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2/* exynos_drm.h
3 *
4 * Copyright (c) 2011 Samsung Electronics Co., Ltd.
5 * Authors:
6 * Inki Dae <inki.dae@samsung.com>
7 * Joonyoung Shim <jy0922.shim@samsung.com>
8 * Seung-Woo Kim <sw0312.kim@samsung.com>
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#ifndef _UAPI_EXYNOS_DRM_H_
17#define _UAPI_EXYNOS_DRM_H_
18
19#include "drm.h"
20
21#if defined(__cplusplus)
22extern "C" {
23#endif
24
39
52
67
81
82/* memory type definitions. */
84 /* Physically Continuous memory and used as default. */
86 /* Physically Non-Continuous memory. */
88 /* non-cachable mapping and used as default. */
90 /* cachable mapping. */
92 /* write-combine mapping. */
93 EXYNOS_BO_WC = 1 << 2,
96};
97
102
107
111
117
119 unsigned long userptr;
120 unsigned long size;
121};
122
133
137
138/* Exynos DRM IPP v2 API */
139
152
157
163
170
188
190 /* size (horizontal/vertial) limits, in pixels (min, max, alignment) */
192 /* scale ratio (horizonta/vertial), 16.16 fixed point (min, max) */
194
195 /* image buffer area */
197 /* src/dst rectangle area */
199 /* src/dst rectangle area when rotation enabled */
201
204};
205
212
227
247
249 /* buffer described by struct drm_exynos_ipp_task_buffer */
251 /* rectangle described by struct drm_exynos_ipp_task_rect */
253 /* transformation described by struct drm_exynos_ipp_task_transform */
255 /* alpha configuration described by struct drm_exynos_ipp_task_alpha */
257
258 /* source image data (for buffer and rectangle chunks) */
260 /* destination image data (for buffer and rectangle chunks) */
262};
263
279
296
307
318
320 /* generate DRM event after processing */
322 /* dry run, only check task parameters */
324 /* non-blocking processing */
326};
327
328#define DRM_EXYNOS_IPP_FLAGS (DRM_EXYNOS_IPP_FLAG_EVENT |\
329 DRM_EXYNOS_IPP_FLAG_TEST_ONLY | DRM_EXYNOS_IPP_FLAG_NONBLOCK)
330
350
351#define DRM_EXYNOS_GEM_CREATE 0x00
352#define DRM_EXYNOS_GEM_MAP 0x01
353/* Reserved 0x03 ~ 0x05 for exynos specific gem ioctl */
354#define DRM_EXYNOS_GEM_GET 0x04
355#define DRM_EXYNOS_VIDI_CONNECTION 0x07
356
357/* G2D */
358#define DRM_EXYNOS_G2D_GET_VER 0x20
359#define DRM_EXYNOS_G2D_SET_CMDLIST 0x21
360#define DRM_EXYNOS_G2D_EXEC 0x22
361
362/* Reserved 0x30 ~ 0x33 for obsolete Exynos IPP ioctls */
363/* IPP - Image Post Processing */
364#define DRM_EXYNOS_IPP_GET_RESOURCES 0x40
365#define DRM_EXYNOS_IPP_GET_CAPS 0x41
366#define DRM_EXYNOS_IPP_GET_LIMITS 0x42
367#define DRM_EXYNOS_IPP_COMMIT 0x43
368
369#define DRM_IOCTL_EXYNOS_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + \
370 DRM_EXYNOS_GEM_CREATE, struct drm_exynos_gem_create)
371#define DRM_IOCTL_EXYNOS_GEM_MAP DRM_IOWR(DRM_COMMAND_BASE + \
372 DRM_EXYNOS_GEM_MAP, struct drm_exynos_gem_map)
373#define DRM_IOCTL_EXYNOS_GEM_GET DRM_IOWR(DRM_COMMAND_BASE + \
374 DRM_EXYNOS_GEM_GET, struct drm_exynos_gem_info)
375
376#define DRM_IOCTL_EXYNOS_VIDI_CONNECTION DRM_IOWR(DRM_COMMAND_BASE + \
377 DRM_EXYNOS_VIDI_CONNECTION, struct drm_exynos_vidi_connection)
378
379#define DRM_IOCTL_EXYNOS_G2D_GET_VER DRM_IOWR(DRM_COMMAND_BASE + \
380 DRM_EXYNOS_G2D_GET_VER, struct drm_exynos_g2d_get_ver)
381#define DRM_IOCTL_EXYNOS_G2D_SET_CMDLIST DRM_IOWR(DRM_COMMAND_BASE + \
382 DRM_EXYNOS_G2D_SET_CMDLIST, struct drm_exynos_g2d_set_cmdlist)
383#define DRM_IOCTL_EXYNOS_G2D_EXEC DRM_IOWR(DRM_COMMAND_BASE + \
384 DRM_EXYNOS_G2D_EXEC, struct drm_exynos_g2d_exec)
385
386#define DRM_IOCTL_EXYNOS_IPP_GET_RESOURCES DRM_IOWR(DRM_COMMAND_BASE + \
387 DRM_EXYNOS_IPP_GET_RESOURCES, \
388 struct drm_exynos_ioctl_ipp_get_res)
389#define DRM_IOCTL_EXYNOS_IPP_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + \
390 DRM_EXYNOS_IPP_GET_CAPS, struct drm_exynos_ioctl_ipp_get_caps)
391#define DRM_IOCTL_EXYNOS_IPP_GET_LIMITS DRM_IOWR(DRM_COMMAND_BASE + \
392 DRM_EXYNOS_IPP_GET_LIMITS, \
393 struct drm_exynos_ioctl_ipp_get_limits)
394#define DRM_IOCTL_EXYNOS_IPP_COMMIT DRM_IOWR(DRM_COMMAND_BASE + \
395 DRM_EXYNOS_IPP_COMMIT, struct drm_exynos_ioctl_ipp_commit)
396
397/* Exynos specific events */
398#define DRM_EXYNOS_G2D_EVENT 0x80000000
399#define DRM_EXYNOS_IPP_EVENT 0x80000002
400
409
419
420#if defined(__cplusplus)
421}
422#endif
423
424#endif /* _UAPI_EXYNOS_DRM_H_ */
uint32_t __u32
Definition drm.h:42
uint64_t __u64
Definition drm.h:44
e_drm_exynos_gem_mem_type
Definition exynos_drm.h:83
@ EXYNOS_BO_CONTIG
Definition exynos_drm.h:85
@ EXYNOS_BO_WC
Definition exynos_drm.h:93
@ EXYNOS_BO_NONCONTIG
Definition exynos_drm.h:87
@ EXYNOS_BO_MASK
Definition exynos_drm.h:94
@ EXYNOS_BO_CACHABLE
Definition exynos_drm.h:91
@ EXYNOS_BO_NONCACHABLE
Definition exynos_drm.h:89
drm_exynos_g2d_buf_type
Definition exynos_drm.h:108
@ G2D_BUF_USERPTR
Definition exynos_drm.h:109
drm_exynos_ipp_limit_type
Definition exynos_drm.h:189
@ DRM_EXYNOS_IPP_LIMIT_SIZE_MASK
Definition exynos_drm.h:203
@ DRM_EXYNOS_IPP_LIMIT_SIZE_BUFFER
Definition exynos_drm.h:196
@ DRM_EXYNOS_IPP_LIMIT_TYPE_SIZE
Definition exynos_drm.h:191
@ DRM_EXYNOS_IPP_LIMIT_SIZE_ROTATED
Definition exynos_drm.h:200
@ DRM_EXYNOS_IPP_LIMIT_SIZE_AREA
Definition exynos_drm.h:198
@ DRM_EXYNOS_IPP_LIMIT_TYPE_MASK
Definition exynos_drm.h:202
@ DRM_EXYNOS_IPP_LIMIT_TYPE_SCALE
Definition exynos_drm.h:193
drm_exynos_ipp_format_type
Definition exynos_drm.h:153
@ DRM_EXYNOS_IPP_FORMAT_SOURCE
Definition exynos_drm.h:154
@ DRM_EXYNOS_IPP_FORMAT_DESTINATION
Definition exynos_drm.h:155
drm_exynos_ipp_capability
Definition exynos_drm.h:164
@ DRM_EXYNOS_IPP_CAP_CROP
Definition exynos_drm.h:165
@ DRM_EXYNOS_IPP_CAP_SCALE
Definition exynos_drm.h:167
@ DRM_EXYNOS_IPP_CAP_CONVERT
Definition exynos_drm.h:168
@ DRM_EXYNOS_IPP_CAP_ROTATE
Definition exynos_drm.h:166
drm_exynos_ipp_flag
Definition exynos_drm.h:319
@ DRM_EXYNOS_IPP_FLAG_NONBLOCK
Definition exynos_drm.h:325
@ DRM_EXYNOS_IPP_FLAG_EVENT
Definition exynos_drm.h:321
@ DRM_EXYNOS_IPP_FLAG_TEST_ONLY
Definition exynos_drm.h:323
drm_exynos_ipp_task_id
Definition exynos_drm.h:248
@ DRM_EXYNOS_IPP_TASK_ALPHA
Definition exynos_drm.h:256
@ DRM_EXYNOS_IPP_TASK_TYPE_SOURCE
Definition exynos_drm.h:259
@ DRM_EXYNOS_IPP_TASK_BUFFER
Definition exynos_drm.h:250
@ DRM_EXYNOS_IPP_TASK_TYPE_DESTINATION
Definition exynos_drm.h:261
@ DRM_EXYNOS_IPP_TASK_TRANSFORM
Definition exynos_drm.h:254
@ DRM_EXYNOS_IPP_TASK_RECTANGLE
Definition exynos_drm.h:252
drm_exynos_g2d_event_type
Definition exynos_drm.h:112
@ G2D_EVENT_NONSTOP
Definition exynos_drm.h:114
@ G2D_EVENT_NOT
Definition exynos_drm.h:113
@ G2D_EVENT_STOP
Definition exynos_drm.h:115
Definition drm.h:1380
Definition exynos_drm.h:103
__u32 data
Definition exynos_drm.h:105
__u32 offset
Definition exynos_drm.h:104
Definition exynos_drm.h:401
__u32 cmdlist_no
Definition exynos_drm.h:406
__u32 reserved
Definition exynos_drm.h:407
__u32 tv_usec
Definition exynos_drm.h:405
struct drm_event base
Definition exynos_drm.h:402
__u64 user_data
Definition exynos_drm.h:403
__u32 tv_sec
Definition exynos_drm.h:404
Definition exynos_drm.h:134
__u64 async
Definition exynos_drm.h:135
Definition exynos_drm.h:98
__u32 major
Definition exynos_drm.h:99
__u32 minor
Definition exynos_drm.h:100
Definition exynos_drm.h:123
__u64 cmd_buf
Definition exynos_drm.h:125
__u64 cmd
Definition exynos_drm.h:124
__u64 event_type
Definition exynos_drm.h:130
__u32 cmd_buf_nr
Definition exynos_drm.h:127
__u32 cmd_nr
Definition exynos_drm.h:126
__u64 user_data
Definition exynos_drm.h:131
Definition exynos_drm.h:118
unsigned long size
Definition exynos_drm.h:120
unsigned long userptr
Definition exynos_drm.h:119
Definition exynos_drm.h:34
__u32 handle
Definition exynos_drm.h:37
__u32 flags
Definition exynos_drm.h:36
__u64 size
Definition exynos_drm.h:35
Definition exynos_drm.h:62
__u32 handle
Definition exynos_drm.h:63
__u64 size
Definition exynos_drm.h:65
__u32 flags
Definition exynos_drm.h:64
Definition exynos_drm.h:47
__u32 reserved
Definition exynos_drm.h:49
__u32 handle
Definition exynos_drm.h:48
__u64 offset
Definition exynos_drm.h:50
Definition exynos_drm.h:342
__u64 user_data
Definition exynos_drm.h:348
__u64 params_ptr
Definition exynos_drm.h:347
__u32 ipp_id
Definition exynos_drm.h:343
__u32 reserved
Definition exynos_drm.h:345
__u32 params_size
Definition exynos_drm.h:346
__u32 flags
Definition exynos_drm.h:344
Definition exynos_drm.h:181
__u32 capabilities
Definition exynos_drm.h:183
__u32 formats_count
Definition exynos_drm.h:185
__u32 ipp_id
Definition exynos_drm.h:182
__u32 reserved
Definition exynos_drm.h:184
__u64 formats_ptr
Definition exynos_drm.h:186
Definition exynos_drm.h:239
__u32 fourcc
Definition exynos_drm.h:241
__u64 limits_ptr
Definition exynos_drm.h:245
__u64 modifier
Definition exynos_drm.h:242
__u32 ipp_id
Definition exynos_drm.h:240
__u32 type
Definition exynos_drm.h:243
__u32 limits_count
Definition exynos_drm.h:244
Definition exynos_drm.h:147
__u32 reserved
Definition exynos_drm.h:149
__u64 ipp_id_ptr
Definition exynos_drm.h:150
__u32 count_ipps
Definition exynos_drm.h:148
Definition exynos_drm.h:410
__u32 tv_usec
Definition exynos_drm.h:414
struct drm_event base
Definition exynos_drm.h:411
__u64 reserved
Definition exynos_drm.h:417
__u32 tv_sec
Definition exynos_drm.h:413
__u32 ipp_id
Definition exynos_drm.h:415
__u64 user_data
Definition exynos_drm.h:412
__u32 sequence
Definition exynos_drm.h:416
Definition exynos_drm.h:158
__u64 modifier
Definition exynos_drm.h:161
__u32 fourcc
Definition exynos_drm.h:159
__u32 type
Definition exynos_drm.h:160
Definition exynos_drm.h:206
__u32 max
Definition exynos_drm.h:208
__u32 reserved
Definition exynos_drm.h:210
__u32 min
Definition exynos_drm.h:207
__u32 align
Definition exynos_drm.h:209
Definition exynos_drm.h:221
__u32 type
Definition exynos_drm.h:222
__u32 reserved
Definition exynos_drm.h:223
struct drm_exynos_ipp_limit_val v
Definition exynos_drm.h:225
struct drm_exynos_ipp_limit_val h
Definition exynos_drm.h:224
Definition exynos_drm.h:314
__u32 id
Definition exynos_drm.h:315
__u32 value
Definition exynos_drm.h:316
Definition exynos_drm.h:270
__u64 modifier
Definition exynos_drm.h:277
__u32 id
Definition exynos_drm.h:271
__u32 offset[4]
Definition exynos_drm.h:275
__u32 pitch[4]
Definition exynos_drm.h:276
__u32 fourcc
Definition exynos_drm.h:272
__u32 height
Definition exynos_drm.h:273
__u32 gem_id[4]
Definition exynos_drm.h:274
__u32 width
Definition exynos_drm.h:273
Definition exynos_drm.h:288
__u32 w
Definition exynos_drm.h:293
__u32 h
Definition exynos_drm.h:294
__u32 reserved
Definition exynos_drm.h:290
__u32 y
Definition exynos_drm.h:292
__u32 x
Definition exynos_drm.h:291
__u32 id
Definition exynos_drm.h:289
Definition exynos_drm.h:303
__u32 rotation
Definition exynos_drm.h:305
__u32 id
Definition exynos_drm.h:304
Definition exynos_drm.h:76
__u32 connection
Definition exynos_drm.h:77
__u32 extensions
Definition exynos_drm.h:78
__u64 edid
Definition exynos_drm.h:79