Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _MSM_KGSL_H
     13 #define _MSM_KGSL_H
     14 
     15 #define KGSL_CONTEXT_SAVE_GMEM 1
     16 #define KGSL_CONTEXT_NO_GMEM_ALLOC 2
     17 
     18 #define KGSL_FLAGS_NORMALMODE 0x00000000
     19 #define KGSL_FLAGS_SAFEMODE 0x00000001
     20 #define KGSL_FLAGS_INITIALIZED0 0x00000002
     21 #define KGSL_FLAGS_INITIALIZED 0x00000004
     22 #define KGSL_FLAGS_STARTED 0x00000008
     23 #define KGSL_FLAGS_ACTIVE 0x00000010
     24 #define KGSL_FLAGS_RESERVED0 0x00000020
     25 #define KGSL_FLAGS_RESERVED1 0x00000040
     26 #define KGSL_FLAGS_RESERVED2 0x00000080
     27 
     28 enum kgsl_deviceid {
     29  KGSL_DEVICE_ANY = 0x00000000,
     30  KGSL_DEVICE_YAMATO = 0x00000001,
     31  KGSL_DEVICE_G12 = 0x00000002,
     32  KGSL_DEVICE_MAX = 0x00000002
     33 };
     34 
     35 struct kgsl_devinfo {
     36 
     37  unsigned int device_id;
     38 
     39  unsigned int chip_id;
     40  unsigned int mmu_enabled;
     41  unsigned int gmem_gpubaseaddr;
     42 
     43  unsigned int gmem_hostbaseaddr;
     44  unsigned int gmem_sizebytes;
     45 };
     46 
     47 struct kgsl_devmemstore {
     48  volatile unsigned int soptimestamp;
     49  unsigned int sbz;
     50  volatile unsigned int eoptimestamp;
     51  unsigned int sbz2;
     52 };
     53 
     54 #define KGSL_DEVICE_MEMSTORE_OFFSET(field)   offsetof(struct kgsl_devmemstore, field)
     55 
     56 enum kgsl_timestamp_type {
     57  KGSL_TIMESTAMP_CONSUMED = 0x00000001,
     58  KGSL_TIMESTAMP_RETIRED = 0x00000002,
     59  KGSL_TIMESTAMP_MAX = 0x00000002,
     60 };
     61 
     62 enum kgsl_property_type {
     63  KGSL_PROP_DEVICE_INFO = 0x00000001,
     64  KGSL_PROP_DEVICE_SHADOW = 0x00000002,
     65  KGSL_PROP_DEVICE_POWER = 0x00000003,
     66  KGSL_PROP_SHMEM = 0x00000004,
     67  KGSL_PROP_SHMEM_APERTURES = 0x00000005,
     68  KGSL_PROP_MMU_ENABLE = 0x00000006
     69 };
     70 
     71 struct kgsl_shadowprop {
     72  unsigned int gpuaddr;
     73  unsigned int size;
     74  unsigned int flags;
     75 };
     76 
     77 #define KGSL_IOC_TYPE 0x09
     78 
     79 struct kgsl_device_getproperty {
     80  unsigned int type;
     81  void *value;
     82  unsigned int sizebytes;
     83 };
     84 
     85 #define IOCTL_KGSL_DEVICE_GETPROPERTY   _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
     86 
     87 struct kgsl_device_regread {
     88  unsigned int offsetwords;
     89  unsigned int value;
     90 };
     91 
     92 #define IOCTL_KGSL_DEVICE_REGREAD   _IOWR(KGSL_IOC_TYPE, 0x3, struct kgsl_device_regread)
     93 
     94 struct kgsl_device_waittimestamp {
     95  unsigned int timestamp;
     96  unsigned int timeout;
     97 };
     98 
     99 #define IOCTL_KGSL_DEVICE_WAITTIMESTAMP   _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
    100 
    101 struct kgsl_ringbuffer_issueibcmds {
    102  unsigned int drawctxt_id;
    103  unsigned int ibaddr;
    104  unsigned int sizedwords;
    105  unsigned int timestamp;
    106  unsigned int flags;
    107 };
    108 
    109 #define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS   _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
    110 
    111 struct kgsl_cmdstream_readtimestamp {
    112  unsigned int type;
    113  unsigned int timestamp;
    114 };
    115 
    116 #define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP   _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
    117 
    118 struct kgsl_cmdstream_freememontimestamp {
    119  unsigned int gpuaddr;
    120  unsigned int type;
    121  unsigned int timestamp;
    122 };
    123 
    124 #define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP   _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
    125 
    126 struct kgsl_drawctxt_create {
    127  unsigned int flags;
    128  unsigned int drawctxt_id;
    129 };
    130 
    131 #define IOCTL_KGSL_DRAWCTXT_CREATE   _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
    132 
    133 struct kgsl_drawctxt_destroy {
    134  unsigned int drawctxt_id;
    135 };
    136 
    137 #define IOCTL_KGSL_DRAWCTXT_DESTROY   _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
    138 
    139 struct kgsl_sharedmem_from_pmem {
    140  int pmem_fd;
    141  unsigned int gpuaddr;
    142  unsigned int len;
    143  unsigned int offset;
    144 };
    145 
    146 #define IOCTL_KGSL_SHAREDMEM_FROM_PMEM   _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
    147 
    148 struct kgsl_sharedmem_free {
    149  unsigned int gpuaddr;
    150 };
    151 
    152 #define IOCTL_KGSL_SHAREDMEM_FREE   _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
    153 
    154 struct kgsl_gmem_desc {
    155  unsigned int x;
    156  unsigned int y;
    157  unsigned int width;
    158  unsigned int height;
    159  unsigned int pitch;
    160 };
    161 
    162 struct kgsl_buffer_desc {
    163  void *hostptr;
    164  unsigned int gpuaddr;
    165  int size;
    166  unsigned int format;
    167  unsigned int pitch;
    168  unsigned int enabled;
    169 };
    170 
    171 struct kgsl_bind_gmem_shadow {
    172  unsigned int drawctxt_id;
    173  struct kgsl_gmem_desc gmem_desc;
    174  unsigned int shadow_x;
    175  unsigned int shadow_y;
    176  struct kgsl_buffer_desc shadow_buffer;
    177  unsigned int buffer_id;
    178 };
    179 
    180 #define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW   _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
    181 
    182 struct kgsl_sharedmem_from_vmalloc {
    183  unsigned int gpuaddr;
    184  unsigned int hostptr;
    185 
    186  int force_no_low_watermark;
    187 };
    188 
    189 #define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC   _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
    190 
    191 #define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE   _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
    192 
    193 struct kgsl_drawctxt_set_bin_base_offset {
    194  unsigned int drawctxt_id;
    195  unsigned int offset;
    196 };
    197 
    198 #define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET   _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
    199 
    200 #endif
    201 
    202