xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/ivpu_accel.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __UAPI_IVPU_DRM_H__
8*8d67ca89SAndroid Build Coastguard Worker #define __UAPI_IVPU_DRM_H__
9*8d67ca89SAndroid Build Coastguard Worker #include "drm.h"
10*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
11*8d67ca89SAndroid Build Coastguard Worker extern "C" {
12*8d67ca89SAndroid Build Coastguard Worker #endif
13*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_DRIVER_MAJOR 1
14*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_DRIVER_MINOR 0
15*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_GET_PARAM 0x00
16*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_SET_PARAM 0x01
17*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_CREATE 0x02
18*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_INFO 0x03
19*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_SUBMIT 0x05
20*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_WAIT 0x06
21*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_METRIC_STREAMER_START 0x07
22*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_METRIC_STREAMER_STOP 0x08
23*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_METRIC_STREAMER_GET_DATA 0x09
24*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_METRIC_STREAMER_GET_INFO 0x0a
25*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_GET_PARAM, struct drm_ivpu_param)
26*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_SET_PARAM DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SET_PARAM, struct drm_ivpu_param)
27*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_BO_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_CREATE, struct drm_ivpu_bo_create)
28*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_BO_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_INFO, struct drm_ivpu_bo_info)
29*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_SUBMIT DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_SUBMIT, struct drm_ivpu_submit)
30*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_BO_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_BO_WAIT, struct drm_ivpu_bo_wait)
31*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_METRIC_STREAMER_START DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_START, struct drm_ivpu_metric_streamer_start)
32*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_METRIC_STREAMER_STOP DRM_IOW(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_STOP, struct drm_ivpu_metric_streamer_stop)
33*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_DATA DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_DATA, struct drm_ivpu_metric_streamer_get_data)
34*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_IVPU_METRIC_STREAMER_GET_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_IVPU_METRIC_STREAMER_GET_INFO, struct drm_ivpu_metric_streamer_get_data)
35*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_DEVICE_ID 0
36*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_DEVICE_REVISION 1
37*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_PLATFORM_TYPE 2
38*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_CORE_CLOCK_RATE 3
39*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_NUM_CONTEXTS 4
40*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_CONTEXT_BASE_ADDRESS 5
41*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_CONTEXT_PRIORITY 6
42*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_CONTEXT_ID 7
43*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_FW_API_VERSION 8
44*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_ENGINE_HEARTBEAT 9
45*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_UNIQUE_INFERENCE_ID 10
46*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_TILE_CONFIG 11
47*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_SKU 12
48*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PARAM_CAPABILITIES 13
49*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_PLATFORM_TYPE_SILICON 0
50*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CONTEXT_PRIORITY_IDLE 0
51*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CONTEXT_PRIORITY_NORMAL 1
52*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CONTEXT_PRIORITY_FOCUS 2
53*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CONTEXT_PRIORITY_REALTIME 3
54*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_PRIORITY_DEFAULT 0
55*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_PRIORITY_IDLE 1
56*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_PRIORITY_NORMAL 2
57*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_PRIORITY_FOCUS 3
58*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_PRIORITY_REALTIME 4
59*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CAP_METRIC_STREAMER 1
60*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_CAP_DMA_MEMORY_RANGE 2
61*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_param {
62*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
63*8d67ca89SAndroid Build Coastguard Worker   __u32 index;
64*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
65*8d67ca89SAndroid Build Coastguard Worker };
66*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_SHAVE_MEM 0x00000001
67*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_HIGH_MEM DRM_IVPU_BO_SHAVE_MEM
68*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_MAPPABLE 0x00000002
69*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_DMA_MEM 0x00000004
70*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_CACHED 0x00000000
71*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_UNCACHED 0x00010000
72*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_WC 0x00020000
73*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_CACHE_MASK 0x00030000
74*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_BO_FLAGS (DRM_IVPU_BO_HIGH_MEM | DRM_IVPU_BO_MAPPABLE | DRM_IVPU_BO_DMA_MEM | DRM_IVPU_BO_CACHE_MASK)
75*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_bo_create {
76*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
77*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
78*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
79*8d67ca89SAndroid Build Coastguard Worker   __u64 vpu_addr;
80*8d67ca89SAndroid Build Coastguard Worker };
81*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_bo_info {
82*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
83*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
84*8d67ca89SAndroid Build Coastguard Worker   __u64 vpu_addr;
85*8d67ca89SAndroid Build Coastguard Worker   __u64 mmap_offset;
86*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
87*8d67ca89SAndroid Build Coastguard Worker };
88*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_ENGINE_COMPUTE 0
89*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_ENGINE_COPY 1
90*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_submit {
91*8d67ca89SAndroid Build Coastguard Worker   __u64 buffers_ptr;
92*8d67ca89SAndroid Build Coastguard Worker   __u32 buffer_count;
93*8d67ca89SAndroid Build Coastguard Worker   __u32 engine;
94*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
95*8d67ca89SAndroid Build Coastguard Worker   __u32 commands_offset;
96*8d67ca89SAndroid Build Coastguard Worker   __u32 priority;
97*8d67ca89SAndroid Build Coastguard Worker };
98*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_STATUS_SUCCESS 0
99*8d67ca89SAndroid Build Coastguard Worker #define DRM_IVPU_JOB_STATUS_ABORTED 256
100*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_bo_wait {
101*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
102*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
103*8d67ca89SAndroid Build Coastguard Worker   __s64 timeout_ns;
104*8d67ca89SAndroid Build Coastguard Worker   __u32 job_status;
105*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
106*8d67ca89SAndroid Build Coastguard Worker };
107*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_metric_streamer_start {
108*8d67ca89SAndroid Build Coastguard Worker   __u64 metric_group_mask;
109*8d67ca89SAndroid Build Coastguard Worker   __u64 sampling_period_ns;
110*8d67ca89SAndroid Build Coastguard Worker   __u32 read_period_samples;
111*8d67ca89SAndroid Build Coastguard Worker   __u32 sample_size;
112*8d67ca89SAndroid Build Coastguard Worker   __u32 max_data_size;
113*8d67ca89SAndroid Build Coastguard Worker };
114*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_metric_streamer_get_data {
115*8d67ca89SAndroid Build Coastguard Worker   __u64 metric_group_mask;
116*8d67ca89SAndroid Build Coastguard Worker   __u64 buffer_ptr;
117*8d67ca89SAndroid Build Coastguard Worker   __u64 buffer_size;
118*8d67ca89SAndroid Build Coastguard Worker   __u64 data_size;
119*8d67ca89SAndroid Build Coastguard Worker };
120*8d67ca89SAndroid Build Coastguard Worker struct drm_ivpu_metric_streamer_stop {
121*8d67ca89SAndroid Build Coastguard Worker   __u64 metric_group_mask;
122*8d67ca89SAndroid Build Coastguard Worker };
123*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
124*8d67ca89SAndroid Build Coastguard Worker }
125*8d67ca89SAndroid Build Coastguard Worker #endif
126*8d67ca89SAndroid Build Coastguard Worker #endif
127