xref: /aosp_15_r20/bionic/libc/kernel/uapi/drm/v3d_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 _V3D_DRM_H_
8*8d67ca89SAndroid Build Coastguard Worker #define _V3D_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_V3D_SUBMIT_CL 0x00
14*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_WAIT_BO 0x01
15*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_CREATE_BO 0x02
16*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_MMAP_BO 0x03
17*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_GET_PARAM 0x04
18*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_GET_BO_OFFSET 0x05
19*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_SUBMIT_TFU 0x06
20*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_SUBMIT_CSD 0x07
21*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFMON_CREATE 0x08
22*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFMON_DESTROY 0x09
23*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFMON_GET_VALUES 0x0a
24*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_SUBMIT_CPU 0x0b
25*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFMON_GET_COUNTER 0x0c
26*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
27*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
28*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
29*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_MMAP_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_MMAP_BO, struct drm_v3d_mmap_bo)
30*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_PARAM, struct drm_v3d_get_param)
31*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
32*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
33*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
34*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
35*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
36*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
37*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_SUBMIT_CPU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CPU, struct drm_v3d_submit_cpu)
38*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_V3D_PERFMON_GET_COUNTER DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_COUNTER, struct drm_v3d_perfmon_get_counter)
39*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
40*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_SUBMIT_EXTENSION 0x02
41*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_extension {
42*8d67ca89SAndroid Build Coastguard Worker   __u64 next;
43*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
44*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
45*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_INDIRECT_CSD 0x02
46*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_TIMESTAMP_QUERY 0x03
47*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_RESET_TIMESTAMP_QUERY 0x04
48*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_COPY_TIMESTAMP_QUERY 0x05
49*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_RESET_PERFORMANCE_QUERY 0x06
50*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_EXT_ID_CPU_COPY_PERFORMANCE_QUERY 0x07
51*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
52*8d67ca89SAndroid Build Coastguard Worker };
53*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_sem {
54*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
55*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
56*8d67ca89SAndroid Build Coastguard Worker   __u64 point;
57*8d67ca89SAndroid Build Coastguard Worker   __u64 mbz[2];
58*8d67ca89SAndroid Build Coastguard Worker };
59*8d67ca89SAndroid Build Coastguard Worker enum v3d_queue {
60*8d67ca89SAndroid Build Coastguard Worker   V3D_BIN,
61*8d67ca89SAndroid Build Coastguard Worker   V3D_RENDER,
62*8d67ca89SAndroid Build Coastguard Worker   V3D_TFU,
63*8d67ca89SAndroid Build Coastguard Worker   V3D_CSD,
64*8d67ca89SAndroid Build Coastguard Worker   V3D_CACHE_CLEAN,
65*8d67ca89SAndroid Build Coastguard Worker   V3D_CPU,
66*8d67ca89SAndroid Build Coastguard Worker };
67*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_multi_sync {
68*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
69*8d67ca89SAndroid Build Coastguard Worker   __u64 in_syncs;
70*8d67ca89SAndroid Build Coastguard Worker   __u64 out_syncs;
71*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync_count;
72*8d67ca89SAndroid Build Coastguard Worker   __u32 out_sync_count;
73*8d67ca89SAndroid Build Coastguard Worker   __u32 wait_stage;
74*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
75*8d67ca89SAndroid Build Coastguard Worker };
76*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_submit_cl {
77*8d67ca89SAndroid Build Coastguard Worker   __u32 bcl_start;
78*8d67ca89SAndroid Build Coastguard Worker   __u32 bcl_end;
79*8d67ca89SAndroid Build Coastguard Worker   __u32 rcl_start;
80*8d67ca89SAndroid Build Coastguard Worker   __u32 rcl_end;
81*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync_bcl;
82*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync_rcl;
83*8d67ca89SAndroid Build Coastguard Worker   __u32 out_sync;
84*8d67ca89SAndroid Build Coastguard Worker   __u32 qma;
85*8d67ca89SAndroid Build Coastguard Worker   __u32 qms;
86*8d67ca89SAndroid Build Coastguard Worker   __u32 qts;
87*8d67ca89SAndroid Build Coastguard Worker   __u64 bo_handles;
88*8d67ca89SAndroid Build Coastguard Worker   __u32 bo_handle_count;
89*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
90*8d67ca89SAndroid Build Coastguard Worker   __u32 perfmon_id;
91*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
92*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
93*8d67ca89SAndroid Build Coastguard Worker };
94*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_wait_bo {
95*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
96*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
97*8d67ca89SAndroid Build Coastguard Worker   __u64 timeout_ns;
98*8d67ca89SAndroid Build Coastguard Worker };
99*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_create_bo {
100*8d67ca89SAndroid Build Coastguard Worker   __u32 size;
101*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
102*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
103*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
104*8d67ca89SAndroid Build Coastguard Worker };
105*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_mmap_bo {
106*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
107*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
108*8d67ca89SAndroid Build Coastguard Worker   __u64 offset;
109*8d67ca89SAndroid Build Coastguard Worker };
110*8d67ca89SAndroid Build Coastguard Worker enum drm_v3d_param {
111*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_UIFCFG,
112*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_HUB_IDENT1,
113*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_HUB_IDENT2,
114*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_HUB_IDENT3,
115*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_CORE0_IDENT0,
116*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_CORE0_IDENT1,
117*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_V3D_CORE0_IDENT2,
118*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_TFU,
119*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_CSD,
120*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
121*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_PERFMON,
122*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
123*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_SUPPORTS_CPU_QUEUE,
124*8d67ca89SAndroid Build Coastguard Worker   DRM_V3D_PARAM_MAX_PERF_COUNTERS,
125*8d67ca89SAndroid Build Coastguard Worker };
126*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_get_param {
127*8d67ca89SAndroid Build Coastguard Worker   __u32 param;
128*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
129*8d67ca89SAndroid Build Coastguard Worker   __u64 value;
130*8d67ca89SAndroid Build Coastguard Worker };
131*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_get_bo_offset {
132*8d67ca89SAndroid Build Coastguard Worker   __u32 handle;
133*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
134*8d67ca89SAndroid Build Coastguard Worker };
135*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_submit_tfu {
136*8d67ca89SAndroid Build Coastguard Worker   __u32 icfg;
137*8d67ca89SAndroid Build Coastguard Worker   __u32 iia;
138*8d67ca89SAndroid Build Coastguard Worker   __u32 iis;
139*8d67ca89SAndroid Build Coastguard Worker   __u32 ica;
140*8d67ca89SAndroid Build Coastguard Worker   __u32 iua;
141*8d67ca89SAndroid Build Coastguard Worker   __u32 ioa;
142*8d67ca89SAndroid Build Coastguard Worker   __u32 ios;
143*8d67ca89SAndroid Build Coastguard Worker   __u32 coef[4];
144*8d67ca89SAndroid Build Coastguard Worker   __u32 bo_handles[4];
145*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync;
146*8d67ca89SAndroid Build Coastguard Worker   __u32 out_sync;
147*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
148*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
149*8d67ca89SAndroid Build Coastguard Worker   struct {
150*8d67ca89SAndroid Build Coastguard Worker     __u32 ioc;
151*8d67ca89SAndroid Build Coastguard Worker     __u32 pad;
152*8d67ca89SAndroid Build Coastguard Worker   } v71;
153*8d67ca89SAndroid Build Coastguard Worker };
154*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_submit_csd {
155*8d67ca89SAndroid Build Coastguard Worker   __u32 cfg[7];
156*8d67ca89SAndroid Build Coastguard Worker   __u32 coef[4];
157*8d67ca89SAndroid Build Coastguard Worker   __u64 bo_handles;
158*8d67ca89SAndroid Build Coastguard Worker   __u32 bo_handle_count;
159*8d67ca89SAndroid Build Coastguard Worker   __u32 in_sync;
160*8d67ca89SAndroid Build Coastguard Worker   __u32 out_sync;
161*8d67ca89SAndroid Build Coastguard Worker   __u32 perfmon_id;
162*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
163*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
164*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
165*8d67ca89SAndroid Build Coastguard Worker };
166*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_indirect_csd {
167*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
168*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_submit_csd submit;
169*8d67ca89SAndroid Build Coastguard Worker   __u32 indirect;
170*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
171*8d67ca89SAndroid Build Coastguard Worker   __u32 wg_size;
172*8d67ca89SAndroid Build Coastguard Worker   __u32 wg_uniform_offsets[3];
173*8d67ca89SAndroid Build Coastguard Worker };
174*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_timestamp_query {
175*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
176*8d67ca89SAndroid Build Coastguard Worker   __u64 offsets;
177*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
178*8d67ca89SAndroid Build Coastguard Worker   __u32 count;
179*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
180*8d67ca89SAndroid Build Coastguard Worker };
181*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_reset_timestamp_query {
182*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
183*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
184*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
185*8d67ca89SAndroid Build Coastguard Worker   __u32 count;
186*8d67ca89SAndroid Build Coastguard Worker };
187*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_copy_timestamp_query {
188*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
189*8d67ca89SAndroid Build Coastguard Worker   __u8 do_64bit;
190*8d67ca89SAndroid Build Coastguard Worker   __u8 do_partial;
191*8d67ca89SAndroid Build Coastguard Worker   __u8 availability_bit;
192*8d67ca89SAndroid Build Coastguard Worker   __u8 pad;
193*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
194*8d67ca89SAndroid Build Coastguard Worker   __u32 stride;
195*8d67ca89SAndroid Build Coastguard Worker   __u32 count;
196*8d67ca89SAndroid Build Coastguard Worker   __u64 offsets;
197*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
198*8d67ca89SAndroid Build Coastguard Worker };
199*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_reset_performance_query {
200*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
201*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
202*8d67ca89SAndroid Build Coastguard Worker   __u32 count;
203*8d67ca89SAndroid Build Coastguard Worker   __u32 nperfmons;
204*8d67ca89SAndroid Build Coastguard Worker   __u64 kperfmon_ids;
205*8d67ca89SAndroid Build Coastguard Worker };
206*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_copy_performance_query {
207*8d67ca89SAndroid Build Coastguard Worker   struct drm_v3d_extension base;
208*8d67ca89SAndroid Build Coastguard Worker   __u8 do_64bit;
209*8d67ca89SAndroid Build Coastguard Worker   __u8 do_partial;
210*8d67ca89SAndroid Build Coastguard Worker   __u8 availability_bit;
211*8d67ca89SAndroid Build Coastguard Worker   __u8 pad;
212*8d67ca89SAndroid Build Coastguard Worker   __u32 offset;
213*8d67ca89SAndroid Build Coastguard Worker   __u32 stride;
214*8d67ca89SAndroid Build Coastguard Worker   __u32 nperfmons;
215*8d67ca89SAndroid Build Coastguard Worker   __u32 ncounters;
216*8d67ca89SAndroid Build Coastguard Worker   __u32 count;
217*8d67ca89SAndroid Build Coastguard Worker   __u64 syncs;
218*8d67ca89SAndroid Build Coastguard Worker   __u64 kperfmon_ids;
219*8d67ca89SAndroid Build Coastguard Worker };
220*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_submit_cpu {
221*8d67ca89SAndroid Build Coastguard Worker   __u64 bo_handles;
222*8d67ca89SAndroid Build Coastguard Worker   __u32 bo_handle_count;
223*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
224*8d67ca89SAndroid Build Coastguard Worker   __u64 extensions;
225*8d67ca89SAndroid Build Coastguard Worker };
226*8d67ca89SAndroid Build Coastguard Worker enum {
227*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
228*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_FEP_VALID_PRIMS,
229*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
230*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_FEP_VALID_QUADS,
231*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
232*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
233*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
234*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_ZERO_COV,
235*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
236*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_QUADS_WRITTEN,
237*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
238*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_PRIM_CLIP,
239*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_PRIM_REV,
240*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_IDLE_CYCLES,
241*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
242*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
243*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
244*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
245*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
246*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
247*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_IC_HIT,
248*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_IC_MISS,
249*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_UC_HIT,
250*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_UC_MISS,
251*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_TCACHE_ACCESS,
252*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_TCACHE_MISS,
253*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_VPM_VDW_STALL,
254*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_VPM_VCD_STALL,
255*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_BIN_ACTIVE,
256*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_RDR_ACTIVE,
257*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_HITS,
258*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_MISSES,
259*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_CYCLE_COUNT,
260*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
261*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
262*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_PRIMS_BINNED,
263*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITES_WATCH_0,
264*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READS_WATCH_0,
265*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
266*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
267*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
268*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
269*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITES_WATCH_1,
270*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READS_WATCH_1,
271*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
272*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
273*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
274*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
275*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_PARTIAL_QUADS,
276*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_CONFIG_ACCESSES,
277*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_NO_ID_STALL,
278*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_COM_QUE_STALL,
279*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMU_WRITES,
280*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_ACTIVE_CYCLES,
281*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_STALLED_CYCLES,
282*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_CLE_ACTIVE,
283*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMU_READS,
284*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_CLE_READS,
285*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_VCD_READS,
286*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMUCFG_READS,
287*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC0_READS,
288*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC1_READS,
289*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC2_READS,
290*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMU_W_MISSES,
291*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMU_R_MISSES,
292*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_CLE_MISSES,
293*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_VCD_MISSES,
294*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_TMUCFG_MISSES,
295*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC0_MISSES,
296*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC1_MISSES,
297*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_SLC2_MISSES,
298*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_CORE_MEM_WRITES,
299*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_MEM_WRITES,
300*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_MEM_WRITES,
301*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_MEM_WRITES,
302*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_CORE_MEM_READS,
303*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_L2T_MEM_READS,
304*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_MEM_READS,
305*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PSE_MEM_READS,
306*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_MEM_READS,
307*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_GMP_MEM_READS,
308*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PTB_W_MEM_WORDS,
309*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_W_MEM_WORDS,
310*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_PSE_R_MEM_WORDS,
311*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TLB_R_MEM_WORDS,
312*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_TMU_MRU_HITS,
313*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_COMPUTE_ACTIVE,
314*8d67ca89SAndroid Build Coastguard Worker   V3D_PERFCNT_NUM,
315*8d67ca89SAndroid Build Coastguard Worker };
316*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_MAX_PERF_COUNTERS 32
317*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_perfmon_create {
318*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
319*8d67ca89SAndroid Build Coastguard Worker   __u32 ncounters;
320*8d67ca89SAndroid Build Coastguard Worker   __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
321*8d67ca89SAndroid Build Coastguard Worker };
322*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_perfmon_destroy {
323*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
324*8d67ca89SAndroid Build Coastguard Worker };
325*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_perfmon_get_values {
326*8d67ca89SAndroid Build Coastguard Worker   __u32 id;
327*8d67ca89SAndroid Build Coastguard Worker   __u32 pad;
328*8d67ca89SAndroid Build Coastguard Worker   __u64 values_ptr;
329*8d67ca89SAndroid Build Coastguard Worker };
330*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFCNT_MAX_NAME 64
331*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFCNT_MAX_CATEGORY 32
332*8d67ca89SAndroid Build Coastguard Worker #define DRM_V3D_PERFCNT_MAX_DESCRIPTION 256
333*8d67ca89SAndroid Build Coastguard Worker struct drm_v3d_perfmon_get_counter {
334*8d67ca89SAndroid Build Coastguard Worker   __u8 counter;
335*8d67ca89SAndroid Build Coastguard Worker   __u8 name[DRM_V3D_PERFCNT_MAX_NAME];
336*8d67ca89SAndroid Build Coastguard Worker   __u8 category[DRM_V3D_PERFCNT_MAX_CATEGORY];
337*8d67ca89SAndroid Build Coastguard Worker   __u8 description[DRM_V3D_PERFCNT_MAX_DESCRIPTION];
338*8d67ca89SAndroid Build Coastguard Worker   __u8 reserved[7];
339*8d67ca89SAndroid Build Coastguard Worker };
340*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus
341*8d67ca89SAndroid Build Coastguard Worker }
342*8d67ca89SAndroid Build Coastguard Worker #endif
343*8d67ca89SAndroid Build Coastguard Worker #endif
344