123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- #ifndef _KGSL_DRM_H_
- #define _KGSL_DRM_H_
- #include "drm.h"
- #define DRM_KGSL_GEM_CREATE 0x00
- #define DRM_KGSL_GEM_PREP 0x01
- #define DRM_KGSL_GEM_SETMEMTYPE 0x02
- #define DRM_KGSL_GEM_GETMEMTYPE 0x03
- #define DRM_KGSL_GEM_MMAP 0x04
- #define DRM_KGSL_GEM_ALLOC 0x05
- #define DRM_KGSL_GEM_BIND_GPU 0x06
- #define DRM_KGSL_GEM_UNBIND_GPU 0x07
- #define DRM_KGSL_GEM_GET_BUFINFO 0x08
- #define DRM_KGSL_GEM_SET_BUFCOUNT 0x09
- #define DRM_KGSL_GEM_SET_ACTIVE 0x0A
- #define DRM_KGSL_GEM_LOCK_HANDLE 0x0B
- #define DRM_KGSL_GEM_UNLOCK_HANDLE 0x0C
- #define DRM_KGSL_GEM_UNLOCK_ON_TS 0x0D
- #define DRM_KGSL_GEM_CREATE_FD 0x0E
- #define DRM_KGSL_GEM_GET_ION_FD 0x0F
- #define DRM_KGSL_GEM_CREATE_FROM_ION 0x10
- #define DRM_KGSL_GEM_SET_GLOCK_HANDLES_INFO 0x11
- #define DRM_KGSL_GEM_GET_GLOCK_HANDLES_INFO 0x12
- #define DRM_KGSL_GEM_GET_BUFCOUNT 0x13
- #define DRM_IOCTL_KGSL_GEM_CREATE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE, struct drm_kgsl_gem_create)
- #define DRM_IOCTL_KGSL_GEM_PREP \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_PREP, struct drm_kgsl_gem_prep)
- #define DRM_IOCTL_KGSL_GEM_SETMEMTYPE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SETMEMTYPE, \
- struct drm_kgsl_gem_memtype)
- #define DRM_IOCTL_KGSL_GEM_GETMEMTYPE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GETMEMTYPE, \
- struct drm_kgsl_gem_memtype)
- #define DRM_IOCTL_KGSL_GEM_MMAP \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_MMAP, struct drm_kgsl_gem_mmap)
- #define DRM_IOCTL_KGSL_GEM_ALLOC \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_ALLOC, struct drm_kgsl_gem_alloc)
- #define DRM_IOCTL_KGSL_GEM_BIND_GPU \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_BIND_GPU, struct drm_kgsl_gem_bind_gpu)
- #define DRM_IOCTL_KGSL_GEM_UNBIND_GPU \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNBIND_GPU, \
- struct drm_kgsl_gem_bind_gpu)
- #define DRM_IOCTL_KGSL_GEM_GET_BUFINFO \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFINFO, \
- struct drm_kgsl_gem_bufinfo)
- #define DRM_IOCTL_KGSL_GEM_SET_BUFCOUNT \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_BUFCOUNT, \
- struct drm_kgsl_gem_bufcount)
- #define DRM_IOCTL_KGSL_GEM_GET_BUFCOUNT \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_BUFCOUNT, \
- struct drm_kgsl_gem_bufcount)
- #define DRM_IOCTL_KGSL_GEM_SET_ACTIVE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_ACTIVE, \
- struct drm_kgsl_gem_active)
- #define DRM_IOCTL_KGSL_GEM_LOCK_HANDLE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_LOCK_HANDLE, \
- struct drm_kgsl_gem_lock_handles)
- #define DRM_IOCTL_KGSL_GEM_UNLOCK_HANDLE \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_HANDLE, \
- struct drm_kgsl_gem_unlock_handles)
- #define DRM_IOCTL_KGSL_GEM_UNLOCK_ON_TS \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_UNLOCK_ON_TS, \
- struct drm_kgsl_gem_unlock_on_ts)
- #define DRM_IOCTL_KGSL_GEM_CREATE_FD \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FD, \
- struct drm_kgsl_gem_create_fd)
- #define DRM_IOCTL_KGSL_GEM_GET_ION_FD \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_ION_FD, \
- struct drm_kgsl_gem_get_ion_fd)
- #define DRM_IOCTL_KGSL_GEM_CREATE_FROM_ION \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_CREATE_FROM_ION, \
- struct drm_kgsl_gem_create_from_ion)
- #define DRM_IOCTL_KGSL_GEM_SET_GLOCK_HANDLES_INFO \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_SET_GLOCK_HANDLES_INFO, \
- struct drm_kgsl_gem_glockinfo)
- #define DRM_IOCTL_KGSL_GEM_GET_GLOCK_HANDLES_INFO \
- DRM_IOWR(DRM_COMMAND_BASE + DRM_KGSL_GEM_GET_GLOCK_HANDLES_INFO, \
- struct drm_kgsl_gem_glockinfo)
- /* Maximum number of sub buffers per GEM object */
- #define DRM_KGSL_GEM_MAX_BUFFERS 3
- /* Memory types - these define the source and caching policies
- of the GEM memory chunk */
- /* Legacy definitions left for compatability */
- #define DRM_KGSL_GEM_TYPE_EBI 0
- #define DRM_KGSL_GEM_TYPE_SMI 1
- #define DRM_KGSL_GEM_TYPE_KMEM 2
- #define DRM_KGSL_GEM_TYPE_KMEM_NOCACHE 3
- #define DRM_KGSL_GEM_TYPE_MEM_MASK 0xF
- /* Contiguous memory (PMEM) */
- #define DRM_KGSL_GEM_TYPE_PMEM 0x000100
- /* PMEM memory types */
- #define DRM_KGSL_GEM_PMEM_EBI 0x001000
- #define DRM_KGSL_GEM_PMEM_SMI 0x002000
- /* Standard paged memory */
- #define DRM_KGSL_GEM_TYPE_MEM 0x010000
- /* Caching controls */
- #define DRM_KGSL_GEM_CACHE_NONE 0x000000
- #define DRM_KGSL_GEM_CACHE_WCOMBINE 0x100000
- #define DRM_KGSL_GEM_CACHE_WTHROUGH 0x200000
- #define DRM_KGSL_GEM_CACHE_WBACK 0x400000
- #define DRM_KGSL_GEM_CACHE_WBACKWA 0x800000
- #define DRM_KGSL_GEM_CACHE_MASK 0xF00000
- /* FD based objects */
- #define DRM_KGSL_GEM_TYPE_FD_FBMEM 0x1000000
- #define DRM_KGSL_GEM_TYPE_FD_MASK 0xF000000
- /* Timestamp types */
- #define DRM_KGSL_GEM_TS_3D 0x00000430
- #define DRM_KGSL_GEM_TS_2D 0x00000180
- struct drm_kgsl_gem_create {
- uint32_t size;
- uint32_t handle;
- };
- struct drm_kgsl_gem_prep {
- uint32_t handle;
- uint32_t phys;
- uint64_t offset;
- };
- struct drm_kgsl_gem_memtype {
- uint32_t handle;
- uint32_t type;
- };
- struct drm_kgsl_gem_mmap {
- uint32_t handle;
- uint32_t size;
- uint32_t hostptr;
- uint64_t offset;
- };
- struct drm_kgsl_gem_alloc {
- uint32_t handle;
- uint64_t offset;
- };
- struct drm_kgsl_gem_bind_gpu {
- uint32_t handle;
- uint32_t gpuptr;
- };
- struct drm_kgsl_gem_bufinfo {
- uint32_t handle;
- uint32_t count;
- uint32_t active;
- uint32_t offset[DRM_KGSL_GEM_MAX_BUFFERS];
- uint32_t gpuaddr[DRM_KGSL_GEM_MAX_BUFFERS];
- };
- struct drm_kgsl_gem_glockinfo {
- uint32_t handle;
- int glockhandle[DRM_KGSL_GEM_MAX_BUFFERS];
- };
- struct drm_kgsl_gem_bufcount {
- uint32_t handle;
- uint32_t bufcount;
- };
- struct drm_kgsl_gem_active {
- uint32_t handle;
- uint32_t active;
- };
- struct drm_kgsl_gem_lock_handles {
- uint32_t num_handles;
- uint32_t *handle_list;
- uint32_t pid;
- uint32_t lock_id; /* Returned lock id used for unlocking */
- };
- struct drm_kgsl_gem_unlock_handles {
- uint32_t lock_id;
- };
- struct drm_kgsl_gem_unlock_on_ts {
- uint32_t lock_id;
- uint32_t timestamp; /* This field is a hw generated ts */
- uint32_t type; /* Which pipe to check for ts generation */
- };
- struct drm_kgsl_gem_create_fd {
- uint32_t fd;
- uint32_t handle;
- };
- struct drm_kgsl_gem_get_ion_fd {
- uint32_t ion_fd;
- uint32_t handle;
- };
- struct drm_kgsl_gem_create_from_ion {
- uint32_t ion_fd;
- uint32_t handle;
- };
- #endif
|