xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/xe_drm.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_XE_DRM_H_
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_XE_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_XE_DEVICE_QUERY 0x00
14*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CREATE 0x01
15*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_MMAP_OFFSET 0x02
16*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_CREATE 0x03
17*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_DESTROY 0x04
18*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND 0x05
19*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_CREATE 0x06
20*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_DESTROY 0x07
21*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_GET_PROPERTY 0x08
22*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC 0x09
23*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_WAIT_USER_FENCE 0x0a
24*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OBSERVATION 0x0b
25*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_DEVICE_QUERY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_DEVICE_QUERY, struct drm_xe_device_query)
26*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_CREATE, struct drm_xe_gem_create)
27*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_GEM_MMAP_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_GEM_MMAP_OFFSET, struct drm_xe_gem_mmap_offset)
28*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_VM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_VM_CREATE, struct drm_xe_vm_create)
29*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_VM_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_DESTROY, struct drm_xe_vm_destroy)
30*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_VM_BIND DRM_IOW(DRM_COMMAND_BASE + DRM_XE_VM_BIND, struct drm_xe_vm_bind)
31*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_EXEC_QUEUE_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_CREATE, struct drm_xe_exec_queue_create)
32*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_EXEC_QUEUE_DESTROY DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_DESTROY, struct drm_xe_exec_queue_destroy)
33*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_EXEC_QUEUE_GET_PROPERTY, struct drm_xe_exec_queue_get_property)
34*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_EXEC DRM_IOW(DRM_COMMAND_BASE + DRM_XE_EXEC, struct drm_xe_exec)
35*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_WAIT_USER_FENCE DRM_IOWR(DRM_COMMAND_BASE + DRM_XE_WAIT_USER_FENCE, struct drm_xe_wait_user_fence)
36*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_XE_OBSERVATION DRM_IOW(DRM_COMMAND_BASE + DRM_XE_OBSERVATION, struct drm_xe_observation_param)
37*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_user_extension {
38*8d67ca89SAndroid Build Coastguard Worker   __u64 next_extension;
39*8d67ca89SAndroid Build Coastguard Worker   __u32 name;
40*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
41*8d67ca89SAndroid Build Coastguard Worker };
42*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_ext_set_property {
43*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_user_extension base;
44*8d67ca89SAndroid Build Coastguard Worker   __u32 property;
45*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
46*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
47*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
48*8d67ca89SAndroid Build Coastguard Worker };
49*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_engine_class_instance {
50*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_RENDER 0
51*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_COPY 1
52*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_VIDEO_DECODE 2
53*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE 3
54*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_COMPUTE 4
55*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_ENGINE_CLASS_VM_BIND 5
56*8d67ca89SAndroid Build Coastguard Worker   __u16 engine_class;
57*8d67ca89SAndroid Build Coastguard Worker   __u16 engine_instance;
58*8d67ca89SAndroid Build Coastguard Worker   __u16 gt_id;
59*8d67ca89SAndroid Build Coastguard Worker   __u16 pad;
60*8d67ca89SAndroid Build Coastguard Worker };
61*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_engine {
62*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_engine_class_instance instance;
63*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[3];
64*8d67ca89SAndroid Build Coastguard Worker };
65*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_engines {
66*8d67ca89SAndroid Build Coastguard Worker   __u32 num_engines;
67*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
68*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_engine engines[];
69*8d67ca89SAndroid Build Coastguard Worker };
70*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_memory_class {
71*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_MEM_REGION_CLASS_SYSMEM = 0,
72*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_MEM_REGION_CLASS_VRAM
73*8d67ca89SAndroid Build Coastguard Worker };
74*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_mem_region {
75*8d67ca89SAndroid Build Coastguard Worker   __u16 mem_class;
76*8d67ca89SAndroid Build Coastguard Worker   __u16 instance;
77*8d67ca89SAndroid Build Coastguard Worker   __u32 min_page_size;
78*8d67ca89SAndroid Build Coastguard Worker   __u64 total_size;
79*8d67ca89SAndroid Build Coastguard Worker   __u64 used;
80*8d67ca89SAndroid Build Coastguard Worker   __u64 cpu_visible_size;
81*8d67ca89SAndroid Build Coastguard Worker   __u64 cpu_visible_used;
82*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[6];
83*8d67ca89SAndroid Build Coastguard Worker };
84*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_mem_regions {
85*8d67ca89SAndroid Build Coastguard Worker   __u32 num_mem_regions;
86*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
87*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_mem_region mem_regions[];
88*8d67ca89SAndroid Build Coastguard Worker };
89*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_config {
90*8d67ca89SAndroid Build Coastguard Worker   __u32 num_params;
91*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
92*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_REV_AND_DEVICE_ID 0
93*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_FLAGS 1
94*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_FLAG_HAS_VRAM (1 << 0)
95*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_MIN_ALIGNMENT 2
96*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_VA_BITS 3
97*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_CONFIG_MAX_EXEC_QUEUE_PRIORITY 4
98*8d67ca89SAndroid Build Coastguard Worker   __u64 info[];
99*8d67ca89SAndroid Build Coastguard Worker };
100*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_gt {
101*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_GT_TYPE_MAIN 0
102*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_QUERY_GT_TYPE_MEDIA 1
103*8d67ca89SAndroid Build Coastguard Worker   __u16 type;
104*8d67ca89SAndroid Build Coastguard Worker   __u16 tile_id;
105*8d67ca89SAndroid Build Coastguard Worker   __u16 gt_id;
106*8d67ca89SAndroid Build Coastguard Worker   __u16 pad[3];
107*8d67ca89SAndroid Build Coastguard Worker   __u32 reference_clock;
108*8d67ca89SAndroid Build Coastguard Worker   __u64 near_mem_regions;
109*8d67ca89SAndroid Build Coastguard Worker   __u64 far_mem_regions;
110*8d67ca89SAndroid Build Coastguard Worker   __u16 ip_ver_major;
111*8d67ca89SAndroid Build Coastguard Worker   __u16 ip_ver_minor;
112*8d67ca89SAndroid Build Coastguard Worker   __u16 ip_ver_rev;
113*8d67ca89SAndroid Build Coastguard Worker   __u16 pad2;
114*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[7];
115*8d67ca89SAndroid Build Coastguard Worker };
116*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_gt_list {
117*8d67ca89SAndroid Build Coastguard Worker   __u32 num_gt;
118*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
119*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_gt gt_list[];
120*8d67ca89SAndroid Build Coastguard Worker };
121*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_topology_mask {
122*8d67ca89SAndroid Build Coastguard Worker   __u16 gt_id;
123*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_TOPO_DSS_GEOMETRY 1
124*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_TOPO_DSS_COMPUTE 2
125*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_TOPO_L3_BANK 3
126*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_TOPO_EU_PER_DSS 4
127*8d67ca89SAndroid Build Coastguard Worker   __u16 type;
128*8d67ca89SAndroid Build Coastguard Worker   __u32 num_bytes;
129*8d67ca89SAndroid Build Coastguard Worker   __u8 mask[];
130*8d67ca89SAndroid Build Coastguard Worker };
131*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_engine_cycles {
132*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_engine_class_instance eci;
133*8d67ca89SAndroid Build Coastguard Worker   __s32 clockid;
134*8d67ca89SAndroid Build Coastguard Worker   __u32 width;
135*8d67ca89SAndroid Build Coastguard Worker   __u64 engine_cycles;
136*8d67ca89SAndroid Build Coastguard Worker   __u64 cpu_timestamp;
137*8d67ca89SAndroid Build Coastguard Worker   __u64 cpu_delta;
138*8d67ca89SAndroid Build Coastguard Worker };
139*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_uc_fw_version {
140*8d67ca89SAndroid Build Coastguard Worker #define XE_QUERY_UC_TYPE_GUC_SUBMISSION 0
141*8d67ca89SAndroid Build Coastguard Worker #define XE_QUERY_UC_TYPE_HUC 1
142*8d67ca89SAndroid Build Coastguard Worker   __u16 uc_type;
143*8d67ca89SAndroid Build Coastguard Worker   __u16 pad;
144*8d67ca89SAndroid Build Coastguard Worker   __u32 branch_ver;
145*8d67ca89SAndroid Build Coastguard Worker   __u32 major_ver;
146*8d67ca89SAndroid Build Coastguard Worker   __u32 minor_ver;
147*8d67ca89SAndroid Build Coastguard Worker   __u32 patch_ver;
148*8d67ca89SAndroid Build Coastguard Worker   __u32 pad2;
149*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved;
150*8d67ca89SAndroid Build Coastguard Worker };
151*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_device_query {
152*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
153*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_ENGINES 0
154*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_MEM_REGIONS 1
155*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_CONFIG 2
156*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_GT_LIST 3
157*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_HWCONFIG 4
158*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_GT_TOPOLOGY 5
159*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_ENGINE_CYCLES 6
160*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_UC_FW_VERSION 7
161*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_DEVICE_QUERY_OA_UNITS 8
162*8d67ca89SAndroid Build Coastguard Worker   __u32 query;
163*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
164*8d67ca89SAndroid Build Coastguard Worker   __u64 data;
165*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
166*8d67ca89SAndroid Build Coastguard Worker };
167*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_gem_create {
168*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
169*8d67ca89SAndroid Build Coastguard Worker   __u64 size;
170*8d67ca89SAndroid Build Coastguard Worker   __u32 placement;
171*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CREATE_FLAG_DEFER_BACKING (1 << 0)
172*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CREATE_FLAG_SCANOUT (1 << 1)
173*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CREATE_FLAG_NEEDS_VISIBLE_VRAM (1 << 2)
174*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
175*8d67ca89SAndroid Build Coastguard Worker   __u32 vm_id;
176*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
177*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CPU_CACHING_WB 1
178*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_GEM_CPU_CACHING_WC 2
179*8d67ca89SAndroid Build Coastguard Worker   __u16 cpu_caching;
180*8d67ca89SAndroid Build Coastguard Worker   __u16 pad[3];
181*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
182*8d67ca89SAndroid Build Coastguard Worker };
183*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_gem_mmap_offset {
184*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
185*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
186*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
187*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
188*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
189*8d67ca89SAndroid Build Coastguard Worker };
190*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_vm_create {
191*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
192*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE (1 << 0)
193*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_CREATE_FLAG_LR_MODE (1 << 1)
194*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_CREATE_FLAG_FAULT_MODE (1 << 2)
195*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
196*8d67ca89SAndroid Build Coastguard Worker   __u32 vm_id;
197*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
198*8d67ca89SAndroid Build Coastguard Worker };
199*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_vm_destroy {
200*8d67ca89SAndroid Build Coastguard Worker   __u32 vm_id;
201*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
202*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
203*8d67ca89SAndroid Build Coastguard Worker };
204*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_vm_bind_op {
205*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
206*8d67ca89SAndroid Build Coastguard Worker   __u32 obj;
207*8d67ca89SAndroid Build Coastguard Worker   __u16 pat_index;
208*8d67ca89SAndroid Build Coastguard Worker   __u16 pad;
209*8d67ca89SAndroid Build Coastguard Worker   union {
210*8d67ca89SAndroid Build Coastguard Worker     __u64 obj_offset;
211*8d67ca89SAndroid Build Coastguard Worker     __u64 userptr;
212*8d67ca89SAndroid Build Coastguard Worker   };
213*8d67ca89SAndroid Build Coastguard Worker   __u64 range;
214*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
215*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_OP_MAP 0x0
216*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_OP_UNMAP 0x1
217*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_OP_MAP_USERPTR 0x2
218*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_OP_UNMAP_ALL 0x3
219*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_OP_PREFETCH 0x4
220*8d67ca89SAndroid Build Coastguard Worker   __u32 op;
221*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_FLAG_READONLY (1 << 0)
222*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_FLAG_IMMEDIATE (1 << 1)
223*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_FLAG_NULL (1 << 2)
224*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_VM_BIND_FLAG_DUMPABLE (1 << 3)
225*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
226*8d67ca89SAndroid Build Coastguard Worker   __u32 prefetch_mem_region_instance;
227*8d67ca89SAndroid Build Coastguard Worker   __u32 pad2;
228*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[3];
229*8d67ca89SAndroid Build Coastguard Worker };
230*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_vm_bind {
231*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
232*8d67ca89SAndroid Build Coastguard Worker   __u32 vm_id;
233*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
234*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
235*8d67ca89SAndroid Build Coastguard Worker   __u32 num_binds;
236*8d67ca89SAndroid Build Coastguard Worker   union {
237*8d67ca89SAndroid Build Coastguard Worker     struct drm_xe_vm_bind_op bind;
238*8d67ca89SAndroid Build Coastguard Worker     __u64 vector_of_binds;
239*8d67ca89SAndroid Build Coastguard Worker   };
240*8d67ca89SAndroid Build Coastguard Worker   __u32 pad2;
241*8d67ca89SAndroid Build Coastguard Worker   __u32 num_syncs;
242*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
243*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
244*8d67ca89SAndroid Build Coastguard Worker };
245*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_exec_queue_create {
246*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_EXTENSION_SET_PROPERTY 0
247*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_PRIORITY 0
248*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_SET_PROPERTY_TIMESLICE 1
249*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
250*8d67ca89SAndroid Build Coastguard Worker   __u16 width;
251*8d67ca89SAndroid Build Coastguard Worker   __u16 num_placements;
252*8d67ca89SAndroid Build Coastguard Worker   __u32 vm_id;
253*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
254*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
255*8d67ca89SAndroid Build Coastguard Worker   __u64 instances;
256*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
257*8d67ca89SAndroid Build Coastguard Worker };
258*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_exec_queue_destroy {
259*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
260*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
261*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
262*8d67ca89SAndroid Build Coastguard Worker };
263*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_exec_queue_get_property {
264*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
265*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
266*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_EXEC_QUEUE_GET_PROPERTY_BAN 0
267*8d67ca89SAndroid Build Coastguard Worker   __u32 property;
268*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
269*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
270*8d67ca89SAndroid Build Coastguard Worker };
271*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_sync {
272*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
273*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_SYNC_TYPE_SYNCOBJ 0x0
274*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_SYNC_TYPE_TIMELINE_SYNCOBJ 0x1
275*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_SYNC_TYPE_USER_FENCE 0x2
276*8d67ca89SAndroid Build Coastguard Worker   __u32 type;
277*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_SYNC_FLAG_SIGNAL (1 << 0)
278*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
279*8d67ca89SAndroid Build Coastguard Worker   union {
280*8d67ca89SAndroid Build Coastguard Worker     __u32 handle;
281*8d67ca89SAndroid Build Coastguard Worker     __u64 addr;
282*8d67ca89SAndroid Build Coastguard Worker   };
283*8d67ca89SAndroid Build Coastguard Worker   __u64 timeline_value;
284*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
285*8d67ca89SAndroid Build Coastguard Worker };
286*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_exec {
287*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
288*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
289*8d67ca89SAndroid Build Coastguard Worker   __u32 num_syncs;
290*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
291*8d67ca89SAndroid Build Coastguard Worker   __u64 address;
292*8d67ca89SAndroid Build Coastguard Worker   __u16 num_batch_buffer;
293*8d67ca89SAndroid Build Coastguard Worker   __u16 pad[3];
294*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
295*8d67ca89SAndroid Build Coastguard Worker };
296*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_wait_user_fence {
297*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
298*8d67ca89SAndroid Build Coastguard Worker   __u64 addr;
299*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_EQ 0x0
300*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_NEQ 0x1
301*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_GT 0x2
302*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_GTE 0x3
303*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_LT 0x4
304*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_OP_LTE 0x5
305*8d67ca89SAndroid Build Coastguard Worker   __u16 op;
306*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_UFENCE_WAIT_FLAG_ABSTIME (1 << 0)
307*8d67ca89SAndroid Build Coastguard Worker   __u16 flags;
308*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
309*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
310*8d67ca89SAndroid Build Coastguard Worker   __u64 mask;
311*8d67ca89SAndroid Build Coastguard Worker   __s64 timeout;
312*8d67ca89SAndroid Build Coastguard Worker   __u32 exec_queue_id;
313*8d67ca89SAndroid Build Coastguard Worker   __u32 pad2;
314*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[2];
315*8d67ca89SAndroid Build Coastguard Worker };
316*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_observation_type {
317*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_TYPE_OA,
318*8d67ca89SAndroid Build Coastguard Worker };
319*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_observation_op {
320*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_OP_STREAM_OPEN,
321*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_OP_ADD_CONFIG,
322*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_OP_REMOVE_CONFIG,
323*8d67ca89SAndroid Build Coastguard Worker };
324*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_observation_param {
325*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
326*8d67ca89SAndroid Build Coastguard Worker   __u64 observation_type;
327*8d67ca89SAndroid Build Coastguard Worker   __u64 observation_op;
328*8d67ca89SAndroid Build Coastguard Worker   __u64 param;
329*8d67ca89SAndroid Build Coastguard Worker };
330*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_observation_ioctls {
331*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_IOCTL_ENABLE = _IO('i', 0x0),
332*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_IOCTL_DISABLE = _IO('i', 0x1),
333*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_IOCTL_CONFIG = _IO('i', 0x2),
334*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_IOCTL_STATUS = _IO('i', 0x3),
335*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OBSERVATION_IOCTL_INFO = _IO('i', 0x4),
336*8d67ca89SAndroid Build Coastguard Worker };
337*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_oa_unit_type {
338*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_UNIT_TYPE_OAG,
339*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_UNIT_TYPE_OAM,
340*8d67ca89SAndroid Build Coastguard Worker };
341*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_oa_unit {
342*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
343*8d67ca89SAndroid Build Coastguard Worker   __u32 oa_unit_id;
344*8d67ca89SAndroid Build Coastguard Worker   __u32 oa_unit_type;
345*8d67ca89SAndroid Build Coastguard Worker   __u64 capabilities;
346*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_CAPS_BASE (1 << 0)
347*8d67ca89SAndroid Build Coastguard Worker   __u64 oa_timestamp_freq;
348*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[4];
349*8d67ca89SAndroid Build Coastguard Worker   __u64 num_engines;
350*8d67ca89SAndroid Build Coastguard Worker   struct drm_xe_engine_class_instance eci[];
351*8d67ca89SAndroid Build Coastguard Worker };
352*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_query_oa_units {
353*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
354*8d67ca89SAndroid Build Coastguard Worker   __u32 num_oa_units;
355*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
356*8d67ca89SAndroid Build Coastguard Worker   __u64 oa_units[];
357*8d67ca89SAndroid Build Coastguard Worker };
358*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_oa_format_type {
359*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_OAG,
360*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_OAR,
361*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_OAM,
362*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_OAC,
363*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_OAM_MPEC,
364*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_FMT_TYPE_PEC,
365*8d67ca89SAndroid Build Coastguard Worker };
366*8d67ca89SAndroid Build Coastguard Worker enum drm_xe_oa_property_id {
367*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_EXTENSION_SET_PROPERTY 0
368*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_UNIT_ID = 1,
369*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_SAMPLE_OA,
370*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_METRIC_SET,
371*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_FORMAT,
372*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_FORMAT_MASK_FMT_TYPE (0xffu << 0)
373*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_FORMAT_MASK_COUNTER_SEL (0xffu << 8)
374*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_FORMAT_MASK_COUNTER_SIZE (0xffu << 16)
375*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OA_FORMAT_MASK_BC_REPORT (0xffu << 24)
376*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT,
377*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_DISABLED,
378*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID,
379*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE,
380*8d67ca89SAndroid Build Coastguard Worker   DRM_XE_OA_PROPERTY_NO_PREEMPT,
381*8d67ca89SAndroid Build Coastguard Worker };
382*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_oa_config {
383*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
384*8d67ca89SAndroid Build Coastguard Worker   char uuid[36];
385*8d67ca89SAndroid Build Coastguard Worker   __u32 n_regs;
386*8d67ca89SAndroid Build Coastguard Worker   __u64 regs_ptr;
387*8d67ca89SAndroid Build Coastguard Worker };
388*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_oa_stream_status {
389*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
390*8d67ca89SAndroid Build Coastguard Worker   __u64 oa_status;
391*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OASTATUS_MMIO_TRG_Q_FULL (1 << 3)
392*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OASTATUS_COUNTER_OVERFLOW (1 << 2)
393*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OASTATUS_BUFFER_OVERFLOW (1 << 1)
394*8d67ca89SAndroid Build Coastguard Worker #define DRM_XE_OASTATUS_REPORT_LOST (1 << 0)
395*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[3];
396*8d67ca89SAndroid Build Coastguard Worker };
397*8d67ca89SAndroid Build Coastguard Worker struct drm_xe_oa_stream_info {
398*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
399*8d67ca89SAndroid Build Coastguard Worker   __u64 oa_buf_size;
400*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved[3];
401*8d67ca89SAndroid Build Coastguard Worker };
402*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
403*8d67ca89SAndroid Build Coastguard Worker }
404*8d67ca89SAndroid Build Coastguard Worker #endif
405*8d67ca89SAndroid Build Coastguard Worker #endif
406