~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/gpu/pvr/sgxinfo.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**********************************************************************
 
2
 *
 
3
 * Copyright (C) Imagination Technologies Ltd. All rights reserved.
 
4
 * 
 
5
 * This program is free software; you can redistribute it and/or modify it
 
6
 * under the terms and conditions of the GNU General Public License,
 
7
 * version 2, as published by the Free Software Foundation.
 
8
 * 
 
9
 * This program is distributed in the hope it will be useful but, except 
 
10
 * as otherwise stated in writing, without any warranty; without even the 
 
11
 * implied warranty of merchantability or fitness for a particular purpose. 
 
12
 * See the GNU General Public License for more details.
 
13
 * 
 
14
 * You should have received a copy of the GNU General Public License along with
 
15
 * this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
 
17
 * 
 
18
 * The full GNU General Public License is included in this distribution in
 
19
 * the file called "COPYING".
 
20
 *
 
21
 * Contact Information:
 
22
 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
 
23
 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK 
 
24
 *
 
25
 ******************************************************************************/
 
26
 
 
27
#if !defined (__SGXINFO_H__)
 
28
#define __SGXINFO_H__
 
29
 
 
30
#include "sgxscript.h"
 
31
#include "servicesint.h"
 
32
#include "services.h"
 
33
#if !defined (SUPPORT_SID_INTERFACE)
 
34
#include "sgxapi_km.h"
 
35
#endif
 
36
#include "sgx_mkif_km.h"
 
37
 
 
38
 
 
39
#define SGX_MAX_DEV_DATA                        24
 
40
#define SGX_MAX_INIT_MEM_HANDLES        18
 
41
 
 
42
 
 
43
typedef struct _SGX_BRIDGE_INFO_FOR_SRVINIT
 
44
{
 
45
        IMG_DEV_PHYADDR sPDDevPAddr;
 
46
        PVRSRV_HEAP_INFO asHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
 
47
} SGX_BRIDGE_INFO_FOR_SRVINIT;
 
48
 
 
49
 
 
50
typedef enum _SGXMKIF_CMD_TYPE_
 
51
{
 
52
        SGXMKIF_CMD_TA                          = 0,
 
53
        SGXMKIF_CMD_TRANSFER            = 1,
 
54
        SGXMKIF_CMD_2D                          = 2,
 
55
        SGXMKIF_CMD_POWER                       = 3,
 
56
        SGXMKIF_CMD_CONTEXTSUSPEND      = 4,
 
57
        SGXMKIF_CMD_CLEANUP                     = 5,
 
58
        SGXMKIF_CMD_GETMISCINFO         = 6,
 
59
        SGXMKIF_CMD_PROCESS_QUEUES      = 7,
 
60
        SGXMKIF_CMD_DATABREAKPOINT      = 8,
 
61
        SGXMKIF_CMD_SETHWPERFSTATUS     = 9,
 
62
        SGXMKIF_CMD_FLUSHPDCACHE        = 10,
 
63
        SGXMKIF_CMD_MAX                         = 11,
 
64
 
 
65
        SGXMKIF_CMD_FORCE_I32           = -1,
 
66
 
 
67
} SGXMKIF_CMD_TYPE;
 
68
 
 
69
 
 
70
typedef struct _SGX_BRIDGE_INIT_INFO_
 
