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 __MSM_DRM_H__ 8*8d67ca89SAndroid Build Coastguard Worker #define __MSM_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 MSM_PIPE_NONE 0x00 14*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_2D0 0x01 15*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_2D1 0x02 16*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_3D0 0x10 17*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_ID_MASK 0xffff 18*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_ID(x) ((x) & MSM_PIPE_ID_MASK) 19*8d67ca89SAndroid Build Coastguard Worker #define MSM_PIPE_FLAGS(x) ((x) & ~MSM_PIPE_ID_MASK) 20*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_timespec { 21*8d67ca89SAndroid Build Coastguard Worker __s64 tv_sec; 22*8d67ca89SAndroid Build Coastguard Worker __s64 tv_nsec; 23*8d67ca89SAndroid Build Coastguard Worker }; 24*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GPU_ID 0x01 25*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GMEM_SIZE 0x02 26*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_CHIP_ID 0x03 27*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_MAX_FREQ 0x04 28*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_TIMESTAMP 0x05 29*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_GMEM_BASE 0x06 30*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_PRIORITIES 0x07 31*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_PP_PGTABLE 0x08 32*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_FAULTS 0x09 33*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_SUSPENDS 0x0a 34*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_SYSPROF 0x0b 35*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_COMM 0x0c 36*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_CMDLINE 0x0d 37*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_VA_START 0x0e 38*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_VA_SIZE 0x0f 39*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_HIGHEST_BANK_BIT 0x10 40*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_RAYTRACING 0x11 41*8d67ca89SAndroid Build Coastguard Worker #define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES 42*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_param { 43*8d67ca89SAndroid Build Coastguard Worker __u32 pipe; 44*8d67ca89SAndroid Build Coastguard Worker __u32 param; 45*8d67ca89SAndroid Build Coastguard Worker __u64 value; 46*8d67ca89SAndroid Build Coastguard Worker __u32 len; 47*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 48*8d67ca89SAndroid Build Coastguard Worker }; 49*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_SCANOUT 0x00000001 50*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_GPU_READONLY 0x00000002 51*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHE_MASK 0x000f0000 52*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHED 0x00010000 53*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_WC 0x00020000 54*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_UNCACHED 0x00040000 55*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_CACHED_COHERENT 0x080000 56*8d67ca89SAndroid Build Coastguard Worker #define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK) 57*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_new { 58*8d67ca89SAndroid Build Coastguard Worker __u64 size; 59*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 60*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 61*8d67ca89SAndroid Build Coastguard Worker }; 62*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_OFFSET 0x00 63*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_IOVA 0x01 64*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_NAME 0x02 65*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_NAME 0x03 66*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_IOVA 0x04 67*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_FLAGS 0x05 68*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_SET_METADATA 0x06 69*8d67ca89SAndroid Build Coastguard Worker #define MSM_INFO_GET_METADATA 0x07 70*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_info { 71*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 72*8d67ca89SAndroid Build Coastguard Worker __u32 info; 73*8d67ca89SAndroid Build Coastguard Worker __u64 value; 74*8d67ca89SAndroid Build Coastguard Worker __u32 len; 75*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 76*8d67ca89SAndroid Build Coastguard Worker }; 77*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_READ 0x01 78*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_WRITE 0x02 79*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_NOSYNC 0x04 80*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_BOOST 0x08 81*8d67ca89SAndroid Build Coastguard Worker #define MSM_PREP_FLAGS (MSM_PREP_READ | MSM_PREP_WRITE | MSM_PREP_NOSYNC | MSM_PREP_BOOST | 0) 82*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_cpu_prep { 83*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 84*8d67ca89SAndroid Build Coastguard Worker __u32 op; 85*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_timespec timeout; 86*8d67ca89SAndroid Build Coastguard Worker }; 87*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_cpu_fini { 88*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 89*8d67ca89SAndroid Build Coastguard Worker }; 90*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_reloc { 91*8d67ca89SAndroid Build Coastguard Worker __u32 submit_offset; 92*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus 93*8d67ca89SAndroid Build Coastguard Worker __u32 _or; 94*8d67ca89SAndroid Build Coastguard Worker #else 95*8d67ca89SAndroid Build Coastguard Worker __u32 or; 96*8d67ca89SAndroid Build Coastguard Worker #endif 97*8d67ca89SAndroid Build Coastguard Worker __s32 shift; 98*8d67ca89SAndroid Build Coastguard Worker __u32 reloc_idx; 99*8d67ca89SAndroid Build Coastguard Worker __u64 reloc_offset; 100*8d67ca89SAndroid Build Coastguard Worker }; 101*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_BUF 0x0001 102*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_IB_TARGET_BUF 0x0002 103*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_CMD_CTX_RESTORE_BUF 0x0003 104*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_cmd { 105*8d67ca89SAndroid Build Coastguard Worker __u32 type; 106*8d67ca89SAndroid Build Coastguard Worker __u32 submit_idx; 107*8d67ca89SAndroid Build Coastguard Worker __u32 submit_offset; 108*8d67ca89SAndroid Build Coastguard Worker __u32 size; 109*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 110*8d67ca89SAndroid Build Coastguard Worker __u32 nr_relocs; 111*8d67ca89SAndroid Build Coastguard Worker __u64 relocs; 112*8d67ca89SAndroid Build Coastguard Worker }; 113*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_READ 0x0001 114*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_WRITE 0x0002 115*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_DUMP 0x0004 116*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_NO_IMPLICIT 0x0008 117*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_BO_FLAGS (MSM_SUBMIT_BO_READ | MSM_SUBMIT_BO_WRITE | MSM_SUBMIT_BO_DUMP | MSM_SUBMIT_BO_NO_IMPLICIT) 118*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_bo { 119*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 120*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 121*8d67ca89SAndroid Build Coastguard Worker __u64 presumed; 122*8d67ca89SAndroid Build Coastguard Worker }; 123*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_NO_IMPLICIT 0x80000000 124*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_FD_IN 0x40000000 125*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_FD_OUT 0x20000000 126*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SUDO 0x10000000 127*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_IN 0x08000000 128*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_OUT 0x04000000 129*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FENCE_SN_IN 0x02000000 130*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_FLAGS (MSM_SUBMIT_NO_IMPLICIT | MSM_SUBMIT_FENCE_FD_IN | MSM_SUBMIT_FENCE_FD_OUT | MSM_SUBMIT_SUDO | MSM_SUBMIT_SYNCOBJ_IN | MSM_SUBMIT_SYNCOBJ_OUT | MSM_SUBMIT_FENCE_SN_IN | 0) 131*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_RESET 0x00000001 132*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMIT_SYNCOBJ_FLAGS (MSM_SUBMIT_SYNCOBJ_RESET | 0) 133*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit_syncobj { 134*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 135*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 136*8d67ca89SAndroid Build Coastguard Worker __u64 point; 137*8d67ca89SAndroid Build Coastguard Worker }; 138*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_submit { 139*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 140*8d67ca89SAndroid Build Coastguard Worker __u32 fence; 141*8d67ca89SAndroid Build Coastguard Worker __u32 nr_bos; 142*8d67ca89SAndroid Build Coastguard Worker __u32 nr_cmds; 143*8d67ca89SAndroid Build Coastguard Worker __u64 bos; 144*8d67ca89SAndroid Build Coastguard Worker __u64 cmds; 145*8d67ca89SAndroid Build Coastguard Worker __s32 fence_fd; 146*8d67ca89SAndroid Build Coastguard Worker __u32 queueid; 147*8d67ca89SAndroid Build Coastguard Worker __u64 in_syncobjs; 148*8d67ca89SAndroid Build Coastguard Worker __u64 out_syncobjs; 149*8d67ca89SAndroid Build Coastguard Worker __u32 nr_in_syncobjs; 150*8d67ca89SAndroid Build Coastguard Worker __u32 nr_out_syncobjs; 151*8d67ca89SAndroid Build Coastguard Worker __u32 syncobj_stride; 152*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 153*8d67ca89SAndroid Build Coastguard Worker }; 154*8d67ca89SAndroid Build Coastguard Worker #define MSM_WAIT_FENCE_BOOST 0x00000001 155*8d67ca89SAndroid Build Coastguard Worker #define MSM_WAIT_FENCE_FLAGS (MSM_WAIT_FENCE_BOOST | 0) 156*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_wait_fence { 157*8d67ca89SAndroid Build Coastguard Worker __u32 fence; 158*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 159*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_timespec timeout; 160*8d67ca89SAndroid Build Coastguard Worker __u32 queueid; 161*8d67ca89SAndroid Build Coastguard Worker }; 162*8d67ca89SAndroid Build Coastguard Worker #define MSM_MADV_WILLNEED 0 163*8d67ca89SAndroid Build Coastguard Worker #define MSM_MADV_DONTNEED 1 164*8d67ca89SAndroid Build Coastguard Worker #define __MSM_MADV_PURGED 2 165*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_gem_madvise { 166*8d67ca89SAndroid Build Coastguard Worker __u32 handle; 167*8d67ca89SAndroid Build Coastguard Worker __u32 madv; 168*8d67ca89SAndroid Build Coastguard Worker __u32 retained; 169*8d67ca89SAndroid Build Coastguard Worker }; 170*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMITQUEUE_FLAGS (0) 171*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_submitqueue { 172*8d67ca89SAndroid Build Coastguard Worker __u32 flags; 173*8d67ca89SAndroid Build Coastguard Worker __u32 prio; 174*8d67ca89SAndroid Build Coastguard Worker __u32 id; 175*8d67ca89SAndroid Build Coastguard Worker }; 176*8d67ca89SAndroid Build Coastguard Worker #define MSM_SUBMITQUEUE_PARAM_FAULTS 0 177*8d67ca89SAndroid Build Coastguard Worker struct drm_msm_submitqueue_query { 178*8d67ca89SAndroid Build Coastguard Worker __u64 data; 179*8d67ca89SAndroid Build Coastguard Worker __u32 id; 180*8d67ca89SAndroid Build Coastguard Worker __u32 param; 181*8d67ca89SAndroid Build Coastguard Worker __u32 len; 182*8d67ca89SAndroid Build Coastguard Worker __u32 pad; 183*8d67ca89SAndroid Build Coastguard Worker }; 184*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GET_PARAM 0x00 185*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SET_PARAM 0x01 186*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_NEW 0x02 187*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_INFO 0x03 188*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_CPU_PREP 0x04 189*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_CPU_FINI 0x05 190*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_SUBMIT 0x06 191*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_WAIT_FENCE 0x07 192*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_GEM_MADVISE 0x08 193*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_NEW 0x0A 194*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_CLOSE 0x0B 195*8d67ca89SAndroid Build Coastguard Worker #define DRM_MSM_SUBMITQUEUE_QUERY 0x0C 196*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param) 197*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SET_PARAM DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SET_PARAM, struct drm_msm_param) 198*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new) 199*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info) 200*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_CPU_PREP DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_PREP, struct drm_msm_gem_cpu_prep) 201*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_CPU_FINI DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_GEM_CPU_FINI, struct drm_msm_gem_cpu_fini) 202*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_SUBMIT, struct drm_msm_gem_submit) 203*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_WAIT_FENCE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_WAIT_FENCE, struct drm_msm_wait_fence) 204*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_GEM_MADVISE DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise) 205*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_NEW DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue) 206*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32) 207*8d67ca89SAndroid Build Coastguard Worker #define DRM_IOCTL_MSM_SUBMITQUEUE_QUERY DRM_IOW(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_QUERY, struct drm_msm_submitqueue_query) 208*8d67ca89SAndroid Build Coastguard Worker #ifdef __cplusplus 209*8d67ca89SAndroid Build Coastguard Worker } 210*8d67ca89SAndroid Build Coastguard Worker #endif 211*8d67ca89SAndroid Build Coastguard Worker #endif 212