blob: ca5c96e7665082e47ac83bd19712fecb847a824e [file] [log] [blame]
Dima Zavin81fa6d52009-08-05 17:51:29 -07001/****************************************************************************
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 ***
Ben Cheng654325d2012-03-07 21:13:49 -080010 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
Dima Zavin81fa6d52009-08-05 17:51:29 -070017 ****************************************************************************
18 ****************************************************************************/
19#ifndef _MSM_KGSL_H
20#define _MSM_KGSL_H
Dima Zavin81fa6d52009-08-05 17:51:29 -070021#define KGSL_CONTEXT_SAVE_GMEM 1
22#define KGSL_CONTEXT_NO_GMEM_ALLOC 2
Ben Cheng654325d2012-03-07 21:13:49 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070024#define KGSL_FLAGS_NORMALMODE 0x00000000
25#define KGSL_FLAGS_SAFEMODE 0x00000001
26#define KGSL_FLAGS_INITIALIZED0 0x00000002
27#define KGSL_FLAGS_INITIALIZED 0x00000004
Ben Cheng654325d2012-03-07 21:13:49 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070029#define KGSL_FLAGS_STARTED 0x00000008
30#define KGSL_FLAGS_ACTIVE 0x00000010
31#define KGSL_FLAGS_RESERVED0 0x00000020
32#define KGSL_FLAGS_RESERVED1 0x00000040
Ben Cheng654325d2012-03-07 21:13:49 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070034#define KGSL_FLAGS_RESERVED2 0x00000080
Dima Zavin81fa6d52009-08-05 17:51:29 -070035enum kgsl_deviceid {
36 KGSL_DEVICE_ANY = 0x00000000,
37 KGSL_DEVICE_YAMATO = 0x00000001,
Ben Cheng654325d2012-03-07 21:13:49 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070039 KGSL_DEVICE_G12 = 0x00000002,
40 KGSL_DEVICE_MAX = 0x00000002
41};
Dima Zavin81fa6d52009-08-05 17:51:29 -070042struct kgsl_devinfo {
Ben Cheng654325d2012-03-07 21:13:49 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070044 unsigned int device_id;
Dima Zavin81fa6d52009-08-05 17:51:29 -070045 unsigned int chip_id;
46 unsigned int mmu_enabled;
47 unsigned int gmem_gpubaseaddr;
Ben Cheng654325d2012-03-07 21:13:49 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070049 unsigned int gmem_hostbaseaddr;
50 unsigned int gmem_sizebytes;
51};
Dima Zavin81fa6d52009-08-05 17:51:29 -070052struct kgsl_devmemstore {
Ben Cheng654325d2012-03-07 21:13:49 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070054 volatile unsigned int soptimestamp;
55 unsigned int sbz;
56 volatile unsigned int eoptimestamp;
57 unsigned int sbz2;
Ben Cheng654325d2012-03-07 21:13:49 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin4e383b82010-03-08 17:34:52 -080059 volatile unsigned int ts_cmp_enable;
60 unsigned int sbz3;
61 volatile unsigned int ref_wait_ts;
62 unsigned int sbz4;
Ben Cheng654325d2012-03-07 21:13:49 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070064};
Dima Zavin81fa6d52009-08-05 17:51:29 -070065#define KGSL_DEVICE_MEMSTORE_OFFSET(field) offsetof(struct kgsl_devmemstore, field)
Dima Zavin81fa6d52009-08-05 17:51:29 -070066enum kgsl_timestamp_type {
67 KGSL_TIMESTAMP_CONSUMED = 0x00000001,
Ben Cheng654325d2012-03-07 21:13:49 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070069 KGSL_TIMESTAMP_RETIRED = 0x00000002,
70 KGSL_TIMESTAMP_MAX = 0x00000002,
71};
Dima Zavin81fa6d52009-08-05 17:51:29 -070072enum kgsl_property_type {
Ben Cheng654325d2012-03-07 21:13:49 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070074 KGSL_PROP_DEVICE_INFO = 0x00000001,
75 KGSL_PROP_DEVICE_SHADOW = 0x00000002,
Dima Zavin9a96aaa2009-10-03 16:38:49 -070076 KGSL_PROP_DEVICE_POWER = 0x00000003,
77 KGSL_PROP_SHMEM = 0x00000004,
Ben Cheng654325d2012-03-07 21:13:49 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -070079 KGSL_PROP_SHMEM_APERTURES = 0x00000005,
Dima Zavin4e383b82010-03-08 17:34:52 -080080 KGSL_PROP_MMU_ENABLE = 0x00000006,
81 KGSL_PROP_INTERRUPT_WAITS = 0x00000007,
Dima Zavin81fa6d52009-08-05 17:51:29 -070082};
Ben Cheng654325d2012-03-07 21:13:49 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070084struct kgsl_shadowprop {
85 unsigned int gpuaddr;
86 unsigned int size;
87 unsigned int flags;
Ben Cheng654325d2012-03-07 21:13:49 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070089};
Dima Zavin81fa6d52009-08-05 17:51:29 -070090#define KGSL_IOC_TYPE 0x09
Dima Zavin81fa6d52009-08-05 17:51:29 -070091struct kgsl_device_getproperty {
92 unsigned int type;
Ben Cheng654325d2012-03-07 21:13:49 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070094 void *value;
95 unsigned int sizebytes;
96};
Dima Zavin81fa6d52009-08-05 17:51:29 -070097#define IOCTL_KGSL_DEVICE_GETPROPERTY _IOWR(KGSL_IOC_TYPE, 0x2, struct kgsl_device_getproperty)
Ben Cheng654325d2012-03-07 21:13:49 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -070099struct kgsl_device_regread {
100 unsigned int offsetwords;
101 unsigned int value;
102};
Ben Cheng654325d2012-03-07 21:13:49 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700104#define IOCTL_KGSL_DEVICE_REGREAD _IOWR(KGSL_IOC_TYPE, 0x3, struct kgsl_device_regread)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700105struct kgsl_device_waittimestamp {
106 unsigned int timestamp;
107 unsigned int timeout;
Ben Cheng654325d2012-03-07 21:13:49 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700109};
Dima Zavin81fa6d52009-08-05 17:51:29 -0700110#define IOCTL_KGSL_DEVICE_WAITTIMESTAMP _IOW(KGSL_IOC_TYPE, 0x6, struct kgsl_device_waittimestamp)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700111struct kgsl_ringbuffer_issueibcmds {
112 unsigned int drawctxt_id;
Ben Cheng654325d2012-03-07 21:13:49 -0800113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700114 unsigned int ibaddr;
115 unsigned int sizedwords;
116 unsigned int timestamp;
117 unsigned int flags;
Ben Cheng654325d2012-03-07 21:13:49 -0800118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700119};
Dima Zavin81fa6d52009-08-05 17:51:29 -0700120#define IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS _IOWR(KGSL_IOC_TYPE, 0x10, struct kgsl_ringbuffer_issueibcmds)
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700121struct kgsl_cmdstream_readtimestamp {
Dima Zavin81fa6d52009-08-05 17:51:29 -0700122 unsigned int type;
Ben Cheng654325d2012-03-07 21:13:49 -0800123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700124 unsigned int timestamp;
125};
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700126#define IOCTL_KGSL_CMDSTREAM_READTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x11, struct kgsl_cmdstream_readtimestamp)
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700127struct kgsl_cmdstream_freememontimestamp {
Ben Cheng654325d2012-03-07 21:13:49 -0800128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700129 unsigned int gpuaddr;
130 unsigned int type;
131 unsigned int timestamp;
132};
Ben Cheng654325d2012-03-07 21:13:49 -0800133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700134#define IOCTL_KGSL_CMDSTREAM_FREEMEMONTIMESTAMP _IOR(KGSL_IOC_TYPE, 0x12, struct kgsl_cmdstream_freememontimestamp)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700135struct kgsl_drawctxt_create {
136 unsigned int flags;
137 unsigned int drawctxt_id;
Ben Cheng654325d2012-03-07 21:13:49 -0800138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700139};
Dima Zavin81fa6d52009-08-05 17:51:29 -0700140#define IOCTL_KGSL_DRAWCTXT_CREATE _IOWR(KGSL_IOC_TYPE, 0x13, struct kgsl_drawctxt_create)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700141struct kgsl_drawctxt_destroy {
142 unsigned int drawctxt_id;
Ben Cheng654325d2012-03-07 21:13:49 -0800143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700144};
Dima Zavin81fa6d52009-08-05 17:51:29 -0700145#define IOCTL_KGSL_DRAWCTXT_DESTROY _IOW(KGSL_IOC_TYPE, 0x14, struct kgsl_drawctxt_destroy)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700146struct kgsl_sharedmem_from_pmem {
147 int pmem_fd;
Ben Cheng654325d2012-03-07 21:13:49 -0800148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700149 unsigned int gpuaddr;
Dima Zavin7b12b4a2009-11-19 09:55:56 -0800150 unsigned int len;
151 unsigned int offset;
Dima Zavin81fa6d52009-08-05 17:51:29 -0700152};
Ben Cheng654325d2012-03-07 21:13:49 -0800153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700154#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700155struct kgsl_sharedmem_free {
156 unsigned int gpuaddr;
157};
Ben Cheng654325d2012-03-07 21:13:49 -0800158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin81fa6d52009-08-05 17:51:29 -0700159#define IOCTL_KGSL_SHAREDMEM_FREE _IOW(KGSL_IOC_TYPE, 0x21, struct kgsl_sharedmem_free)
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700160struct kgsl_gmem_desc {
161 unsigned int x;
162 unsigned int y;
Ben Cheng654325d2012-03-07 21:13:49 -0800163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700164 unsigned int width;
165 unsigned int height;
166 unsigned int pitch;
167};
Ben Cheng654325d2012-03-07 21:13:49 -0800168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700169struct kgsl_buffer_desc {
170 void *hostptr;
171 unsigned int gpuaddr;
172 int size;
Ben Cheng654325d2012-03-07 21:13:49 -0800173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700174 unsigned int format;
175 unsigned int pitch;
176 unsigned int enabled;
177};
Ben Cheng654325d2012-03-07 21:13:49 -0800178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700179struct kgsl_bind_gmem_shadow {
180 unsigned int drawctxt_id;
181 struct kgsl_gmem_desc gmem_desc;
182 unsigned int shadow_x;
Ben Cheng654325d2012-03-07 21:13:49 -0800183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700184 unsigned int shadow_y;
185 struct kgsl_buffer_desc shadow_buffer;
186 unsigned int buffer_id;
187};
Ben Cheng654325d2012-03-07 21:13:49 -0800188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700189#define IOCTL_KGSL_DRAWCTXT_BIND_GMEM_SHADOW _IOW(KGSL_IOC_TYPE, 0x22, struct kgsl_bind_gmem_shadow)
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700190struct kgsl_sharedmem_from_vmalloc {
191 unsigned int gpuaddr;
192 unsigned int hostptr;
Ben Cheng654325d2012-03-07 21:13:49 -0800193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700194 int force_no_low_watermark;
195};
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700196#define IOCTL_KGSL_SHAREDMEM_FROM_VMALLOC _IOWR(KGSL_IOC_TYPE, 0x23, struct kgsl_sharedmem_from_vmalloc)
Dima Zavin9a96aaa2009-10-03 16:38:49 -0700197#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
Ben Cheng654325d2012-03-07 21:13:49 -0800198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin110044b2009-11-13 02:29:17 -0800199struct kgsl_drawctxt_set_bin_base_offset {
200 unsigned int drawctxt_id;
201 unsigned int offset;
202};
Ben Cheng654325d2012-03-07 21:13:49 -0800203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Dima Zavin110044b2009-11-13 02:29:17 -0800204#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
Dima Zavin81fa6d52009-08-05 17:51:29 -0700205#endif