71
{
 
72
#if defined (SUPPORT_SID_INTERFACE)
 
73
        IMG_SID         hKernelCCBMemInfo;
 
74
        IMG_SID         hKernelCCBCtlMemInfo;
 
75
        IMG_SID         hKernelCCBEventKickerMemInfo;
 
76
        IMG_SID         hKernelSGXHostCtlMemInfo;
 
77
        IMG_SID         hKernelSGXTA3DCtlMemInfo;
 
78
        IMG_SID         hKernelSGXMiscMemInfo;
 
79
#else
 
80
        IMG_HANDLE      hKernelCCBMemInfo;
 
81
        IMG_HANDLE      hKernelCCBCtlMemInfo;
 
82
        IMG_HANDLE      hKernelCCBEventKickerMemInfo;
 
83
        IMG_HANDLE      hKernelSGXHostCtlMemInfo;
 
84
        IMG_HANDLE      hKernelSGXTA3DCtlMemInfo;
 
85
        IMG_HANDLE      hKernelSGXMiscMemInfo;
 
86
#endif
 
87
 
 
88
        IMG_UINT32      aui32HostKickAddr[SGXMKIF_CMD_MAX];
 
89
 
 
90
        SGX_INIT_SCRIPTS sScripts;
 
91
 
 
92
        IMG_UINT32      ui32ClientBuildOptions;
 
93
        SGX_MISCINFO_STRUCT_SIZES       sSGXStructSizes;
 
94
 
 
95
#if defined(SGX_SUPPORT_HWPROFILING)
 
96
#if defined (SUPPORT_SID_INTERFACE)
 
97
        IMG_SID         hKernelHWProfilingMemInfo;
 
98
#else
 
99
        IMG_HANDLE      hKernelHWProfilingMemInfo;
 
100
#endif
 
101
#endif
 
102
#if defined(SUPPORT_SGX_HWPERF)
 
103
#if defined (SUPPORT_SID_INTERFACE)
 
104
        IMG_SID         hKernelHWPerfCBMemInfo;
 
105
#else
 
106
        IMG_HANDLE      hKernelHWPerfCBMemInfo;
 
107
#endif
 
108
#endif
 
109
#if defined (SUPPORT_SID_INTERFACE)
 
110
        IMG_SID         hKernelTASigBufferMemInfo;
 
111
        IMG_SID         hKernel3DSigBufferMemInfo;
 
112
#else
 
113
        IMG_HANDLE      hKernelTASigBufferMemInfo;
 
114
        IMG_HANDLE      hKernel3DSigBufferMemInfo;
 
115
#endif
 
116
 
 
117
#if defined(FIX_HW_BRN_29702)
 
118
#if defined (SUPPORT_SID_INTERFACE)
 
119
        IMG_SID         hKernelCFIMemInfo;
 
120
#else
 
121
        IMG_HANDLE      hKernelCFIMemInfo;
 
122
#endif
 
123
#endif
 
124
#if defined(FIX_HW_BRN_29823)
 
125
#if defined (SUPPORT_SID_INTERFACE)
 
126
        IMG_SID         hKernelDummyTermStreamMemInfo;
 
127
#else
 
128
        IMG_HANDLE      hKernelDummyTermStreamMemInfo;
 
129
#endif
 
130
#endif
 
131
 
 
132
#if defined(FIX_HW_BRN_31542)
 
133
#if defined (SUPPORT_SID_INTERFACE)
 
134
        IMG_SID hKernelClearClipWAVDMStreamMemInfo;
 
135
        IMG_SID hKernelClearClipWAIndexStreamMemInfo;
 
136
        IMG_SID hKernelClearClipWAPDSMemInfo;
 
137
        IMG_SID hKernelClearClipWAUSEMemInfo;
 
138
        IMG_SID hKernelClearClipWAParamMemInfo;
 
139
        IMG_SID hKernelClearClipWAPMPTMemInfo;
 
140
        IMG_SID hKernelClearClipWATPCMemInfo;
 
141
        IMG_SID hKernelClearClipWAPSGRgnHdrMemInfo;
 
142
#else
 
143
        IMG_HANDLE hKernelClearClipWAVDMStreamMemInfo;
 
144
        IMG_HANDLE hKernelClearClipWAIndexStreamMemInfo;
 
145
        IMG_HANDLE hKernelClearClipWAPDSMemInfo;
 
146
        IMG_HANDLE hKernelClearClipWAUSEMemInfo;
 
147
        IMG_HANDLE hKernelClearClipWAParamMemInfo;
 
148
        IMG_HANDLE hKernelClearClipWAPMPTMemInfo;
 
149
        IMG_HANDLE hKernelClearClipWATPCMemInfo;
 
150
        IMG_HANDLE hKernelClearClipWAPSGRgnHdrMemInfo;
 
151
#endif
 
152
#endif
 
153
 
 
154
#if defined(SGX_FEATURE_VDM_CONTEXT_SWITCH) && defined(FIX_HW_BRN_31425)
 
155
        IMG_HANDLE      hKernelVDMSnapShotBufferMemInfo;
 
156
        IMG_HANDLE      hKernelVDMCtrlStreamBufferMemInfo;
 
157
#endif
 
158
#if defined(PVRSRV_USSE_EDM_STATUS_DEBUG)
 
159
#if defined (SUPPORT_SID_INTERFACE)
 
160
        IMG_SID         hKernelEDMStatusBufferMemInfo;
 
161
#else
 
162
        IMG_HANDLE      hKernelEDMStatusBufferMemInfo;
 
163
#endif
 
164
#endif
 
165
#if defined(SGX_FEATURE_OVERLAPPED_SPM)
 
166
#if defined (SUPPORT_SID_INTERFACE)
 
167
        IMG_SID         hKernelTmpRgnHeaderMemInfo;
 
168
#else
 
169
        IMG_HANDLE hKernelTmpRgnHeaderMemInfo;
 
170
#endif
 
171
#endif
 
172
#if defined(SGX_FEATURE_SPM_MODE_0)
 
173
#if defined (SUPPORT_SID_INTERFACE)
 
174
        IMG_SID         hKernelTmpDPMStateMemInfo;
 
175
#else
 
176
        IMG_HANDLE hKernelTmpDPMStateMemInfo;
 
177
#endif
 
178
#endif
 
179
 
 
180
        IMG_UINT32 ui32EDMTaskReg0;
 
181
        IMG_UINT32 ui32EDMTaskReg1;
 
182
 
 
183
        IMG_UINT32 ui32ClkGateCtl;
 
184
        IMG_UINT32 ui32ClkGateCtl2;
 
185
        IMG_UINT32 ui32ClkGateStatusReg;
 
186
        IMG_UINT32 ui32ClkGateStatusMask;
 
187
#if defined(SGX_FEATURE_MP)
 
188
        IMG_UINT32 ui32MasterClkGateStatusReg;
 
189
        IMG_UINT32 ui32MasterClkGateStatusMask;
 
190
        IMG_UINT32 ui32MasterClkGateStatus2Reg;
 
191
        IMG_UINT32 ui32MasterClkGateStatus2Mask;
 
192
#endif 
 
193
 
 
194
        IMG_UINT32 ui32CacheControl;
 
195
 
 
196
        IMG_UINT32      asInitDevData[SGX_MAX_DEV_DATA];
 
197
#if defined (SUPPORT_SID_INTERFACE)
 
198
        IMG_SID         asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES];
 
