1*7688df22SAndroid Build Coastguard Worker #ifndef _KGSL_DRM_H_ 2*7688df22SAndroid Build Coastguard Worker #define _KGSL_DRM_H_ 3*7688df22SAndroid Build Coastguard Worker 4*7688df22SAndroid Build Coastguard Worker #include "drm.h" 5*7688df22SAndroid Build Coastguard Worker 6*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CREATE 0x00 7*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_PREP 0x01 8*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_SETMEMTYPE 0x02 9*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_GETMEMTYPE 0x03 10*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_MMAP 0x04 11*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_ALLOC 0x05 12*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_BIND_GPU 0x06 13*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_UNBIND_GPU 0x07 14*7688df22SAndroid Build Coastguard Worker 15*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_GET_BUFINFO 0x08 16*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_SET_BUFCOUNT 0x09 17*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_SET_ACTIVE 0x0A 18*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_LOCK_HANDLE 0x0B 19*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_UNLOCK_HANDLE 0x0C 20*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_UNLOCK_ON_TS 0x0D 21*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CREATE_FD 0x0E 22*7688df22SAndroid Build Coastguard Worker 23*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_CREATE \ 24*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE, struct drm_kgsl_gem_create) 25*7688df22SAndroid Build Coastguard Worker 26*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_PREP \ 27*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_PREP, struct drm_kgsl_gem_prep) 28*7688df22SAndroid Build Coastguard Worker 29*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_SETMEMTYPE \ 30*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SETMEMTYPE, \ 31*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_memtype) 32*7688df22SAndroid Build Coastguard Worker 33*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_GETMEMTYPE \ 34*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GETMEMTYPE, \ 35*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_memtype) 36*7688df22SAndroid Build Coastguard Worker 37*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_MMAP \ 38*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_MMAP, struct drm_kgsl_gem_mmap) 39*7688df22SAndroid Build Coastguard Worker 40*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_ALLOC \ 41*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_ALLOC, struct drm_kgsl_gem_alloc) 42*7688df22SAndroid Build Coastguard Worker 43*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_BIND_GPU \ 44*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_BIND_GPU, struct drm_kgsl_gem_bind_gpu) 45*7688df22SAndroid Build Coastguard Worker 46*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_UNBIND_GPU \ 47*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNBIND_GPU, \ 48*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bind_gpu) 49*7688df22SAndroid Build Coastguard Worker 50*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_GET_BUFINFO \ 51*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFINFO, \ 52*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bufinfo) 53*7688df22SAndroid Build Coastguard Worker 54*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_SET_BUFCOUNT \ 55*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_BUFCOUNT, \ 56*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bufcount) 57*7688df22SAndroid Build Coastguard Worker 58*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_SET_ACTIVE \ 59*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_ACTIVE, \ 60*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_active) 61*7688df22SAndroid Build Coastguard Worker 62*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_LOCK_HANDLE \ 63*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_LOCK_HANDLE, \ 64*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_lock_handles) 65*7688df22SAndroid Build Coastguard Worker 66*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_UNLOCK_HANDLE \ 67*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_HANDLE, \ 68*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_unlock_handles) 69*7688df22SAndroid Build Coastguard Worker 70*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_UNLOCK_ON_TS \ 71*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_ON_TS, \ 72*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_unlock_on_ts) 73*7688df22SAndroid Build Coastguard Worker 74*7688df22SAndroid Build Coastguard Worker #define DRM_IOCTL_KGSL_GEM_CREATE_FD \ 75*7688df22SAndroid Build Coastguard Worker DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FD, \ 76*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_create_fd) 77*7688df22SAndroid Build Coastguard Worker 78*7688df22SAndroid Build Coastguard Worker /* Maximum number of sub buffers per GEM object */ 79*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_MAX_BUFFERS 2 80*7688df22SAndroid Build Coastguard Worker 81*7688df22SAndroid Build Coastguard Worker /* Memory types - these define the source and caching policies 82*7688df22SAndroid Build Coastguard Worker of the GEM memory chunk */ 83*7688df22SAndroid Build Coastguard Worker 84*7688df22SAndroid Build Coastguard Worker /* Legacy definitions left for compatibility */ 85*7688df22SAndroid Build Coastguard Worker 86*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_EBI 0 87*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_SMI 1 88*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_KMEM 2 89*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_KMEM_NOCACHE 3 90*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_MEM_MASK 0xF 91*7688df22SAndroid Build Coastguard Worker 92*7688df22SAndroid Build Coastguard Worker /* Contiguous memory (PMEM) */ 93*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_PMEM 0x000100 94*7688df22SAndroid Build Coastguard Worker 95*7688df22SAndroid Build Coastguard Worker /* PMEM memory types */ 96*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_PMEM_EBI 0x001000 97*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_PMEM_SMI 0x002000 98*7688df22SAndroid Build Coastguard Worker 99*7688df22SAndroid Build Coastguard Worker /* Standard paged memory */ 100*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_MEM 0x010000 101*7688df22SAndroid Build Coastguard Worker 102*7688df22SAndroid Build Coastguard Worker /* Caching controls */ 103*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_NONE 0x000000 104*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_WCOMBINE 0x100000 105*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_WTHROUGH 0x200000 106*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_WBACK 0x400000 107*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_WBACKWA 0x800000 108*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_CACHE_MASK 0xF00000 109*7688df22SAndroid Build Coastguard Worker 110*7688df22SAndroid Build Coastguard Worker /* FD based objects */ 111*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_FD_FBMEM 0x1000000 112*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TYPE_FD_MASK 0xF000000 113*7688df22SAndroid Build Coastguard Worker 114*7688df22SAndroid Build Coastguard Worker /* Timestamp types */ 115*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TS_3D 0x00000430 116*7688df22SAndroid Build Coastguard Worker #define DRM_KGSL_GEM_TS_2D 0x00000180 117*7688df22SAndroid Build Coastguard Worker 118*7688df22SAndroid Build Coastguard Worker 119*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_create { 120*7688df22SAndroid Build Coastguard Worker uint32_t size; 121*7688df22SAndroid Build Coastguard Worker uint32_t handle; 122*7688df22SAndroid Build Coastguard Worker }; 123*7688df22SAndroid Build Coastguard Worker 124*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_prep { 125*7688df22SAndroid Build Coastguard Worker uint32_t handle; 126*7688df22SAndroid Build Coastguard Worker uint32_t phys; 127*7688df22SAndroid Build Coastguard Worker uint64_t offset; 128*7688df22SAndroid Build Coastguard Worker }; 129*7688df22SAndroid Build Coastguard Worker 130*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_memtype { 131*7688df22SAndroid Build Coastguard Worker uint32_t handle; 132*7688df22SAndroid Build Coastguard Worker uint32_t type; 133*7688df22SAndroid Build Coastguard Worker }; 134*7688df22SAndroid Build Coastguard Worker 135*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_mmap { 136*7688df22SAndroid Build Coastguard Worker uint32_t handle; 137*7688df22SAndroid Build Coastguard Worker uint32_t size; 138*7688df22SAndroid Build Coastguard Worker uint32_t hostptr; 139*7688df22SAndroid Build Coastguard Worker uint64_t offset; 140*7688df22SAndroid Build Coastguard Worker }; 141*7688df22SAndroid Build Coastguard Worker 142*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_alloc { 143*7688df22SAndroid Build Coastguard Worker uint32_t handle; 144*7688df22SAndroid Build Coastguard Worker uint64_t offset; 145*7688df22SAndroid Build Coastguard Worker }; 146*7688df22SAndroid Build Coastguard Worker 147*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bind_gpu { 148*7688df22SAndroid Build Coastguard Worker uint32_t handle; 149*7688df22SAndroid Build Coastguard Worker uint32_t gpuptr; 150*7688df22SAndroid Build Coastguard Worker }; 151*7688df22SAndroid Build Coastguard Worker 152*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bufinfo { 153*7688df22SAndroid Build Coastguard Worker uint32_t handle; 154*7688df22SAndroid Build Coastguard Worker uint32_t count; 155*7688df22SAndroid Build Coastguard Worker uint32_t active; 156*7688df22SAndroid Build Coastguard Worker uint32_t offset[DRM_KGSL_GEM_MAX_BUFFERS]; 157*7688df22SAndroid Build Coastguard Worker uint32_t gpuaddr[DRM_KGSL_GEM_MAX_BUFFERS]; 158*7688df22SAndroid Build Coastguard Worker }; 159*7688df22SAndroid Build Coastguard Worker 160*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_bufcount { 161*7688df22SAndroid Build Coastguard Worker uint32_t handle; 162*7688df22SAndroid Build Coastguard Worker uint32_t bufcount; 163*7688df22SAndroid Build Coastguard Worker }; 164*7688df22SAndroid Build Coastguard Worker 165*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_active { 166*7688df22SAndroid Build Coastguard Worker uint32_t handle; 167*7688df22SAndroid Build Coastguard Worker uint32_t active; 168*7688df22SAndroid Build Coastguard Worker }; 169*7688df22SAndroid Build Coastguard Worker 170*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_lock_handles { 171*7688df22SAndroid Build Coastguard Worker uint32_t num_handles; 172*7688df22SAndroid Build Coastguard Worker uint32_t *handle_list; 173*7688df22SAndroid Build Coastguard Worker uint32_t pid; 174*7688df22SAndroid Build Coastguard Worker uint32_t lock_id; /* Returned lock id used for unlocking */ 175*7688df22SAndroid Build Coastguard Worker }; 176*7688df22SAndroid Build Coastguard Worker 177*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_unlock_handles { 178*7688df22SAndroid Build Coastguard Worker uint32_t lock_id; 179*7688df22SAndroid Build Coastguard Worker }; 180*7688df22SAndroid Build Coastguard Worker 181*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_unlock_on_ts { 182*7688df22SAndroid Build Coastguard Worker uint32_t lock_id; 183*7688df22SAndroid Build Coastguard Worker uint32_t timestamp; /* This field is a hw generated ts */ 184*7688df22SAndroid Build Coastguard Worker uint32_t type; /* Which pipe to check for ts generation */ 185*7688df22SAndroid Build Coastguard Worker }; 186*7688df22SAndroid Build Coastguard Worker 187*7688df22SAndroid Build Coastguard Worker struct drm_kgsl_gem_create_fd { 188*7688df22SAndroid Build Coastguard Worker uint32_t fd; 189*7688df22SAndroid Build Coastguard Worker uint32_t handle; 190*7688df22SAndroid Build Coastguard Worker }; 191*7688df22SAndroid Build Coastguard Worker 192*7688df22SAndroid Build Coastguard Worker #endif 193