2009-08-06 02:51:29 +02:00
|
|
|
/****************************************************************************
|
|
|
|
****************************************************************************
|
|
|
|
***
|
|
|
|
*** This header was automatically generated from a Linux kernel header
|
|
|
|
*** of the same name, to make information necessary for userspace to
|
|
|
|
*** call into the kernel available to libc. It contains only constants,
|
|
|
|
*** structures, and macros generated from the original header, and thus,
|
|
|
|
*** contains no copyrightable information.
|
|
|
|
***
|
|
|
|
****************************************************************************
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef _MSM_KGSL_H
|
|
|
|
#define _MSM_KGSL_H
|
|
|
|
|
|
|
|
#define KGSL_CONTEXT_SAVE_GMEM 1
|
|
|
|
#define KGSL_CONTEXT_NO_GMEM_ALLOC 2
|
|
|
|
|
|
|
|
#define KGSL_FLAGS_NORMALMODE 0x00000000
|
|
|
|
#define KGSL_FLAGS_SAFEMODE 0x00000001
|
|
|
|
#define KGSL_FLAGS_INITIALIZED0 0x00000002
|
|
|
|
#define KGSL_FLAGS_INITIALIZED 0x00000004
|
|
|
|
#define KGSL_FLAGS_STARTED 0x00000008
|
|
|
|
#define KGSL_FLAGS_ACTIVE 0x00000010
|
|
|
|
#define KGSL_FLAGS_RESERVED0 0x00000020
|
|
|
|
#define KGSL_FLAGS_RESERVED1 0x00000040
|
|
|
|
#define KGSL_FLAGS_RESERVED2 0x00000080
|
|
|
|
|
|
|
|
enum kgsl_deviceid {
|
|
|
|
KGSL_DEVICE_ANY = 0x00000000,
|
|
|
|
KGSL_DEVICE_YAMATO = 0x00000001,
|
|
|
|
KGSL_DEVICE_G12 = 0x00000002,
|
|
|
|
KGSL_DEVICE_MAX = 0x00000002
|
|
|
|
};
|
|
|
|
|
|
|
|
struct kgsl_devinfo {
|
|
|
|
|
|
|
|
unsigned int device_id;
|
|
|
|
|
|
|
|
unsigned int chip_id;
|
|
|
|
unsigned int mmu_enabled;
|
|
|
|
unsigned int gmem_gpubaseaddr;
|
|
|
|
|
|
|
|
unsigned int gmem_hostbaseaddr;
|
|
|
|
unsigned int gmem_sizebytes;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct kgsl_devmemstore {
|
|
|
|
volatile unsigned int soptimestamp;
|
|
|
|
unsigned int sbz;
|
|
|
|
volatile unsigned int eoptimestamp;
|
|
|
|
unsigned int sbz2;
|
2010-03-09 02:34:52 +01:00
|
|
|
volatile unsigned int ts_cmp_enable;
|
|
|
|
unsigned int sbz3;
|
|
|
|
volatile unsigned int ref_wait_ts;
|
|
|
|
unsigned int sbz4;
|
2009-08-06 02:51:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#define KGSL_DEVICE_MEMSTORE_OFFSET(field) offsetof(struct kgsl_devmemstore, field)
|
|
|
|
|
|
|
|
enum kgsl_timestamp_type {
|
|
|
|
KGSL_TIMESTAMP_CONSUMED = 0x00000001,
|
|
|
|
KGSL_TIMESTAMP_RETIRED = 0x00000002,
|
|
|
|
KGSL_TIMESTAMP_MAX = 0x00000002,
|
|
|
|
};
|
|
|
|
|
|
|
|
enum kgsl_property_type {
|
|
|
|
KGSL_PROP_DEVICE_INFO = 0x00000001,
|
|
|
|
KGSL_PROP_DEVICE_SHADOW = 0x00000002,
|
2009-10-04 01:38:49 +02:00
|
|
|
KGSL_PROP_DEVICE_POWER = 0x00000003,
|
|
|
|
KGSL_PROP_SHMEM = 0x00000004,
|
|
|
|
KGSL_PROP_SHMEM_APERTURES = 0x00000005,
|
2010-03-09 02:34:52 +01:00
|
|
|
KGSL_PROP_MMU_ENABLE = 0x00000006,
|
|
|
|
KGSL_PROP_INTERRUPT_WAITS = 0x00000007,
|
2009-08-06 02:51:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
struct kgsl_shadowprop {
|
|
|
|
unsigned int gpuaddr;
|
|
|
|
unsigned int size;
|
|
|
|
unsigned int flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define KGSL_IOC_TYPE 0x09
|
|
|
|
|
|
|
|
struct kgsl_device_getproperty {
|
|
|
|
unsigned int type;
|
|
|
|
void *value;
|
|
|
|
unsigned int sizebytes;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
|
|
|
|
|
|
|
|
struct kgsl_device_regread {
|
|
|
|
unsigned int offsetwords;
|
|
|
|
unsigned int value;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DEVICE_REGREAD _IOWR(KGSL_IOC_TYPE, 0x3, struct kgsl_device_regread)
|
|
|
|
|
|
|
|
struct kgsl_device_waittimestamp {
|
|
|
|
unsigned int timestamp;
|
|
|
|
unsigned int timeout;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
|
|
|
|
|
|
|
|
struct kgsl_ringbuffer_issueibcmds {
|
|
|
|
unsigned int drawctxt_id;
|
|
|
|
unsigned int ibaddr;
|
|
|
|
unsigned int sizedwords;
|
|
|
|
unsigned int timestamp;
|
|
|
|
unsigned int flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
|
|
|
|
|
2009-10-04 01:38:49 +02:00
|
|
|
struct kgsl_cmdstream_readtimestamp {
|
2009-08-06 02:51:29 +02:00
|
|
|
unsigned int type;
|
|
|
|
unsigned int timestamp;
|
|
|
|
};
|
|
|
|
|
2009-10-04 01:38:49 +02:00
|
|
|
#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
|
2009-08-06 02:51:29 +02:00
|
|
|
|
2009-10-04 01:38:49 +02:00
|
|
|
struct kgsl_cmdstream_freememontimestamp {
|
2009-08-06 02:51:29 +02:00
|
|
|
unsigned int gpuaddr;
|
|
|
|
unsigned int type;
|
|
|
|
unsigned int timestamp;
|
|
|
|
};
|
|
|
|
|
2009-10-04 01:38:49 +02:00
|
|
|
#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
|
2009-08-06 02:51:29 +02:00
|
|
|
|
|
|
|
struct kgsl_drawctxt_create {
|
|
|
|
unsigned int flags;
|
|
|
|
unsigned int drawctxt_id;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DRAWCTXT_CREATE _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
|
|
|
|
|
|
|
|
struct kgsl_drawctxt_destroy {
|
|
|
|
unsigned int drawctxt_id;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DRAWCTXT_DESTROY _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
|
|
|
|
|
|
|
|
struct kgsl_sharedmem_from_pmem {
|
|
|
|
int pmem_fd;
|
|
|
|
unsigned int gpuaddr;
|
2009-11-19 18:55:56 +01:00
|
|
|
unsigned int len;
|
|
|
|
unsigned int offset;
|
2009-08-06 02:51:29 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
|
|
|
|
|
|
|
|
struct kgsl_sharedmem_free {
|
|
|
|
unsigned int gpuaddr;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
|
|
|
|
|
2009-10-04 01:38:49 +02:00
|
|
|
struct kgsl_gmem_desc {
|
|
|
|
unsigned int x;
|
|
|
|
unsigned int y;
|
|
|
|
unsigned int width;
|
|
|
|
unsigned int height;
|
|
|
|
unsigned int pitch;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct kgsl_buffer_desc {
|
|
|
|
void *hostptr;
|
|
|
|
unsigned int gpuaddr;
|
|
|
|
int size;
|
|
|
|
unsigned int format;
|
|
|
|
unsigned int pitch;
|
|
|
|
unsigned int enabled;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct kgsl_bind_gmem_shadow {
|
|
|
|
unsigned int drawctxt_id;
|
|
|
|
struct kgsl_gmem_desc gmem_desc;
|
|
|
|
unsigned int shadow_x;
|
|
|
|
unsigned int shadow_y;
|
|
|
|
struct kgsl_buffer_desc shadow_buffer;
|
|
|
|
unsigned int buffer_id;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
|
|
|
|
|
|
|
|
struct kgsl_sharedmem_from_vmalloc {
|
|
|
|
unsigned int gpuaddr;
|
|
|
|
unsigned int hostptr;
|
|
|
|
|
|
|
|
int force_no_low_watermark;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
|
|
|
|
|
2009-11-13 11:29:17 +01:00
|
|
|
struct kgsl_drawctxt_set_bin_base_offset {
|
|
|
|
unsigned int drawctxt_id;
|
|
|
|
unsigned int offset;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
|
|
|
|
|
2009-08-06 02:51:29 +02:00
|
|
|
#endif
|
|
|
|
|