199
#else
 
200
        IMG_HANDLE      asInitMemHandles[SGX_MAX_INIT_MEM_HANDLES];
 
201
#endif
 
202
 
 
203
} SGX_BRIDGE_INIT_INFO;
 
204
 
 
205
 
 
206
typedef struct _SGX_DEVICE_SYNC_LIST_
 
207
{
 
208
        PSGXMKIF_HWDEVICE_SYNC_LIST     psHWDeviceSyncList;
 
209
 
 
210
#if defined (SUPPORT_SID_INTERFACE)
 
211
        IMG_SID                                 hKernelHWSyncListMemInfo;
 
212
#else
 
213
        IMG_HANDLE                              hKernelHWSyncListMemInfo;
 
214
#endif
 
215
        PVRSRV_CLIENT_MEM_INFO  *psHWDeviceSyncListClientMemInfo;
 
216
        PVRSRV_CLIENT_MEM_INFO  *psAccessResourceClientMemInfo;
 
217
 
 
218
        volatile IMG_UINT32             *pui32Lock;
 
219
 
 
220
        struct _SGX_DEVICE_SYNC_LIST_   *psNext;
 
221
 
 
222
        
 
223
        IMG_UINT32                      ui32NumSyncObjects;
 
224
#if defined (SUPPORT_SID_INTERFACE)
 
225
        IMG_SID                         ahSyncHandles[1];
 
226
#else
 
227
        IMG_HANDLE                      ahSyncHandles[1];
 
228
#endif
 
229
} SGX_DEVICE_SYNC_LIST, *PSGX_DEVICE_SYNC_LIST;
 
