30#if defined(__cplusplus)
47#define MSM_PIPE_NONE 0x00
48#define MSM_PIPE_2D0 0x01
49#define MSM_PIPE_2D1 0x02
50#define MSM_PIPE_3D0 0x10
57#define MSM_PIPE_ID_MASK 0xffff
58#define MSM_PIPE_ID(x) ((x) & MSM_PIPE_ID_MASK)
59#define MSM_PIPE_FLAGS(x) ((x) & ~MSM_PIPE_ID_MASK)
74#define MSM_PARAM_GPU_ID 0x01
75#define MSM_PARAM_GMEM_SIZE 0x02
76#define MSM_PARAM_CHIP_ID 0x03
77#define MSM_PARAM_MAX_FREQ 0x04
78#define MSM_PARAM_TIMESTAMP 0x05
79#define MSM_PARAM_GMEM_BASE 0x06
80#define MSM_PARAM_PRIORITIES 0x07
81#define MSM_PARAM_PP_PGTABLE 0x08
82#define MSM_PARAM_FAULTS 0x09
83#define MSM_PARAM_SUSPENDS 0x0a
84#define MSM_PARAM_SYSPROF 0x0b
85#define MSM_PARAM_COMM 0x0c
86#define MSM_PARAM_CMDLINE 0x0d
87#define MSM_PARAM_VA_START 0x0e
88#define MSM_PARAM_VA_SIZE 0x0f
89#define MSM_PARAM_HIGHEST_BANK_BIT 0x10
90#define MSM_PARAM_RAYTRACING 0x11
91#define MSM_PARAM_UBWC_SWIZZLE 0x12
92#define MSM_PARAM_MACROTILE_MODE 0x13
93#define MSM_PARAM_UCHE_TRAP_BASE 0x14
95#define MSM_PARAM_HAS_PRR 0x15
119#define MSM_PARAM_EN_VM_BIND 0x16
120#define MSM_PARAM_AQE 0x17
128#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
142#define MSM_BO_SCANOUT 0x00000001
143#define MSM_BO_GPU_READONLY 0x00000002
156#define MSM_BO_NO_SHARE 0x00000004
157#define MSM_BO_CACHE_MASK 0x000f0000
159#define MSM_BO_CACHED 0x00010000
160#define MSM_BO_WC 0x00020000
161#define MSM_BO_UNCACHED 0x00040000
162#define MSM_BO_CACHED_COHERENT 0x080000
164#define MSM_BO_FLAGS (MSM_BO_SCANOUT | \
165 MSM_BO_GPU_READONLY | \
182#define MSM_INFO_GET_OFFSET 0x00
183#define MSM_INFO_GET_IOVA 0x01
184#define MSM_INFO_SET_NAME 0x02
185#define MSM_INFO_GET_NAME 0x03
186#define MSM_INFO_SET_IOVA 0x04
187#define MSM_INFO_GET_FLAGS 0x05
188#define MSM_INFO_SET_METADATA 0x06
189#define MSM_INFO_GET_METADATA 0x07
199#define MSM_PREP_READ 0x01
200#define MSM_PREP_WRITE 0x02
201#define MSM_PREP_NOSYNC 0x04
202#define MSM_PREP_BOOST 0x08
204#define MSM_PREP_FLAGS (MSM_PREP_READ | \
224#define MSM_SYNCOBJ_RESET 0x00000001
225#define MSM_SYNCOBJ_FLAGS ( \
226 MSM_SYNCOBJ_RESET | \
266#define MSM_SUBMIT_CMD_BUF 0x0001
267#define MSM_SUBMIT_CMD_IB_TARGET_BUF 0x0002
268#define MSM_SUBMIT_CMD_CTX_RESTORE_BUF 0x0003
293#define MSM_SUBMIT_BO_READ 0x0001
294#define MSM_SUBMIT_BO_WRITE 0x0002
295#define MSM_SUBMIT_BO_DUMP 0x0004
296#define MSM_SUBMIT_BO_NO_IMPLICIT 0x0008
298#define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | \
299 MSM_SUBMIT_BO_WRITE | \
300 MSM_SUBMIT_BO_DUMP | \
301 MSM_SUBMIT_BO_NO_IMPLICIT)
310#define MSM_SUBMIT_NO_IMPLICIT 0x80000000
311#define MSM_SUBMIT_FENCE_FD_IN 0x40000000
312#define MSM_SUBMIT_FENCE_FD_OUT 0x20000000
313#define MSM_SUBMIT_SUDO 0x10000000
314#define MSM_SUBMIT_SYNCOBJ_IN 0x08000000
315#define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000
316#define MSM_SUBMIT_FENCE_SN_IN 0x02000000
317#define MSM_SUBMIT_FLAGS ( \
318 MSM_SUBMIT_NO_IMPLICIT | \
319 MSM_SUBMIT_FENCE_FD_IN | \
320 MSM_SUBMIT_FENCE_FD_OUT | \
322 MSM_SUBMIT_SYNCOBJ_IN | \
323 MSM_SUBMIT_SYNCOBJ_OUT | \
324 MSM_SUBMIT_FENCE_SN_IN | \
348#define MSM_VM_BIND_OP_UNMAP 0
349#define MSM_VM_BIND_OP_MAP 1
350#define MSM_VM_BIND_OP_MAP_NULL 2
352#define MSM_VM_BIND_OP_DUMP 1
353#define MSM_VM_BIND_OP_FLAGS ( \
354 MSM_VM_BIND_OP_DUMP | \
377#define MSM_VM_BIND_FENCE_FD_IN 0x00000001
378#define MSM_VM_BIND_FENCE_FD_OUT 0x00000002
379#define MSM_VM_BIND_FLAGS ( \
380 MSM_VM_BIND_FENCE_FD_IN | \
381 MSM_VM_BIND_FENCE_FD_OUT | \
416#define MSM_WAIT_FENCE_BOOST 0x00000001
417#define MSM_WAIT_FENCE_FLAGS ( \
418 MSM_WAIT_FENCE_BOOST | \
446#define MSM_MADV_WILLNEED 0
447#define MSM_MADV_DONTNEED 1
448#define __MSM_MADV_PURGED 2
466#define MSM_SUBMITQUEUE_ALLOW_PREEMPT 0x00000001
467#define MSM_SUBMITQUEUE_VM_BIND 0x00000002
469#define MSM_SUBMITQUEUE_FLAGS ( \
470 MSM_SUBMITQUEUE_ALLOW_PREEMPT | \
471 MSM_SUBMITQUEUE_VM_BIND | \
484#define MSM_SUBMITQUEUE_PARAM_FAULTS 0
494#define MSM_PERFCNTR_STREAM 0x00000001
495#define MSM_PERFCNTR_UPDATE 0x00000002
496#define MSM_PERFCNTR_FLAGS ( \
497 MSM_PERFCNTR_STREAM | \
498 MSM_PERFCNTR_UPDATE | \
540#define DRM_MSM_GET_PARAM 0x00
541#define DRM_MSM_SET_PARAM 0x01
542#define DRM_MSM_GEM_NEW 0x02
543#define DRM_MSM_GEM_INFO 0x03
544#define DRM_MSM_GEM_CPU_PREP 0x04
545#define DRM_MSM_GEM_CPU_FINI 0x05
546#define DRM_MSM_GEM_SUBMIT 0x06
547#define DRM_MSM_WAIT_FENCE 0x07
548#define DRM_MSM_GEM_MADVISE 0x08
552#define DRM_MSM_SUBMITQUEUE_NEW 0x0A
553#define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B
554#define DRM_MSM_SUBMITQUEUE_QUERY 0x0C
555#define DRM_MSM_VM_BIND 0x0D
556#define DRM_MSM_PERFCNTR_CONFIG 0x0E
558#define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param)
559#define DRM_IOCTL_MSM_SET_PARAM DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SET_PARAM, struct drm_msm_param)
560#define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new)
561#define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info)
562#define DRM_IOCTL_MSM_GEM_CPU_PREP DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_PREP, struct drm_msm_gem_cpu_prep)
563#define DRM_IOCTL_MSM_GEM_CPU_FINI DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_FINI, struct drm_msm_gem_cpu_fini)
564#define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit)
565#define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence)
566#define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise)
567#define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue)
568#define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32)
569#define DRM_IOCTL_MSM_SUBMITQUEUE_QUERY DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_QUERY, struct drm_msm_submitqueue_query)
570#define DRM_IOCTL_MSM_VM_BIND DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_VM_BIND, struct drm_msm_vm_bind)
571#define DRM_IOCTL_MSM_PERFCNTR_CONFIG DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_PERFCNTR_CONFIG, struct drm_msm_perfcntr_config)
573#if defined(__cplusplus)
int32_t __s32
Definition drm.h:41
uint32_t __u32
Definition drm.h:42
int64_t __s64
Definition drm.h:43
uint64_t __u64
Definition drm.h:44
__u32 handle
Definition msm_drm.h:217
struct drm_msm_timespec timeout
Definition msm_drm.h:213
__u32 op
Definition msm_drm.h:212
__u32 handle
Definition msm_drm.h:211
__u32 len
Definition msm_drm.h:195
__u32 info
Definition msm_drm.h:193
__u64 value
Definition msm_drm.h:194
__u32 pad
Definition msm_drm.h:196
__u32 handle
Definition msm_drm.h:192
__u32 handle
Definition msm_drm.h:451
__u32 retained
Definition msm_drm.h:453
__u32 madv
Definition msm_drm.h:452
__u64 size
Definition msm_drm.h:170
__u32 handle
Definition msm_drm.h:172
__u32 flags
Definition msm_drm.h:171
__u32 handle
Definition msm_drm.h:305
__u32 flags
Definition msm_drm.h:304
__u64 presumed
Definition msm_drm.h:306
__u64 relocs
Definition msm_drm.h:277
__u32 pad
Definition msm_drm.h:274
__u32 submit_offset
Definition msm_drm.h:272
__u32 nr_relocs
Definition msm_drm.h:275
__u32 submit_idx
Definition msm_drm.h:271
__u32 type
Definition msm_drm.h:270
__u32 size
Definition msm_drm.h:273
__u64 iova
Definition msm_drm.h:278
__u32 or
Definition msm_drm.h:251
__u32 submit_offset
Definition msm_drm.h:247
__u64 reloc_offset
Definition msm_drm.h:255
__s32 shift
Definition msm_drm.h:253
__u32 reloc_idx
Definition msm_drm.h:254
__u32 syncobj_stride
Definition msm_drm.h:344
__u32 pad
Definition msm_drm.h:345
__u64 out_syncobjs
Definition msm_drm.h:341
__u32 nr_cmds
Definition msm_drm.h:335
__u64 cmds
Definition msm_drm.h:337
__u32 queueid
Definition msm_drm.h:339
__s32 fence_fd
Definition msm_drm.h:338
__u64 in_syncobjs
Definition msm_drm.h:340
__u32 nr_bos
Definition msm_drm.h:334
__u32 nr_out_syncobjs
Definition msm_drm.h:343
__u32 flags
Definition msm_drm.h:332
__u32 nr_in_syncobjs
Definition msm_drm.h:342
__u64 bos
Definition msm_drm.h:336
__u32 fence
Definition msm_drm.h:333
__u32 param
Definition msm_drm.h:132
__u32 pipe
Definition msm_drm.h:131
__u32 len
Definition msm_drm.h:134
__u64 value
Definition msm_drm.h:133
__u32 pad
Definition msm_drm.h:135
__u32 bufsz_shift
Definition msm_drm.h:536
__u64 groups
Definition msm_drm.h:534
__u64 period
Definition msm_drm.h:535
__u32 nr_groups
Definition msm_drm.h:533
__u32 group_stride
Definition msm_drm.h:537
__u32 flags
Definition msm_drm.h:532
__u32 nr_countables
Definition msm_drm.h:503
__u64 countables
Definition msm_drm.h:505
__u32 pad
Definition msm_drm.h:504
char group_name[16]
Definition msm_drm.h:502
__u32 param
Definition msm_drm.h:489
__u64 data
Definition msm_drm.h:487
__u32 pad
Definition msm_drm.h:491
__u32 len
Definition msm_drm.h:490
__u32 id
Definition msm_drm.h:488
__u32 id
Definition msm_drm.h:481
__u32 flags
Definition msm_drm.h:479
__u32 prio
Definition msm_drm.h:480
__u32 flags
Definition msm_drm.h:231
__u32 handle
Definition msm_drm.h:230
__u64 point
Definition msm_drm.h:232
__s64 tv_nsec
Definition msm_drm.h:67
__s64 tv_sec
Definition msm_drm.h:66
__u32 handle
Definition msm_drm.h:364
__u64 range
Definition msm_drm.h:370
__u32 flags
Definition msm_drm.h:372
__u32 pad
Definition msm_drm.h:374
__u32 op
Definition msm_drm.h:362
__u64 obj_offset
Definition msm_drm.h:366
__u64 iova
Definition msm_drm.h:368
__u32 flags
Definition msm_drm.h:389
__u64 out_syncobjs
Definition msm_drm.h:399
__u32 nr_ops
Definition msm_drm.h:391
__u32 syncobj_stride
Definition msm_drm.h:405
__s32 fence_fd
Definition msm_drm.h:393
__u32 queue_id
Definition msm_drm.h:395
struct drm_msm_vm_bind_op op
Definition msm_drm.h:410
__u32 nr_out_syncobjs
Definition msm_drm.h:403
__u32 op_stride
Definition msm_drm.h:407
__u64 ops
Definition msm_drm.h:412
__u64 in_syncobjs
Definition msm_drm.h:397
__u32 nr_in_syncobjs
Definition msm_drm.h:401
__u32 fence
Definition msm_drm.h:429
struct drm_msm_timespec timeout
Definition msm_drm.h:431
__u32 queueid
Definition msm_drm.h:432
__u32 flags
Definition msm_drm.h:430