aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/pvr/kerneldisplay.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/pvr/kerneldisplay.h')
-rw-r--r--drivers/gpu/pvr/kerneldisplay.h165
1 files changed, 165 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/kerneldisplay.h b/drivers/gpu/pvr/kerneldisplay.h
new file mode 100644
index 00000000000..b5c1c7a1ecd
--- /dev/null
+++ b/drivers/gpu/pvr/kerneldisplay.h
@@ -0,0 +1,165 @@
1/**********************************************************************
2 *
3 * Copyright(c) 2008 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 (__KERNELDISPLAY_H__)
28#define __KERNELDISPLAY_H__
29
30#if defined (__cplusplus)
31extern "C" {
32#endif
33
34typedef PVRSRV_ERROR (*PFN_OPEN_DC_DEVICE)(IMG_UINT32, IMG_HANDLE*, PVRSRV_SYNC_DATA*);
35typedef PVRSRV_ERROR (*PFN_CLOSE_DC_DEVICE)(IMG_HANDLE);
36typedef PVRSRV_ERROR (*PFN_ENUM_DC_FORMATS)(IMG_HANDLE, IMG_UINT32*, DISPLAY_FORMAT*);
37typedef PVRSRV_ERROR (*PFN_ENUM_DC_DIMS)(IMG_HANDLE,
38 DISPLAY_FORMAT*,
39 IMG_UINT32*,
40 DISPLAY_DIMS*);
41typedef PVRSRV_ERROR (*PFN_GET_DC_SYSTEMBUFFER)(IMG_HANDLE, IMG_HANDLE*);
42typedef PVRSRV_ERROR (*PFN_GET_DC_INFO)(IMG_HANDLE, DISPLAY_INFO*);
43typedef PVRSRV_ERROR (*PFN_CREATE_DC_SWAPCHAIN)(IMG_HANDLE,
44 IMG_UINT32,
45 DISPLAY_SURF_ATTRIBUTES*,
46 DISPLAY_SURF_ATTRIBUTES*,
47 IMG_UINT32,
48 PVRSRV_SYNC_DATA**,
49 IMG_UINT32,
50 IMG_HANDLE*,
51 IMG_UINT32*);
52typedef PVRSRV_ERROR (*PFN_DESTROY_DC_SWAPCHAIN)(IMG_HANDLE,
53 IMG_HANDLE);
54typedef PVRSRV_ERROR (*PFN_SET_DC_DSTRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
55typedef PVRSRV_ERROR (*PFN_SET_DC_SRCRECT)(IMG_HANDLE, IMG_HANDLE, IMG_RECT*);
56typedef PVRSRV_ERROR (*PFN_SET_DC_DSTCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
57typedef PVRSRV_ERROR (*PFN_SET_DC_SRCCK)(IMG_HANDLE, IMG_HANDLE, IMG_UINT32);
58typedef PVRSRV_ERROR (*PFN_GET_DC_BUFFERS)(IMG_HANDLE,
59 IMG_HANDLE,
60 IMG_UINT32*,
61 IMG_HANDLE*);
62typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_BUFFER)(IMG_HANDLE,
63 IMG_HANDLE,
64 IMG_UINT32,
65 IMG_HANDLE,
66 IMG_UINT32,
67 IMG_RECT*);
68typedef PVRSRV_ERROR (*PFN_SWAP_TO_DC_SYSTEM)(IMG_HANDLE, IMG_HANDLE);
69typedef IMG_VOID (*PFN_QUERY_SWAP_COMMAND_ID)(IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_HANDLE, IMG_UINT16*, IMG_BOOL*);
70typedef IMG_VOID (*PFN_SET_DC_STATE)(IMG_HANDLE, IMG_UINT32);
71
72typedef struct PVRSRV_DC_SRV2DISP_KMJTABLE_TAG
73{
74 IMG_UINT32 ui32TableSize;
75 PFN_OPEN_DC_DEVICE pfnOpenDCDevice;
76 PFN_CLOSE_DC_DEVICE pfnCloseDCDevice;
77 PFN_ENUM_DC_FORMATS pfnEnumDCFormats;
78 PFN_ENUM_DC_DIMS pfnEnumDCDims;
79 PFN_GET_DC_SYSTEMBUFFER pfnGetDCSystemBuffer;
80 PFN_GET_DC_INFO pfnGetDCInfo;
81 PFN_GET_BUFFER_ADDR pfnGetBufferAddr;
82 PFN_CREATE_DC_SWAPCHAIN pfnCreateDCSwapChain;
83 PFN_DESTROY_DC_SWAPCHAIN pfnDestroyDCSwapChain;
84 PFN_SET_DC_DSTRECT pfnSetDCDstRect;
85 PFN_SET_DC_SRCRECT pfnSetDCSrcRect;
86 PFN_SET_DC_DSTCK pfnSetDCDstColourKey;
87 PFN_SET_DC_SRCCK pfnSetDCSrcColourKey;
88 PFN_GET_DC_BUFFERS pfnGetDCBuffers;
89 PFN_SWAP_TO_DC_BUFFER pfnSwapToDCBuffer;
90 PFN_SWAP_TO_DC_SYSTEM pfnSwapToDCSystem;
91 PFN_SET_DC_STATE pfnSetDCState;
92 PFN_QUERY_SWAP_COMMAND_ID pfnQuerySwapCommandID;
93
94} PVRSRV_DC_SRV2DISP_KMJTABLE;
95
96typedef IMG_BOOL (*PFN_ISR_HANDLER)(IMG_VOID*);
97
98typedef PVRSRV_ERROR (*PFN_DC_REGISTER_DISPLAY_DEV)(PVRSRV_DC_SRV2DISP_KMJTABLE*, IMG_UINT32*);
99typedef PVRSRV_ERROR (*PFN_DC_REMOVE_DISPLAY_DEV)(IMG_UINT32);
100typedef PVRSRV_ERROR (*PFN_DC_OEM_FUNCTION)(IMG_UINT32, IMG_VOID*, IMG_UINT32, IMG_VOID*, IMG_UINT32);
101typedef PVRSRV_ERROR (*PFN_DC_REGISTER_COMMANDPROCLIST)(IMG_UINT32, PPFN_CMD_PROC,IMG_UINT32[][2], IMG_UINT32);
102typedef PVRSRV_ERROR (*PFN_DC_REMOVE_COMMANDPROCLIST)(IMG_UINT32, IMG_UINT32);
103typedef IMG_VOID (*PFN_DC_CMD_COMPLETE)(IMG_HANDLE, IMG_BOOL);
104typedef PVRSRV_ERROR (*PFN_DC_REGISTER_SYS_ISR)(PFN_ISR_HANDLER, IMG_VOID*, IMG_UINT32, IMG_UINT32);
105typedef PVRSRV_ERROR (*PFN_DC_REGISTER_POWER)(IMG_UINT32, PFN_PRE_POWER, PFN_POST_POWER,
106 PFN_PRE_CLOCKSPEED_CHANGE, PFN_POST_CLOCKSPEED_CHANGE,
107 IMG_HANDLE, PVRSRV_DEV_POWER_STATE, PVRSRV_DEV_POWER_STATE);
108
109typedef struct PVRSRV_DC_DISP2SRV_KMJTABLE_TAG
110{
111 IMG_UINT32 ui32TableSize;
112 PFN_DC_REGISTER_DISPLAY_DEV pfnPVRSRVRegisterDCDevice;
113 PFN_DC_REMOVE_DISPLAY_DEV pfnPVRSRVRemoveDCDevice;
114 PFN_DC_OEM_FUNCTION pfnPVRSRVOEMFunction;
115 PFN_DC_REGISTER_COMMANDPROCLIST pfnPVRSRVRegisterCmdProcList;
116 PFN_DC_REMOVE_COMMANDPROCLIST pfnPVRSRVRemoveCmdProcList;
117 PFN_DC_CMD_COMPLETE pfnPVRSRVCmdComplete;
118 PFN_DC_REGISTER_SYS_ISR pfnPVRSRVRegisterSystemISRHandler;
119 PFN_DC_REGISTER_POWER pfnPVRSRVRegisterPowerDevice;
120 PFN_DC_CMD_COMPLETE pfnPVRSRVFreeCmdCompletePacket;
121} PVRSRV_DC_DISP2SRV_KMJTABLE, *PPVRSRV_DC_DISP2SRV_KMJTABLE;
122
123
124typedef struct DISPLAYCLASS_FLIP_COMMAND_TAG
125{
126
127 IMG_HANDLE hExtDevice;
128
129
130 IMG_HANDLE hExtSwapChain;
131
132
133 IMG_HANDLE hExtBuffer;
134
135
136 IMG_HANDLE hPrivateTag;
137
138
139 IMG_UINT32 ui32ClipRectCount;
140
141
142 IMG_RECT *psClipRect;
143
144
145 IMG_UINT32 ui32SwapInterval;
146
147} DISPLAYCLASS_FLIP_COMMAND;
148
149#define DC_FLIP_COMMAND 0
150
151#define DC_STATE_NO_FLUSH_COMMANDS 0
152#define DC_STATE_FLUSH_COMMANDS 1
153
154
155typedef IMG_BOOL (*PFN_DC_GET_PVRJTABLE)(PPVRSRV_DC_DISP2SRV_KMJTABLE);
156
157IMG_IMPORT IMG_BOOL PVRGetDisplayClassJTable(PVRSRV_DC_DISP2SRV_KMJTABLE *psJTable);
158
159
160#if defined (__cplusplus)
161}
162#endif
163
164#endif
165