230
 
 
231
 
 
232
typedef struct _SGX_INTERNEL_STATUS_UPDATE_
 
233
{
 
234
        CTL_STATUS                              sCtlStatus;
 
235
#if defined (SUPPORT_SID_INTERFACE)
 
236
        IMG_SID                                 hKernelMemInfo;
 
237
#else
 
238
        IMG_HANDLE                              hKernelMemInfo;
 
239
#endif
 
240
} SGX_INTERNEL_STATUS_UPDATE;
 
241
 
 
242
 
 
243
typedef struct _SGX_CCB_KICK_
 
244
{
 
245
        SGXMKIF_COMMAND         sCommand;
 
246
#if defined (SUPPORT_SID_INTERFACE)
 
247
        IMG_SID         hCCBKernelMemInfo;
 
248
#else
 
249
        IMG_HANDLE      hCCBKernelMemInfo;
 
250
#endif
 
251
 
 
252
        IMG_UINT32      ui32NumDstSyncObjects;
 
253
#if defined (SUPPORT_SID_INTERFACE)
 
254
        IMG_SID         hKernelHWSyncListMemInfo;
 
255
#else
 
256
        IMG_HANDLE      hKernelHWSyncListMemInfo;
 
257
#endif
 
258
 
 
259
        
 
260
#if defined (SUPPORT_SID_INTERFACE)
 
261
        IMG_SID         *pahDstSyncHandles;
 
262
#else
 
263
        IMG_HANDLE      *pahDstSyncHandles;
 
264
#endif
 
265
 
 
266
        IMG_UINT32      ui32NumTAStatusVals;
 
267
        IMG_UINT32      ui32Num3DStatusVals;
 
268
 
 
269
#if defined(SUPPORT_SGX_NEW_STATUS_VALS)
 
270
        SGX_INTERNEL_STATUS_UPDATE      asTAStatusUpdate[SGX_MAX_TA_STATUS_VALS];
 
271
        SGX_INTERNEL_STATUS_UPDATE      as3DStatusUpdate[SGX_MAX_3D_STATUS_VALS];
 
272
#else
 
273
#if defined (SUPPORT_SID_INTERFACE)
 
274
        IMG_SID         ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
 
275
        IMG_SID         ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
 
276
#else
 
277
        IMG_HANDLE      ahTAStatusSyncInfo[SGX_MAX_TA_STATUS_VALS];
 
278
        IMG_HANDLE      ah3DStatusSyncInfo[SGX_MAX_3D_STATUS_VALS];
 
279
#endif
 
280
#endif
 
281
 
 
282
        IMG_BOOL        bFirstKickOrResume;
 
283
#if (defined(NO_HARDWARE) || defined(PDUMP))
 
284
        IMG_BOOL        bTerminateOrAbort;
 
285
#endif
 
286
        IMG_BOOL        bLastInScene;
 
287
 
 
288
        
 
289
        IMG_UINT32      ui32CCBOffset;
 
290
 
 
291
#if defined(SUPPORT_SGX_GENERALISED_SYNCOBJECTS)
 
292
        
 
293
        IMG_UINT32      ui32NumTASrcSyncs;
 
294
#if defined (SUPPORT_SID_INTERFACE)
 
295
        IMG_SID         ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS];
 
296
#else
 
