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