6#ifndef __UAPI_IVPU_DRM_H__
7#define __UAPI_IVPU_DRM_H__
11#if defined(__cplusplus)
15#define DRM_IVPU_GET_PARAM 0x00
16#define DRM_IVPU_SET_PARAM 0x01
17#define DRM_IVPU_BO_CREATE 0x02
18#define DRM_IVPU_BO_INFO 0x03
19#define DRM_IVPU_SUBMIT 0x05
20#define DRM_IVPU_BO_WAIT 0x06
21#define DRM_IVPU_METRIC_STREAMER_START 0x07
22#define DRM_IVPU_METRIC_STREAMER_STOP 0x08
23#define DRM_IVPU_METRIC_STREAMER_GET_DATA 0x09
24#define DRM_IVPU_METRIC_STREAMER_GET_INFO 0x0a
25#define DRM_IVPU_CMDQ_CREATE 0x0b
26#define DRM_IVPU_CMDQ_DESTROY 0x0c
27#define DRM_IVPU_CMDQ_SUBMIT 0x0d
28#define DRM_IVPU_BO_CREATE_FROM_USERPTR 0x0e
30#define DRM_IOCTL_IVPU_GET_PARAM \
31 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_GET_PARAM, struct drm_ivpu_param)
33#define DRM_IOCTL_IVPU_SET_PARAM \
34 DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SET_PARAM, struct drm_ivpu_param)
36#define DRM_IOCTL_IVPU_BO_CREATE \
37 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_CREATE, struct drm_ivpu_bo_create)
39#define DRM_IOCTL_IVPU_BO_INFO \
40 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_INFO, struct drm_ivpu_bo_info)
42#define DRM_IOCTL_IVPU_SUBMIT \
43 DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SUBMIT, struct drm_ivpu_submit)
45#define DRM_IOCTL_IVPU_BO_WAIT \
46 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_WAIT, struct drm_ivpu_bo_wait)
48#define DRM_IOCTL_IVPU_METRIC_STREAMER_START \
49 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_START, \
50 struct drm_ivpu_metric_streamer_start)
52#define DRM_IOCTL_IVPU_METRIC_STREAMER_STOP \
53 DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_STOP, \
54 struct drm_ivpu_metric_streamer_stop)
56#define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA \
57 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_DATA, \
58 struct drm_ivpu_metric_streamer_get_data)
60#define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_INFO \
61 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_INFO, \
62 struct drm_ivpu_metric_streamer_get_data)
64#define DRM_IOCTL_IVPU_CMDQ_CREATE \
65 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_CMDQ_CREATE, struct drm_ivpu_cmdq_create)
67#define DRM_IOCTL_IVPU_CMDQ_DESTROY \
68 DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_CMDQ_DESTROY, struct drm_ivpu_cmdq_destroy)
70#define DRM_IOCTL_IVPU_CMDQ_SUBMIT \
71 DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_CMDQ_SUBMIT, struct drm_ivpu_cmdq_submit)
73#define DRM_IOCTL_IVPU_BO_CREATE_FROM_USERPTR \
74 DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_CREATE_FROM_USERPTR, \
75 struct drm_ivpu_bo_create_from_userptr)
84#define DRM_IVPU_PARAM_DEVICE_ID 0
85#define DRM_IVPU_PARAM_DEVICE_REVISION 1
86#define DRM_IVPU_PARAM_PLATFORM_TYPE 2
87#define DRM_IVPU_PARAM_CORE_CLOCK_RATE 3
88#define DRM_IVPU_PARAM_NUM_CONTEXTS 4
89#define DRM_IVPU_PARAM_CONTEXT_BASE_ADDRESS 5
90#define DRM_IVPU_PARAM_CONTEXT_PRIORITY 6
91#define DRM_IVPU_PARAM_CONTEXT_ID 7
92#define DRM_IVPU_PARAM_FW_API_VERSION 8
93#define DRM_IVPU_PARAM_ENGINE_HEARTBEAT 9
94#define DRM_IVPU_PARAM_UNIQUE_INFERENCE_ID 10
95#define DRM_IVPU_PARAM_TILE_CONFIG 11
96#define DRM_IVPU_PARAM_SKU 12
97#define DRM_IVPU_PARAM_CAPABILITIES 13
98#define DRM_IVPU_PARAM_PREEMPT_BUFFER_SIZE 14
100#define DRM_IVPU_PLATFORM_TYPE_SILICON 0
103#define DRM_IVPU_CONTEXT_PRIORITY_IDLE 0
104#define DRM_IVPU_CONTEXT_PRIORITY_NORMAL 1
105#define DRM_IVPU_CONTEXT_PRIORITY_FOCUS 2
106#define DRM_IVPU_CONTEXT_PRIORITY_REALTIME 3
108#define DRM_IVPU_JOB_PRIORITY_DEFAULT 0
109#define DRM_IVPU_JOB_PRIORITY_IDLE 1
110#define DRM_IVPU_JOB_PRIORITY_NORMAL 2
111#define DRM_IVPU_JOB_PRIORITY_FOCUS 3
112#define DRM_IVPU_JOB_PRIORITY_REALTIME 4
120#define DRM_IVPU_CAP_METRIC_STREAMER 1
127#define DRM_IVPU_CAP_DMA_MEMORY_RANGE 2
134#define DRM_IVPU_CAP_MANAGE_CMDQ 3
141#define DRM_IVPU_CAP_BO_CREATE_FROM_USERPTR 4
205#define DRM_IVPU_BO_SHAVE_MEM 0x00000001
206#define DRM_IVPU_BO_HIGH_MEM DRM_IVPU_BO_SHAVE_MEM
207#define DRM_IVPU_BO_MAPPABLE 0x00000002
208#define DRM_IVPU_BO_DMA_MEM 0x00000004
209#define DRM_IVPU_BO_READ_ONLY 0x00000008
211#define DRM_IVPU_BO_CACHED 0x00000000
212#define DRM_IVPU_BO_UNCACHED 0x00010000
213#define DRM_IVPU_BO_WC 0x00020000
214#define DRM_IVPU_BO_CACHE_MASK 0x00030000
216#define DRM_IVPU_BO_FLAGS \
217 (DRM_IVPU_BO_HIGH_MEM | \
218 DRM_IVPU_BO_MAPPABLE | \
219 DRM_IVPU_BO_DMA_MEM | \
220 DRM_IVPU_BO_READ_ONLY | \
221 DRM_IVPU_BO_CACHE_MASK)
335#define DRM_IVPU_ENGINE_COMPUTE 0
336#define DRM_IVPU_ENGINE_COPY 1
440#define DRM_IVPU_JOB_STATUS_SUCCESS 0
441#define DRM_IVPU_JOB_STATUS_ABORTED 256
512#define DRM_IVPU_CMDQ_FLAG_TURBO 0x00000001
560#if defined(__cplusplus)
uint32_t __u32
Definition drm.h:42
int64_t __s64
Definition drm.h:43
uint64_t __u64
Definition drm.h:44
Definition ivpu_accel.h:277
__u32 handle
Definition ivpu_accel.h:304
__u64 size
Definition ivpu_accel.h:282
__u32 flags
Definition ivpu_accel.h:301
__u64 vpu_addr
Definition ivpu_accel.h:307
__u64 user_ptr
Definition ivpu_accel.h:279
Definition ivpu_accel.h:228
__u32 handle
Definition ivpu_accel.h:266
__u64 vpu_addr
Definition ivpu_accel.h:269
__u32 flags
Definition ivpu_accel.h:263
__u64 size
Definition ivpu_accel.h:230
Definition ivpu_accel.h:313
__u64 vpu_addr
Definition ivpu_accel.h:321
__u64 size
Definition ivpu_accel.h:331
__u32 flags
Definition ivpu_accel.h:318
__u64 mmap_offset
Definition ivpu_accel.h:328
__u32 handle
Definition ivpu_accel.h:315
Definition ivpu_accel.h:449
__u32 pad
Definition ivpu_accel.h:469
__u32 job_status
Definition ivpu_accel.h:466
__s64 timeout_ns
Definition ivpu_accel.h:457
__u32 flags
Definition ivpu_accel.h:454
__u32 handle
Definition ivpu_accel.h:451
Definition ivpu_accel.h:517
__u32 cmdq_id
Definition ivpu_accel.h:519
__u32 flags
Definition ivpu_accel.h:541
__u32 priority
Definition ivpu_accel.h:530
Definition ivpu_accel.h:547
__u32 cmdq_id
Definition ivpu_accel.h:549
Definition ivpu_accel.h:402
__u32 commands_offset
Definition ivpu_accel.h:429
__u32 reserved
Definition ivpu_accel.h:436
__u32 buffer_count
Definition ivpu_accel.h:415
__u64 buffers_ptr
Definition ivpu_accel.h:412
__u32 cmdq_id
Definition ivpu_accel.h:418
__u32 flags
Definition ivpu_accel.h:421
__u32 preempt_buffer_index
Definition ivpu_accel.h:435
Definition ivpu_accel.h:496
__u64 buffer_ptr
Definition ivpu_accel.h:500
__u64 data_size
Definition ivpu_accel.h:508
__u64 metric_group_mask
Definition ivpu_accel.h:498
__u64 buffer_size
Definition ivpu_accel.h:502
Definition ivpu_accel.h:475
__u64 metric_group_mask
Definition ivpu_accel.h:477
__u32 read_period_samples
Definition ivpu_accel.h:486
__u32 sample_size
Definition ivpu_accel.h:488
__u32 max_data_size
Definition ivpu_accel.h:490
__u64 sampling_period_ns
Definition ivpu_accel.h:479
Definition ivpu_accel.h:555
__u64 metric_group_mask
Definition ivpu_accel.h:557
Definition ivpu_accel.h:146
__u64 value
Definition ivpu_accel.h:202
__u32 param
Definition ivpu_accel.h:196
__u32 index
Definition ivpu_accel.h:199
Definition ivpu_accel.h:346
__u64 buffers_ptr
Definition ivpu_accel.h:356
__u32 commands_offset
Definition ivpu_accel.h:379
__u32 priority
Definition ivpu_accel.h:391
__u32 flags
Definition ivpu_accel.h:371
__u32 buffer_count
Definition ivpu_accel.h:359
__u32 engine
Definition ivpu_accel.h:368