297
        IMG_HANDLE      ahTASrcKernelSyncInfo[SGX_MAX_TA_SRC_SYNCS];
 
298
#endif
 
299
        IMG_UINT32      ui32NumTADstSyncs;
 
300
#if defined (SUPPORT_SID_INTERFACE)
 
301
        IMG_SID         ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS];
 
302
#else
 
303
        IMG_HANDLE      ahTADstKernelSyncInfo[SGX_MAX_TA_DST_SYNCS];
 
304
#endif
 
305
        IMG_UINT32      ui32Num3DSrcSyncs;
 
306
#if defined (SUPPORT_SID_INTERFACE)
 
307
        IMG_SID         ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS];
 
308
#else
 
309
        IMG_HANDLE      ah3DSrcKernelSyncInfo[SGX_MAX_3D_SRC_SYNCS];
 
310
#endif
 
311
#else
 
312
        
 
313
        IMG_UINT32      ui32NumSrcSyncs;
 
314
#if defined (SUPPORT_SID_INTERFACE)
 
315
        IMG_SID         ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
 
316
#else
 
317
        IMG_HANDLE      ahSrcKernelSyncInfo[SGX_MAX_SRC_SYNCS];
 
318
#endif
 
319
#endif
 
320
 
 
321
        
 
322
        IMG_BOOL        bTADependency;
 
323
#if defined (SUPPORT_SID_INTERFACE)
 
324
        IMG_SID         hTA3DSyncInfo;
 
325
 
 
326
        IMG_SID         hTASyncInfo;
 
327
        IMG_SID         h3DSyncInfo;
 
328
#else
 
329
        IMG_HANDLE      hTA3DSyncInfo;
 
330
 
 
331
        IMG_HANDLE      hTASyncInfo;
 
332
        IMG_HANDLE      h3DSyncInfo;
 
333
#endif
 
334
#if defined(PDUMP)
 
335
        IMG_UINT32      ui32CCBDumpWOff;
 
336
#endif
 
337
#if defined(NO_HARDWARE)
 
338
        IMG_UINT32      ui32WriteOpsPendingVal;
 
339
#endif
 
340
        IMG_HANDLE      hDevMemContext;
 
341
} SGX_CCB_KICK;
 
342
 
 
343
 
 
344
#define SGX_KERNEL_USE_CODE_BASE_INDEX          15
 
345
 
 
346
 
 
347
typedef struct _SGX_CLIENT_INFO_
 
348
{
 
349
        IMG_UINT32                                      ui32ProcessID;                  
 
350
        IMG_VOID                                        *pvProcess;                             
 
351
        PVRSRV_MISC_INFO                        sMiscInfo;                              
 
352
 
 
353
        IMG_UINT32                                      asDevData[SGX_MAX_DEV_DATA];
 
354
 
 
355
} SGX_CLIENT_INFO;
 
356
 
 
357
typedef struct _SGX_INTERNAL_DEVINFO_
 
358
{
 
359
        IMG_UINT32                      ui32Flags;
 
360
#if defined (SUPPORT_SID_INTERFACE)
 
361
        IMG_SID                         hHostCtlKernelMemInfoHandle;
 
362
#else
 
363
        IMG_HANDLE                      hHostCtlKernelMemInfoHandle;
 
364
#endif
 
365
        IMG_BOOL                        bForcePTOff;
 
366
} SGX_INTERNAL_DEVINFO;
 
367
 
 
368
 
 
369
typedef struct _SGX_INTERNAL_DEVINFO_KM_
 
370
{
 
371
        IMG_UINT32                      ui32Flags;
 
372
        IMG_HANDLE                      hHostCtlKernelMemInfoHandle;
 
373
        IMG_BOOL                        bForcePTOff;
 
374
} SGX_INTERNAL_DEVINFO_KM;
 
375
 
 
376
 
 
377
#if defined(TRANSFER_QUEUE)
 
378
typedef struct _PVRSRV_TRANSFER_SGX_KICK_
 
379
{
 
380
#if defined (SUPPORT_SID_INTERFACE)
 
381
        IMG_SID                 hCCBMemInfo;
 
382
#else
 
383
        IMG_HANDLE              hCCBMemInfo;
 
384
#endif
 
385
        IMG_UINT32              ui32SharedCmdCCBOffset;
 
386
 
 
387
        IMG_DEV_VIRTADDR        sHWTransferContextDevVAddr;
 
388
 
 
389
#if defined (SUPPORT_SID_INTERFACE)
 
390
        IMG_SID                 hTASyncInfo;
 
391
        IMG_SID                 h3DSyncInfo;
 
392
#else
 
393
        IMG_HANDLE              hTASyncInfo;
 
394
        IMG_HANDLE              h3DSyncInfo;
 
395
#endif
 
396
 
 
397
        IMG_UINT32              ui32NumSrcSync;
 
398
#if defined (SUPPORT_SID_INTERFACE)
 
399
        IMG_SID                 ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
 
400
#else
 
401
        IMG_HANDLE              ahSrcSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
 
402
#endif
 
403
 
 
404
        IMG_UINT32              ui32NumDstSync;
 
405
#if defined (SUPPORT_SID_INTERFACE)
 
406
        IMG_SID                 ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
 
407
#else
 
408
        IMG_HANDLE              ahDstSyncInfo[SGX_MAX_TRANSFER_SYNC_OPS];
 
409
#endif
 
410
 
 
411
        IMG_UINT32              ui32Flags;
 
412
 
 
413
        IMG_UINT32              ui32PDumpFlags;
 
414
#if defined(PDUMP)
 
415
        IMG_UINT32              ui32CCBDumpWOff;
 
416
#endif
 
417
        IMG_HANDLE              hDevMemContext;
 
418
} PVRSRV_TRANSFER_SGX_KICK, *PPVRSRV_TRANSFER_SGX_KICK;
 
419
 
 
420
#if defined(SGX_FEATURE_2D_HARDWARE)
 
421
typedef struct _PVRSRV_2D_SGX_KICK_
 
422
{
 
423
#if defined (SUPPORT_SID_INTERFACE)
 
424
        IMG_SID                 hCCBMemInfo;
 
425
#else
 
426
        IMG_HANDLE              hCCBMemInfo;
 
427
#endif
 
428
        IMG_UINT32              ui32SharedCmdCCBOffset;
 
429
 
 
430
        IMG_DEV_VIRTADDR        sHW2DContextDevVAddr;
 
431
 
 
432
        IMG_UINT32              ui32NumSrcSync;
 
433
#if defined (SUPPORT_SID_INTERFACE)
 
434
        IMG_SID                 ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
 
435
 
 
436
        
 
437
        IMG_SID                 hDstSyncInfo;
 
438
 
 
439
        
 
440
        IMG_SID                 hTASyncInfo;
 
441
 
 
442
        
 
443
        IMG_SID                 h3DSyncInfo;
 
444
#else
 
445
        IMG_HANDLE              ahSrcSyncInfo[SGX_MAX_2D_SRC_SYNC_OPS];
 
446
 
 
447
        
 
448
        IMG_HANDLE              hDstSyncInfo;
 
449
 
 
450
        
 
451
        IMG_HANDLE              hTASyncInfo;
 
452
 
 
453
        
 
454
        IMG_HANDLE              h3DSyncInfo;
 
455
#endif
 
456
 
 
457
        IMG_UINT32              ui32PDumpFlags;
 
458
#if defined(PDUMP)
 
459
        IMG_UINT32              ui32CCBDumpWOff;
 
460
#endif
 
461
        IMG_HANDLE              hDevMemContext;
 
462
} PVRSRV_2D_SGX_KICK, *PPVRSRV_2D_SGX_KICK;
 
463
#endif  
 
464
#endif  
 
465
 
 
466
 
 
467
#endif