1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 #include <asm/uaccess.h>
5 #include "GFX_adp.h"
6 #include "utopia.h"
7 #include "utopia_adp.h"
8 #include "apiGFX.h"
9 #include "apiGFX_v2.h"
10 #include "apiGFX_private.h"
11
12
13 UADP_SDT_NAMEn_DEF(GFX_NULL,0);
14
15
16 //MAPI_CMD_GFX_INIT ,
17 #ifdef BIFROST_32BIT_MODE
18 UADP_SDT_NAMEn_DEF(GFX_INIT_A0,1);
19 UADP_SDT_NAMEn_DEF(GFX_INIT,1);
20 #else
21 UADP_SDT_NAMEn_DEF(GFX_INIT_A0,0);
22 UADP_SDT_NAMEn_DEF(GFX_INIT,1);
23 #endif
24 //MAPI_CMD_GFX_GET_INFO ,
25 #ifdef BIFROST_32BIT_MODE
26 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B1_C0,1);
27 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B1,1);
28 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B0_C0,1);
29 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B0,1);
30 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0,2);
31 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO,1);
32 #else
33 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B1_C0,0);
34 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B1,1);
35 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B0_C0,0);
36 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0_B0,1);
37 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO_A0,2);
38 UADP_SDT_NAMEn_DEF(GFX_GETINFO_BUFFERINFO,1);
39 #endif
40 UADP_SDT_NAMEn_DEF(GFX_GETINFO_TAGID_A0,0);
41 UADP_SDT_NAMEn_DEF(GFX_GETINFO_TAGID,1);
42
43 UADP_SDT_NAMEn_DEF(GFX_GETINFO_NEXTTAGID_A0_B0,0);
44 UADP_SDT_NAMEn_DEF(GFX_GETINFO_NEXTTAGID_A0,1);
45 UADP_SDT_NAMEn_DEF(GFX_GETINFO_NEXTTAGID,1);
46
47 UADP_SDT_NAMEn_DEF(GFX_GETINFO_CLIP_A0_B1,0);
48 UADP_SDT_NAMEn_DEF(GFX_GETINFO_CLIP_A0_B0,0);
49 UADP_SDT_NAMEn_DEF(GFX_GETINFO_CLIP_A0,2);
50 UADP_SDT_NAMEn_DEF(GFX_GETINFO_CLIP,1);
51
52 UADP_SDT_NAMEn_DEF(GFX_GETINFO_INTENSITY_A0_B0,0);
53 UADP_SDT_NAMEn_DEF(GFX_GETINFO_INTENSITY_A0,1);
54 UADP_SDT_NAMEn_DEF(GFX_GETINFO_INTENSITY,1);
55
56 UADP_SDT_NAMEn_DEF(GFX_GETINFO_DBGINFO_A0,0);
57 UADP_SDT_NAMEn_DEF(GFX_GETINFO_DBGINFO,1);
58 //MAPI_CMD_GFX_LINEDRAW ,
59 #ifdef BIFROST_32BIT_MODE,
60 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B1,0);
61 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B0_C1,1);
62 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B0_C0,1);
63 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B0,2);
64 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0,2);
65 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW,1);
66 #else
67 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B1,0);
68 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0_B0,0);
69 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW_A0,2);
70 UADP_SDT_NAMEn_DEF(GFX_LINEDRAW,1);
71 #endif
72 //MAPI_CMD_GFX_RECTFILL ,
73 #ifdef BIFROST_32BIT_MODE
74 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B1,0);
75 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B0_C1,1);
76 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B0_C0,1);
77 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B0,2);
78 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0,2);
79 UADP_SDT_NAMEn_DEF(GFX_RECTFILL,1);
80 #else
81 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B1,0);
82 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0_B0,0);
83 UADP_SDT_NAMEn_DEF(GFX_RECTFILL_A0,2);
84 UADP_SDT_NAMEn_DEF(GFX_RECTFILL,1);
85 #endif
86 //MAPI_CMD_GFX_TRIFILL ,
87 UADP_SDT_NAMEn_DEF(GFX_TRIFILL_A0_B1,0);
88 UADP_SDT_NAMEn_DEF(GFX_TRIFILL_A0_B0,0);
89 UADP_SDT_NAMEn_DEF(GFX_TRIFILL_A0,2);
90 UADP_SDT_NAMEn_DEF(GFX_TRIFILL,1);
91 //MAPI_CMD_GFX_SPANFILL ,
92 UADP_SDT_NAMEn_DEF(GFX_SPANFILL_A0_B1,0);
93 UADP_SDT_NAMEn_DEF(GFX_SPANFILL_A0_B0,0);
94 UADP_SDT_NAMEn_DEF(GFX_SPANFILL_A0,2);
95 UADP_SDT_NAMEn_DEF(GFX_SPANFILL,1);
96 //MAPI_CMD_GFX_BITBLT ,
97 #ifdef BIFROST_32BIT_MODE
98 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B4,0);
99 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B3,0);
100 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B2,0);
101 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B0_C1,1);
102 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B0_C0,1);
103 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B0,2);
104 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0,4);
105 UADP_SDT_NAMEn_DEF(GFX_BITBLT,1);
106 #else
107 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B4,0);
108 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B3,0);
109 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B2,0);
110 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0_B0,0);
111 UADP_SDT_NAMEn_DEF(GFX_BITBLT_A0,4);
112 UADP_SDT_NAMEn_DEF(GFX_BITBLT,1);
113 #endif
114 //MAPI_CMD_GFX_SET_ABL ,
115 UADP_SDT_NAMEn_DEF(GFX_ABL_ABL_A0,0);
116 UADP_SDT_NAMEn_DEF(GFX_ABL_ABL,1);
117
118 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B1_C1,0);
119 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B1_C0,0);
120 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B1,2);
121 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B0_C1,0);
122 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B0_C0,0);
123 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0_B0,2);
124 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY_A0,2);
125 UADP_SDT_NAMEn_DEF(GFX_ABL_COLORKEY,1);
126
127 UADP_SDT_NAMEn_DEF(GFX_ABL_DFB_A0,0);
128 UADP_SDT_NAMEn_DEF(GFX_ABL_DFB,1);
129
130 UADP_SDT_NAMEn_DEF(GFX_ABL_ROP_A0,0);
131 UADP_SDT_NAMEn_DEF(GFX_ABL_ROP,1);
132
133 UADP_SDT_NAMEn_DEF(GFX_ABL_INTENSITY_A0_B0,0);
134 UADP_SDT_NAMEn_DEF(GFX_ABL_INTENSITY_A0,1);
135 UADP_SDT_NAMEn_DEF(GFX_ABL_INTENSITY,1);
136 //MAPI_CMD_GFX_SET_CONFIG ,
137 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_POWERON_A0,0);
138 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_POWERON,1);
139
140 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_FLUSHQUEUE_A0,0);
141 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_FLUSHQUEUE,1);
142
143 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_TAGID_A0,0);
144 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_TAGID,1);
145
146 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_NEXTTAGID_A0,0);
147 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_NEXTTAGID,1);
148
149 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WAITFORTAGID_A0,0);
150 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WAITFORTAGID,1);
151
152 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ONEPIXELMODE_A0,0);
153 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ONEPIXELMODE,1);
154
155 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_DITHER_A0,0);
156 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_DITHER,1);
157 #ifdef BIFROST_32BIT_MODE
158 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_VQ_A0,1);
159 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_VQ,1);
160 #else
161 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_VQ_A0,0);
162 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_VQ,1);
163 #endif
164 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_MIRROR_A0,0);
165 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_MIRROR,1);
166
167 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_DST_MIRROR_A0,0);
168 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_DST_MIRROR,1);
169
170 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ROTATE_A0,0);
171 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ROTATE,1);
172
173 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ITALIC_A0,0);
174 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ITALIC,1);
175
176 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_NEARESTMODE_A0,0);
177 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_NEARESTMODE,1);
178
179 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_PALETTEOPT_A0_B0,0);
180 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_PALETTEOPT_A0,1);
181 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_PALETTEOPT,1);
182
183 //UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_PALETTEOPT_A0,0);
184 //UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_PALETTEOPT,1);
185
186 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CLIP_A0_B1,0);
187 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CLIP_A0_B0,0);
188 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CLIP_A0,2);
189 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CLIP,1);
190 #ifdef BIFROST_32BIT_MODE
191 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WRITEPROTECT_A0,2);
192 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WRITEPROTECT,1);
193 #else
194 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WRITEPROTECT_A0,0);
195 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_WRITEPROTECT,1);
196 #endif
197 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ALPHA_COMPARE_A0,0);
198 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_ALPHA_COMPARE,1);
199
200 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CSC_A0,0);
201 UADP_SDT_NAMEn_DEF(GFX_SETCONFIG_CSC,1);
202 //MAPI_CMD_GFX_BITMAP ,
203 #ifdef BIFROST_32BIT_MODE
204 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B2,0);
205 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B0_C1,1);
206 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B0_C0,1);
207 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B0,2);
208 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0,2);
209 UADP_SDT_NAMEn_DEF(GFX_BITMAP,1);
210 #else
211 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B2,0);
212 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0_B0,0);
213 UADP_SDT_NAMEn_DEF(GFX_BITMAP_A0,2);
214 UADP_SDT_NAMEn_DEF(GFX_BITMAP,1);
215 #endif
216 //MAPI_CMD_GFX_FONT ,
217 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B4_C0,0);
218 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B4,1);
219 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B3_C0,0);
220 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B3,1);
221 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B2,0);
222 UADP_SDT_NAMEn_DEF(GFX_FONT_A0_B0,0);
223 UADP_SDT_NAMEn_DEF(GFX_FONT_A0,3);
224 UADP_SDT_NAMEn_DEF(GFX_FONT,1);
225 //MAPI_CMD_GFX_POWERSTATE ,
226 UADP_SDT_NAMEn_DEF(GFX_POWERSTATE_A0,0);
227 UADP_SDT_NAMEn_DEF(GFX_POWERSTATE,1);
228 //MAPI_CMD_GFX_CB ,
229 //MAPI_CMD_GFX_MISC ,
230 UADP_SDT_NAMEn_DEF(GFX_MISC_EXIT_A0,0);
231 UADP_SDT_NAMEn_DEF(GFX_MISC_EXIT,1);
232 #ifdef BIFROST_32BIT_MODE
233 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME_BY_WORLD_A0,1);
234 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME_BY_WORLD,1);
235 #else
236 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME_BY_WORLD_A0,0);
237 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME_BY_WORLD,1);
238 #endif
239 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME_A0,1);
240 UADP_SDT_NAMEn_DEF(GFX_MISC_CLEAR_FRAME,1);
241
242 UADP_SDT_NAMEn_DEF(GFX_MISC_LINE_PATTERN_RESET_A0,0);
243 UADP_SDT_NAMEn_DEF(GFX_MISC_LINE_PATTERN_RESET,1);
244
245 UADP_SDT_NAMEn_DEF(GFX_MISC_LINE_PATTERN_A0,0);
246 UADP_SDT_NAMEn_DEF(GFX_MISC_LINE_PATTERN,1);
247
248 UADP_SDT_NAMEn_DEF(GFX_MISC_BEGINE_DRAW_A0,0);
249 UADP_SDT_NAMEn_DEF(GFX_MISC_BEGINE_DRAW,1);
250
251 UADP_SDT_NAMEn_DEF(GFX_MISC_END_DRAW_A0,0);
252 UADP_SDT_NAMEn_DEF(GFX_MISC_END_DRAW,1);
253
254 UADP_SDT_NAMEn_DEF(GFX_MISC_DEBUG_LEVEL_A0,0);
255 UADP_SDT_NAMEn_DEF(GFX_MISC_DEBUG_LEVEL,1);
256
257 UADP_SDT_NAMEn_DEF(GFX_MISC_SET_HK_A0,0);
258 UADP_SDT_NAMEn_DEF(GFX_MISC_SET_HK,1);
259
260 UADP_SDT_NAMEn_DEF(GFX_MISC_GET_HK_A0,0);
261 UADP_SDT_NAMEn_DEF(GFX_MISC_GET_HK,1);
262
263 UADP_SDT_NAMEn_DEF(GFX_MISC_PATCH_MODE_A0,0);
264 UADP_SDT_NAMEn_DEF(GFX_MISC_PATCH_MODE,1);
265
266 UADP_SDT_NAMEn_DEF(GFX_MISC_STR_BLT_SCK_TYPE_A0,0);
267 UADP_SDT_NAMEn_DEF(GFX_MISC_STR_BLT_SCK_TYPE,1);
268
269 UADP_SDT_NAMEn_DEF(GFX_MISC_SET_ALB_1555_A0,0);
270 UADP_SDT_NAMEn_DEF(GFX_MISC_SET_ALB_1555,1);
271
272 UADP_SDT_NAMEn_DEF(GFX_MISC_GET_ALB_1555_A0,0);
273 UADP_SDT_NAMEn_DEF(GFX_MISC_GET_ALB_1555,1);
274 //MAPI_CMD_GFX_TWOSRCBITBLT ,
275 #ifdef BIFROST_32BIT_MODE
276 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B3,0);
277 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B2_C0,1);
278 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B2,1);
279 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B0_C1,1);
280 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B0_C0,1);
281 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B0,2);
282 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0,3);
283 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT,1);
284 #else
285 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B3,0);
286 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B2_C0,0);
287 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B2,1);
288 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0_B0,0);
289 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT_A0,3);
290 UADP_SDT_NAMEn_DEF(GFX_TWOSRC_BITBLT,1);
291 #endif
292 //MAPI_CMD_GFX_TLB ,
293 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_MODE_A0,0);
294 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_MODE,1);
295 #ifdef BIFROST_32BIT_MODE
296 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_ADDR_A0,2);
297 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_ADDR,1);
298 #else
299 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_ADDR_A0,0);
300 UADP_SDT_NAMEn_DEF(GFX_TLB_SET_ADDR,1);
301 #endif
302 UADP_SDT_NAMEn_DEF(GFX_TLB_FLUSH_TABLE_A0,0);
303 UADP_SDT_NAMEn_DEF(GFX_TLB_FLUSH_TABLE,1);
304
305 UADP_SDT_NAMEn_DEF(GFX_TLB_TAG_A0,0);
306 UADP_SDT_NAMEn_DEF(GFX_TLB_TAG,1);
307
308 //MAPI_CMD_GFX_GET_CAPS
309 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_MULTI_PIXEL_A0_B0,0);
310 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_MULTI_PIXEL_A0,1);
311 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_MULTI_PIXEL,1);
312
313 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_BLT_DOWN_SCALE_A0_B0,0);
314 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_BLT_DOWN_SCALE_A0,1);
315 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_BLT_DOWN_SCALE,1);
316
317 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_DFB_BLENDING_A0_B0,0);
318 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_DFB_BLENDING_A0,1);
319 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_DFB_BLENDING,1);
320
321 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_ALIGN_A0_B0,0);
322 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_ALIGN_A0,1);
323 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_ALIGN,1);
324
325 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_TLB_A0_B0,0);
326 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_TLB_A0,1);
327 UADP_SDT_NAMEn_DEF(GFX_GETCAPS_TLB,1);
328
329 #define SPT(Name) spt_##Name
330
331
GFX_adp_Init(FUtopiaIOctl * pIoctl)332 MS_U32 GFX_adp_Init(FUtopiaIOctl* pIoctl)
333 {
334 //=======================================MAPI_CMD_GFX_INIT=======================================================//
335 #ifdef BIFROST_32BIT_MODE
336 UADP_SDT_NAME0(GFX_NULL,0);
337 UADP_SDT_NAME1(GFX_INIT_A0,GFX_Init_Config,UADP_SDT_AT,u32VCmdQAddr,GFX_NULL);
338 UADP_SDT_NAME1(GFX_INIT,GFX_INIT_ARGS,UADP_SDT_P2N,pGFX_Init,GFX_INIT_A0);
339 #else
340 UADP_SDT_NAME0(GFX_INIT_A0,GFX_Init_Config);
341 UADP_SDT_NAME1(GFX_INIT,GFX_INIT_ARGS,UADP_SDT_P2N,pGFX_Init,GFX_INIT_A0);
342 #endif
343 //=======================================MAPI_CMD_GFX_GET_INFO===================================================//
344 #ifdef BIFROST_32BIT_MODE
345 UADP_SDT_NAME0(GFX_NULL,0);
346 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B1_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
347 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B1,GFX_Dst_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_GETINFO_BUFFERINFO_A0_B1_C0);
348 UADP_SDT_NAME0(GFX_NULL,0);
349 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
350 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B0,GFX_Src_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_GETINFO_BUFFERINFO_A0_B0_C0);
351 UADP_SDT_NAME2(GFX_GETINFO_BUFFERINFO_A0,GFX_Get_BufferInfo,UADP_SDT_P2N,pSrcbufInfo,GFX_GETINFO_BUFFERINFO_A0_B0,UADP_SDT_P2N,pDstbufInfo,GFX_GETINFO_BUFFERINFO_A0_B1);
352 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_BUFFERINFO_A0);
353 #else
354 UADP_SDT_NAME0(GFX_GETINFO_BUFFERINFO_A0_B1_C0,GFX_BufferInfo);
355 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B1,GFX_Dst_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_GETINFO_BUFFERINFO_A0_B1_C0);
356 UADP_SDT_NAME0(GFX_GETINFO_BUFFERINFO_A0_B0_C0,GFX_BufferInfo);
357 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO_A0_B0,GFX_Src_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_GETINFO_BUFFERINFO_A0_B0_C0);
358 UADP_SDT_NAME2(GFX_GETINFO_BUFFERINFO_A0,GFX_Get_BufferInfo,UADP_SDT_P2N,pSrcbufInfo,GFX_GETINFO_BUFFERINFO_A0_B0,UADP_SDT_P2N,pDstbufInfo,GFX_GETINFO_BUFFERINFO_A0_B1);
359 UADP_SDT_NAME1(GFX_GETINFO_BUFFERINFO,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_BUFFERINFO_A0);
360 #endif
361
362 UADP_SDT_NAME0(GFX_GETINFO_TAGID_A0,MS_U16);
363 UADP_SDT_NAME1(GFX_GETINFO_TAGID,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_TAGID_A0);
364
365 UADP_SDT_NAME0(GFX_GETINFO_NEXTTAGID_A0_B0,MS_U16);
366 UADP_SDT_NAME1(GFX_GETINFO_NEXTTAGID_A0,GFX_Get_NextTagID,UADP_SDT_P2N,pTagID,GFX_GETINFO_NEXTTAGID_A0_B0);
367 UADP_SDT_NAME1(GFX_GETINFO_NEXTTAGID,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_NEXTTAGID_A0);
368
369 UADP_SDT_NAME0(GFX_GETINFO_CLIP_A0_B1,GFX_Point);
370 UADP_SDT_NAME0(GFX_GETINFO_CLIP_A0_B0,GFX_Point);
371 UADP_SDT_NAME2(GFX_GETINFO_CLIP_A0,GFX_Get_Clip_Property,UADP_SDT_P2N,pV0,GFX_GETINFO_CLIP_A0_B0,UADP_SDT_P2N,pV1,GFX_GETINFO_CLIP_A0_B1);
372 UADP_SDT_NAME1(GFX_GETINFO_CLIP,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_CLIP_A0);
373
374 UADP_SDT_NAME0(GFX_GETINFO_INTENSITY_A0_B0,MS_U32);
375 UADP_SDT_NAME1(GFX_GETINFO_INTENSITY_A0,GFX_Get_Intensity,UADP_SDT_P2N,pColor,GFX_GETINFO_INTENSITY_A0_B0);
376 UADP_SDT_NAME1(GFX_GETINFO_INTENSITY,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_INTENSITY_A0);
377
378 UADP_SDT_NAME0(GFX_GETINFO_DBGINFO_A0,GFX_DbgInfo);
379 UADP_SDT_NAME1(GFX_GETINFO_DBGINFO,GFX_GETINFO_ARGS,UADP_SDT_P2N,pGFX_GetInfo,GFX_GETINFO_DBGINFO_A0);
380 //=======================================MAPI_CMD_GFX_LINEDRAW===================================================//
381 #ifdef BIFROST_32BIT_MODE
382 UADP_SDT_NAME0(GFX_LINEDRAW_A0_B1,GFX_DrawLineInfo);
383 UADP_SDT_NAME0(GFX_NULL,0);
384 UADP_SDT_NAME1(GFX_LINEDRAW_A0_B0_C1,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
385 UADP_SDT_NAME0(GFX_NULL,0);
386 UADP_SDT_NAME1(GFX_LINEDRAW_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
387 UADP_SDT_NAME2(GFX_LINEDRAW_A0_B0,GFX_FireInfo,UADP_SDT_ES,SrcbufInfo,GFX_LINEDRAW_A0_B0_C0,UADP_SDT_ES,DstbufInfo,GFX_LINEDRAW_A0_B0_C1);
388 UADP_SDT_NAME2(GFX_LINEDRAW_A0,GFX_Set_DrawLineInfo,UADP_SDT_P2N,pFireInfo,GFX_LINEDRAW_A0_B0,UADP_SDT_P2N,pDrawLineInfo,GFX_LINEDRAW_A0_B1);
389 UADP_SDT_NAME1(GFX_LINEDRAW,GFX_LINEDRAW_ARGS,UADP_SDT_P2N,pLineInfo,GFX_LINEDRAW_A0);
390 #else
391 UADP_SDT_NAME0(GFX_LINEDRAW_A0_B1,GFX_DrawLineInfo);
392 UADP_SDT_NAME0(GFX_LINEDRAW_A0_B0,GFX_FireInfo);
393 UADP_SDT_NAME2(GFX_LINEDRAW_A0,GFX_Set_DrawLineInfo,UADP_SDT_P2N,pFireInfo,GFX_LINEDRAW_A0_B0,UADP_SDT_P2N,pDrawLineInfo,GFX_LINEDRAW_A0_B1);
394 UADP_SDT_NAME1(GFX_LINEDRAW,GFX_LINEDRAW_ARGS,UADP_SDT_P2N,pLineInfo,GFX_LINEDRAW_A0);
395 #endif
396 //=======================================MAPI_CMD_GFX_RECTFILL===================================================//
397 #ifdef BIFROST_32BIT_MODE
398 UADP_SDT_NAME0(GFX_RECTFILL_A0_B1,GFX_RectFillInfo);
399 UADP_SDT_NAME0(GFX_NULL,0);
400 UADP_SDT_NAME1(GFX_RECTFILL_A0_B0_C1,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
401 UADP_SDT_NAME0(GFX_NULL,0);
402 UADP_SDT_NAME1(GFX_RECTFILL_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
403 UADP_SDT_NAME2(GFX_RECTFILL_A0_B0,GFX_FireInfo,UADP_SDT_ES,SrcbufInfo,GFX_RECTFILL_A0_B0_C0,UADP_SDT_ES,DstbufInfo,GFX_RECTFILL_A0_B0_C1);
404 UADP_SDT_NAME2(GFX_RECTFILL_A0,GFX_Set_RectFillInfo,UADP_SDT_P2N,pFireInfo,GFX_RECTFILL_A0_B0,UADP_SDT_P2N,pRectFillInfo,GFX_RECTFILL_A0_B1);
405 UADP_SDT_NAME1(GFX_RECTFILL,GFX_RECTFILL_ARGS,UADP_SDT_P2N,pFillBlock,GFX_RECTFILL_A0);
406 #else
407 UADP_SDT_NAME0(GFX_RECTFILL_A0_B1,GFX_RectFillInfo);
408 UADP_SDT_NAME0(GFX_RECTFILL_A0_B0,GFX_FireInfo);
409 UADP_SDT_NAME2(GFX_RECTFILL_A0,GFX_Set_RectFillInfo,UADP_SDT_P2N,pFireInfo,GFX_RECTFILL_A0_B0,UADP_SDT_P2N,pRectFillInfo,GFX_RECTFILL_A0_B1);
410 UADP_SDT_NAME1(GFX_RECTFILL,GFX_RECTFILL_ARGS,UADP_SDT_P2N,pFillBlock,GFX_RECTFILL_A0);
411 #endif
412 //=======================================MAPI_CMD_GFX_TRIFILL===================================================//
413 UADP_SDT_NAME0(GFX_TRIFILL_A0_B1,GFX_TriFillInfo);
414 UADP_SDT_NAME0(GFX_TRIFILL_A0_B0,GFX_FireInfo);
415 UADP_SDT_NAME2(GFX_TRIFILL_A0,GFX_Set_TriFillInfo,UADP_SDT_P2N,pFireInfo,GFX_TRIFILL_A0_B0,UADP_SDT_P2N,pTriFillInfo,GFX_TRIFILL_A0_B1);
416 UADP_SDT_NAME1(GFX_TRIFILL,GFX_TRIFILL_ARGS,UADP_SDT_P2N,pFillBlock,GFX_TRIFILL_A0);
417 //=======================================MAPI_CMD_GFX_SPANFILL===================================================//
418 UADP_SDT_NAME0(GFX_SPANFILL_A0_B1,GFX_SpanFillInfo);
419 UADP_SDT_NAME0(GFX_SPANFILL_A0_B0,GFX_FireInfo);
420 UADP_SDT_NAME2(GFX_SPANFILL_A0,GFX_Set_SpanFillInfo,UADP_SDT_P2N,pFireInfo,GFX_SPANFILL_A0_B0,UADP_SDT_P2N,pSpanFillInfo,GFX_SPANFILL_A0_B1);
421 UADP_SDT_NAME1(GFX_SPANFILL,GFX_SPANFILL_ARGS,UADP_SDT_P2N,pFillBlock,GFX_SPANFILL_A0);
422 //=======================================MAPI_CMD_GFX_BITBLT===================================================//
423 #ifdef BIFROST_32BIT_MODE
424 UADP_SDT_NAME0(GFX_BITBLT_A0_B4,MS_U32);
425 UADP_SDT_NAME0(GFX_BITBLT_A0_B3,GFX_ScaleInfo);
426 UADP_SDT_NAME0(GFX_BITBLT_A0_B2,GFX_DrawRect);
427 UADP_SDT_NAME0(GFX_NULL,0);
428 UADP_SDT_NAME1(GFX_BITBLT_A0_B0_C1,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
429 UADP_SDT_NAME0(GFX_NULL,0);
430 UADP_SDT_NAME1(GFX_BITBLT_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
431 UADP_SDT_NAME2(GFX_BITBLT_A0_B0,GFX_FireInfo,UADP_SDT_ES,SrcbufInfo,GFX_BITBLT_A0_B0_C0,UADP_SDT_ES,DstbufInfo,GFX_BITBLT_A0_B0_C1);
432 UADP_SDT_NAME4(GFX_BITBLT_A0,GFX_BitBltInfo,UADP_SDT_P2N,pFireInfo,GFX_BITBLT_A0_B0,UADP_SDT_P2N,pDrawRect,GFX_BITBLT_A0_B2,UADP_SDT_P2N,pScaleInfo,GFX_BITBLT_A0_B3,UADP_SDT_P2N,pIntensity,GFX_BITBLT_A0_B4);
433 UADP_SDT_NAME1(GFX_BITBLT,GFX_BITBLT_ARGS,UADP_SDT_P2N,pGFX_BitBlt,GFX_BITBLT_A0);
434 #else
435 UADP_SDT_NAME0(GFX_BITBLT_A0_B4,MS_U32);
436 UADP_SDT_NAME0(GFX_BITBLT_A0_B3,GFX_ScaleInfo);
437 UADP_SDT_NAME0(GFX_BITBLT_A0_B2,GFX_DrawRect);
438 UADP_SDT_NAME0(GFX_BITBLT_A0_B0,GFX_FireInfo);
439 UADP_SDT_NAME4(GFX_BITBLT_A0,GFX_BitBltInfo,UADP_SDT_P2N,pFireInfo,GFX_BITBLT_A0_B0,UADP_SDT_P2N,pDrawRect,GFX_BITBLT_A0_B2,UADP_SDT_P2N,pScaleInfo,GFX_BITBLT_A0_B3,UADP_SDT_P2N,pIntensity,GFX_BITBLT_A0_B4);
440 UADP_SDT_NAME1(GFX_BITBLT,GFX_BITBLT_ARGS,UADP_SDT_P2N,pGFX_BitBlt,GFX_BITBLT_A0);
441 #endif
442 //=======================================MAPI_CMD_GFX_SET_ABL===================================================//
443 //ABL
444 UADP_SDT_NAME0(GFX_ABL_ABL_A0,GFX_Set_ABL);
445 UADP_SDT_NAME1(GFX_ABL_ABL,GFX_ABL_ARGS,UADP_SDT_P2N,pGFX_ABL,GFX_ABL_ABL_A0);
446 //ColorKey
447 /*UADP_SDT_NAME0(GFX_ABL_COLORKEY_A0_B1_C1,GFX_BlinkData);
448 UADP_SDT_NAME0(GFX_ABL_COLORKEY_A0_B1_C0,GFX_BlinkData);
449 UADP_SDT_NAME2(GFX_ABL_COLORKEY_A0_B1,GFX_Set_Dst_ColorKey,pS_color,GFX_ABL_COLORKEY_A0_B1_C0,pE_color,GFX_ABL_COLORKEY_A0_B1_C1);
450 UADP_SDT_NAME0(GFX_ABL_COLORKEY_A0_B0_C1,GFX_BlinkData);
451 UADP_SDT_NAME0(GFX_ABL_COLORKEY_A0_B0_C0,GFX_BlinkData);
452 UADP_SDT_NAME2(GFX_ABL_COLORKEY_A0_B0,GFX_Set_Src_ColorKey,pS_color,GFX_ABL_COLORKEY_A0_B0_C0,pE_color,GFX_ABL_COLORKEY_A0_B0_C1);
453 UADP_SDT_NAME2(GFX_ABL_COLORKEY_A0,GFX_Set_Colorkey,pSrcbufInfo,GFX_ABL_COLORKEY_A0_B0,pDstbufInfo,GFX_ABL_COLORKEY_A0_B1);
454 UADP_SDT_NAME1(GFX_ABL_COLORKEY,GFX_ABL_ARGS,pGFX_ABL,GFX_ABL_COLORKEY_A0);*/
455 //DFB
456 UADP_SDT_NAME0(GFX_ABL_DFB_A0,GFX_Set_DFB);
457 UADP_SDT_NAME1(GFX_ABL_DFB,GFX_ABL_ARGS,UADP_SDT_P2N,pGFX_ABL,GFX_ABL_DFB_A0);
458 //ROP
459 UADP_SDT_NAME0(GFX_ABL_ROP_A0,GFX_Set_DFB);
460 UADP_SDT_NAME1(GFX_ABL_ROP,GFX_ABL_ARGS,UADP_SDT_P2N,pGFX_ABL,GFX_ABL_ROP_A0);
461 //INTENSITY
462 UADP_SDT_NAME0(GFX_ABL_INTENSITY_A0_B0,MS_U32);
463 UADP_SDT_NAME1(GFX_ABL_INTENSITY_A0,GFX_Set_Intensity,UADP_SDT_P2N,pColor,GFX_ABL_INTENSITY_A0_B0);
464 UADP_SDT_NAME1(GFX_ABL_INTENSITY,GFX_ABL_ARGS,UADP_SDT_P2N,pGFX_ABL,GFX_ABL_INTENSITY_A0);
465 //=======================================MAPI_CMD_GFX_SET_CONFIG===================================================/
466 UADP_SDT_NAME0(GFX_SETCONFIG_POWERON_A0,MS_BOOL);
467 UADP_SDT_NAME1(GFX_SETCONFIG_POWERON,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_POWERON_A0);
468
469 UADP_SDT_NAME0(GFX_SETCONFIG_FLUSHQUEUE_A0,MS_U32);
470 UADP_SDT_NAME1(GFX_SETCONFIG_FLUSHQUEUE,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_FLUSHQUEUE_A0);
471
472 UADP_SDT_NAME0(GFX_SETCONFIG_TAGID_A0,MS_U32);
473 UADP_SDT_NAME1(GFX_SETCONFIG_TAGID,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_TAGID_A0);
474
475 UADP_SDT_NAME0(GFX_SETCONFIG_NEXTTAGID_A0,MS_U32);
476 UADP_SDT_NAME1(GFX_SETCONFIG_NEXTTAGID,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_NEXTTAGID_A0);
477
478 UADP_SDT_NAME0(GFX_SETCONFIG_WAITFORTAGID_A0,MS_U32);
479 UADP_SDT_NAME1(GFX_SETCONFIG_WAITFORTAGID,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_WAITFORTAGID_A0);
480
481 UADP_SDT_NAME0(GFX_SETCONFIG_ONEPIXELMODE_A0,MS_BOOL);
482 UADP_SDT_NAME1(GFX_SETCONFIG_ONEPIXELMODE,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_ONEPIXELMODE_A0);
483
484 UADP_SDT_NAME0(GFX_SETCONFIG_DITHER_A0,MS_BOOL);
485 UADP_SDT_NAME1(GFX_SETCONFIG_DITHER,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_DITHER_A0);
486
487 #ifdef BIFROST_32BIT_MODE
488 UADP_SDT_NAME0(GFX_NULL,0);
489 UADP_SDT_NAME1(GFX_SETCONFIG_VQ_A0,GFX_Set_VQ,UADP_SDT_AT,u32Addr,GFX_NULL);
490 UADP_SDT_NAME1(GFX_SETCONFIG_VQ,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_VQ_A0);
491 #else
492 UADP_SDT_NAME0(GFX_SETCONFIG_VQ_A0,GFX_Set_VQ);
493 UADP_SDT_NAME1(GFX_SETCONFIG_VQ,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_VQ_A0);
494 #endif
495
496 UADP_SDT_NAME0(GFX_SETCONFIG_MIRROR_A0,GFX_Set_Mirror);
497 UADP_SDT_NAME1(GFX_SETCONFIG_MIRROR,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_MIRROR_A0);
498
499 UADP_SDT_NAME0(GFX_SETCONFIG_DST_MIRROR_A0,GFX_Set_Mirror);
500 UADP_SDT_NAME1(GFX_SETCONFIG_DST_MIRROR,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_DST_MIRROR_A0);
501
502 UADP_SDT_NAME0(GFX_SETCONFIG_ROTATE_A0,GFX_RotateAngle);
503 UADP_SDT_NAME1(GFX_SETCONFIG_ROTATE,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_ROTATE_A0);
504
505 UADP_SDT_NAME0(GFX_SETCONFIG_ITALIC_A0,GFX_Set_Italic);
506 UADP_SDT_NAME1(GFX_SETCONFIG_ITALIC,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_ITALIC_A0);
507
508 UADP_SDT_NAME0(GFX_SETCONFIG_NEARESTMODE_A0,MS_BOOL);
509 UADP_SDT_NAME1(GFX_SETCONFIG_NEARESTMODE,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_NEARESTMODE_A0);
510
511 UADP_SDT_NAME0(GFX_SETCONFIG_PALETTEOPT_A0_B0,GFX_PaletteEntry);
512 UADP_SDT_NAME1(GFX_SETCONFIG_PALETTEOPT_A0,GFX_Set_PaletteOpt, UADP_SDT_P2N, pPalArray, GFX_SETCONFIG_PALETTEOPT_A0_B0);
513 UADP_SDT_NAME1(GFX_SETCONFIG_PALETTEOPT,GFX_SETCONFIG_ARGS, UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_PALETTEOPT_A0);
514
515
516 UADP_SDT_NAME0(GFX_SETCONFIG_CLIP_A0_B1,GFX_Point);
517 UADP_SDT_NAME0(GFX_SETCONFIG_CLIP_A0_B0,GFX_Point);
518 UADP_SDT_NAME2(GFX_SETCONFIG_CLIP_A0,GFX_Set_Clip_Property,UADP_SDT_P2N,pV0,GFX_SETCONFIG_CLIP_A0_B0,UADP_SDT_P2N,pV1,GFX_SETCONFIG_CLIP_A0_B1);
519 UADP_SDT_NAME1(GFX_SETCONFIG_CLIP,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_CLIP_A0);
520
521 #ifdef BIFROST_32BIT_MODE
522 UADP_SDT_NAME0(GFX_NULL,0);
523 UADP_SDT_NAME0(GFX_NULL,0);
524 UADP_SDT_NAME2(GFX_SETCONFIG_WRITEPROTECT_A0,GFX_Set_WriteProtect,UADP_SDT_AT,u32Addr_Low,GFX_NULL,UADP_SDT_AT,u32Addr_High,GFX_NULL);
525 UADP_SDT_NAME1(GFX_SETCONFIG_WRITEPROTECT,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_WRITEPROTECT_A0);
526 #else
527 UADP_SDT_NAME0(GFX_SETCONFIG_WRITEPROTECT_A0,GFX_Set_WriteProtect);
528 UADP_SDT_NAME1(GFX_SETCONFIG_WRITEPROTECT,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_WRITEPROTECT_A0);
529 #endif
530
531 UADP_SDT_NAME0(GFX_SETCONFIG_ALPHA_COMPARE_A0,GFX_Set_AlphaCompare);
532 UADP_SDT_NAME1(GFX_SETCONFIG_ALPHA_COMPARE,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_ALPHA_COMPARE_A0);
533
534 UADP_SDT_NAME0(GFX_SETCONFIG_CSC_A0,GFX_Set_CSC);
535 UADP_SDT_NAME1(GFX_SETCONFIG_CSC,GFX_SETCONFIG_ARGS,UADP_SDT_P2N,pGFX_ConfigInfo,GFX_SETCONFIG_CSC_A0);
536 //=======================================MAPI_CMD_GFX_BITMAP===================================================/
537 #ifdef BIFROST_32BIT_MODE
538 UADP_SDT_NAME0(GFX_BITMAP_A0_B2,GFX_DrawBmpInfo);
539 UADP_SDT_NAME0(GFX_NULL,0);
540 UADP_SDT_NAME1(GFX_BITMAP_A0_B0_C1,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
541 UADP_SDT_NAME0(GFX_NULL,0);
542 UADP_SDT_NAME1(GFX_BITMAP_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
543 UADP_SDT_NAME2(GFX_BITMAP_A0_B0,GFX_FireInfo,UADP_SDT_ES,SrcbufInfo,GFX_BITMAP_A0_B0_C0,UADP_SDT_ES,DstbufInfo,GFX_BITMAP_A0_B0_C1);
544 UADP_SDT_NAME2(GFX_BITMAP_A0,GFX_Bitmap,UADP_SDT_P2N,pFireInfo,GFX_BITMAP_A0_B0,UADP_SDT_P2N,pBmpInfo,GFX_BITMAP_A0_B2);
545 UADP_SDT_NAME1(GFX_BITMAP,GFX_BITMAP_ARGS,UADP_SDT_P2N,pGFX_Bitmap,GFX_BITMAP_A0);
546 #else
547 UADP_SDT_NAME0(GFX_BITMAP_A0_B2,GFX_DrawBmpInfo);
548 UADP_SDT_NAME0(GFX_BITMAP_A0_B0,GFX_FireInfo);
549 UADP_SDT_NAME2(GFX_BITMAP_A0,GFX_Bitmap,UADP_SDT_P2N,pFireInfo,GFX_BITMAP_A0_B0,UADP_SDT_P2N,pBmpInfo,GFX_BITMAP_A0_B2);
550 UADP_SDT_NAME1(GFX_BITMAP,GFX_BITMAP_ARGS,UADP_SDT_P2N,pGFX_Bitmap,GFX_BITMAP_A0);
551 #endif
552 //=======================================MAPI_CMD_GFX_FONT===================================================/
553 UADP_SDT_NAME0(GFX_FONT_A0_B4_C0,GFX_GlyphBbox);
554 UADP_SDT_NAME1(GFX_FONT_A0_B4,GFX_FontInfo,UADP_SDT_P2N, pBBox, GFX_FONT_A0_B4_C0);
555 UADP_SDT_NAME0(GFX_FONT_A0_B3_C0,GFX_GlyphDispInfo);
556 UADP_SDT_NAME1(GFX_FONT_A0_B3,GFX_TextOutInfo,UADP_SDT_P2N, pGlyphDispInfo, GFX_FONT_A0_B3_C0);
557 UADP_SDT_NAME0(GFX_FONT_A0_B0,GFX_FireInfo);
558 UADP_SDT_NAME3(GFX_FONT_A0,GFX_TextOut_V2, UADP_SDT_P2N,pFireInfo,GFX_FONT_A0_B0, UADP_SDT_P2N,pTextInfo,GFX_FONT_A0_B3, UADP_SDT_P2N,pFonttable,GFX_FONT_A0_B4);
559 UADP_SDT_NAME1(GFX_FONT,GFX_TEXTOUT_ARGS, UADP_SDT_P2N, pGFX_TextOut, GFX_FONT_A0);
560
561 //=======================================MAPI_CMD_GFX_POWERSTATE===================================================/
562 UADP_SDT_NAME0(GFX_POWERSTATE_A0,MS_U32);
563 UADP_SDT_NAME1(GFX_POWERSTATE,GFX_POWERSTATE_ARGS,UADP_SDT_P2N,pGFX_PowerState,GFX_POWERSTATE_A0);
564 //MAPI_CMD_GFX_CB ,
565
566 //=======================================MAPI_CMD_GFX_MISC===================================================/
567 UADP_SDT_NAME0(GFX_MISC_EXIT_A0,MS_U32);
568 UADP_SDT_NAME1(GFX_MISC_EXIT,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_EXIT_A0);
569
570 #ifdef BIFROST_32BIT_MODE
571 UADP_SDT_NAME0(GFX_NULL,0);
572 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME_BY_WORLD_A0,GFX_ClearFrameBuffer,UADP_SDT_AT,StrAddr,GFX_NULL);
573 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME_BY_WORLD,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_CLEAR_FRAME_BY_WORLD_A0);
574 #else
575 UADP_SDT_NAME0(GFX_MISC_CLEAR_FRAME_BY_WORLD_A0,GFX_ClearFrameBuffer);
576 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME_BY_WORLD,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_CLEAR_FRAME_BY_WORLD_A0);
577 #endif
578
579 #ifdef BIFROST_32BIT_MODE
580 UADP_SDT_NAME0(GFX_NULL,0);
581 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME_A0,GFX_ClearFrameBuffer,UADP_SDT_AT,StrAddr,GFX_NULL);
582 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_CLEAR_FRAME_A0);
583 #else
584 UADP_SDT_NAME0(GFX_MISC_CLEAR_FRAME_A0,GFX_ClearFrameBuffer);
585 UADP_SDT_NAME1(GFX_MISC_CLEAR_FRAME,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_CLEAR_FRAME_A0);
586 #endif
587
588 UADP_SDT_NAME0(GFX_MISC_LINE_PATTERN_RESET_A0,MS_U32);
589 UADP_SDT_NAME1(GFX_MISC_LINE_PATTERN_RESET,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_LINE_PATTERN_RESET_A0);
590
591 UADP_SDT_NAME0(GFX_MISC_LINE_PATTERN_A0,GFX_SetLinePattern);
592 UADP_SDT_NAME1(GFX_MISC_LINE_PATTERN,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_LINE_PATTERN_A0);
593
594 UADP_SDT_NAME0(GFX_MISC_BEGINE_DRAW_A0,MS_U32);
595 UADP_SDT_NAME1(GFX_MISC_BEGINE_DRAW,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_BEGINE_DRAW_A0);
596
597 UADP_SDT_NAME0(GFX_MISC_END_DRAW_A0,MS_U32);
598 UADP_SDT_NAME1(GFX_MISC_END_DRAW,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_END_DRAW_A0);
599
600 UADP_SDT_NAME0(GFX_MISC_DEBUG_LEVEL_A0,MS_U32);
601 UADP_SDT_NAME1(GFX_MISC_DEBUG_LEVEL,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_DEBUG_LEVEL_A0);
602
603 UADP_SDT_NAME0(GFX_MISC_SET_HK_A0,MS_BOOL);
604 UADP_SDT_NAME1(GFX_MISC_SET_HK,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_SET_HK_A0);
605
606 UADP_SDT_NAME0(GFX_MISC_GET_HK_A0,MS_BOOL);
607 UADP_SDT_NAME1(GFX_MISC_GET_HK,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_GET_HK_A0);
608
609 UADP_SDT_NAME0(GFX_MISC_PATCH_MODE_A0,MS_BOOL);
610 UADP_SDT_NAME1(GFX_MISC_PATCH_MODE,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_PATCH_MODE_A0);
611
612 UADP_SDT_NAME0(GFX_MISC_STR_BLT_SCK_TYPE_A0,GFX_SetStrBltSckType);
613 UADP_SDT_NAME1(GFX_MISC_STR_BLT_SCK_TYPE,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_STR_BLT_SCK_TYPE_A0);
614
615 UADP_SDT_NAME0(GFX_MISC_SET_ALB_1555_A0,MS_U8);
616 UADP_SDT_NAME1(GFX_MISC_SET_ALB_1555,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_SET_ALB_1555_A0);
617
618 UADP_SDT_NAME0(GFX_MISC_GET_ALB_1555_A0,MS_U8);
619 UADP_SDT_NAME1(GFX_MISC_GET_ALB_1555,GFX_MISC_ARGS,UADP_SDT_P2N,pGFX_Info,GFX_MISC_GET_ALB_1555_A0);
620 //=======================================MAPI_CMD_GFX_TWOSRCBITBLT===================================================/
621 #ifdef BIFROST_32BIT_MODE
622 UADP_SDT_NAME0(GFX_TWOSRC_BITBLT_A0_B3,GFX_DrawTwoSourceRect);
623 UADP_SDT_NAME0(GFX_NULL,0);
624 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT_A0_B2_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
625 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT_A0_B2,GFX_Dst_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_TWOSRC_BITBLT_A0_B2_C0);
626 UADP_SDT_NAME0(GFX_NULL,0);
627 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT_A0_B0_C1,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
628 UADP_SDT_NAME0(GFX_NULL,0);
629 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT_A0_B0_C0,GFX_BufferInfo,UADP_SDT_AT,u32Addr,GFX_NULL);
630 UADP_SDT_NAME2(GFX_TWOSRC_BITBLT_A0_B0,GFX_FireInfo,UADP_SDT_ES,SrcbufInfo,GFX_TWOSRC_BITBLT_A0_B0_C0,UADP_SDT_ES,DstbufInfo,GFX_TWOSRC_BITBLT_A0_B0_C1);
631 UADP_SDT_NAME3(GFX_TWOSRC_BITBLT_A0,GFX_TwoSrc_BitBltInfo,UADP_SDT_P2N,pFireInfo,GFX_TWOSRC_BITBLT_A0_B0,UADP_SDT_P2N,pDstbufInfo,GFX_TWOSRC_BITBLT_A0_B2,UADP_SDT_P2N,pDrawTwoSrcRect,GFX_TWOSRC_BITBLT_A0_B3);
632 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT,GFX_TWOSRC_BITBLT_ARGS,UADP_SDT_P2N,pGFX_TwoSrc_BitBlt,GFX_TWOSRC_BITBLT_A0);
633 #else
634 UADP_SDT_NAME0(GFX_TWOSRC_BITBLT_A0_B3,GFX_DrawTwoSourceRect);
635 UADP_SDT_NAME0(GFX_TWOSRC_BITBLT_A0_B2_C0,GFX_BufferInfo);
636 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT_A0_B2,GFX_Dst_BufferInfo,UADP_SDT_P2N,pBufInfo,GFX_TWOSRC_BITBLT_A0_B2_C0);
637 UADP_SDT_NAME0(GFX_TWOSRC_BITBLT_A0_B0,GFX_FireInfo);
638 UADP_SDT_NAME3(GFX_TWOSRC_BITBLT_A0,GFX_TwoSrc_BitBltInfo,UADP_SDT_P2N,pFireInfo,GFX_TWOSRC_BITBLT_A0_B0,UADP_SDT_P2N,pDstbufInfo,GFX_TWOSRC_BITBLT_A0_B2,UADP_SDT_P2N,pDrawTwoSrcRect,GFX_TWOSRC_BITBLT_A0_B3);
639 UADP_SDT_NAME1(GFX_TWOSRC_BITBLT,GFX_TWOSRC_BITBLT_ARGS,UADP_SDT_P2N,pGFX_TwoSrc_BitBlt,GFX_TWOSRC_BITBLT_A0);
640 #endif
641 //=======================================MAPI_CMD_GFX_TLB===========================================================/
642 UADP_SDT_NAME0(GFX_TLB_SET_MODE_A0,EN_GFX_TLB_Mode);
643 UADP_SDT_NAME1(GFX_TLB_SET_MODE,GFX_TLB_ARGS,UADP_SDT_P2N,psetting,GFX_TLB_SET_MODE_A0);
644
645 #ifdef BIFROST_32BIT_MODE
646 UADP_SDT_NAME0(GFX_NULL,0);
647 UADP_SDT_NAME0(GFX_NULL,0);
648 UADP_SDT_NAME2(GFX_TLB_SET_ADDR_A0,GFX_SetTLB_Addr,UADP_SDT_AT,tlb_src_addr,GFX_NULL,UADP_SDT_AT,tlb_dst_addr,GFX_NULL);
649 UADP_SDT_NAME1(GFX_TLB_SET_ADDR,GFX_TLB_ARGS,UADP_SDT_P2N,psetting,GFX_TLB_SET_ADDR_A0);
650 #else
651 UADP_SDT_NAME0(GFX_TLB_SET_ADDR_A0,GFX_SetTLB_Addr);
652 UADP_SDT_NAME1(GFX_TLB_SET_ADDR,GFX_TLB_ARGS,UADP_SDT_P2N,psetting,GFX_TLB_SET_ADDR_A0);
653 #endif
654
655 UADP_SDT_NAME0(GFX_TLB_FLUSH_TABLE_A0,MS_BOOL);
656 UADP_SDT_NAME1(GFX_TLB_FLUSH_TABLE,GFX_TLB_ARGS,UADP_SDT_P2N,psetting,GFX_TLB_FLUSH_TABLE_A0);
657
658 UADP_SDT_NAME0(GFX_TLB_TAG_A0,MS_U16);
659 UADP_SDT_NAME1(GFX_TLB_TAG,GFX_TLB_ARGS,UADP_SDT_P2N,psetting,GFX_TLB_TAG_A0);
660 //=======================================MAPI_CMD_GFX_GET_CAPS======================================================/
661 UADP_SDT_NAME0(GFX_GETCAPS_MULTI_PIXEL_A0_B0,GFX_CapMultiPixelInfo);
662 UADP_SDT_NAME1(GFX_GETCAPS_MULTI_PIXEL_A0,GFX_Get_CAPS,UADP_SDT_P2N,pRet,GFX_GETCAPS_MULTI_PIXEL_A0_B0);
663 UADP_SDT_NAME1(GFX_GETCAPS_MULTI_PIXEL,GFX_GETCAPS_ARGS,UADP_SDT_P2N,pGFX_GetCaps,GFX_GETCAPS_MULTI_PIXEL_A0);
664
665 UADP_SDT_NAME0(GFX_GETCAPS_BLT_DOWN_SCALE_A0_B0,GFX_BLT_DownScaleInfo);
666 UADP_SDT_NAME1(GFX_GETCAPS_BLT_DOWN_SCALE_A0,GFX_Get_CAPS,UADP_SDT_P2N,pRet,GFX_GETCAPS_BLT_DOWN_SCALE_A0_B0);
667 UADP_SDT_NAME1(GFX_GETCAPS_BLT_DOWN_SCALE,GFX_GETCAPS_ARGS,UADP_SDT_P2N,pGFX_GetCaps,GFX_GETCAPS_BLT_DOWN_SCALE_A0);
668
669 UADP_SDT_NAME0(GFX_GETCAPS_DFB_BLENDING_A0_B0,MS_U16);
670 UADP_SDT_NAME1(GFX_GETCAPS_DFB_BLENDING_A0,GFX_Get_CAPS,UADP_SDT_P2N,pRet,GFX_GETCAPS_DFB_BLENDING_A0_B0);
671 UADP_SDT_NAME1(GFX_GETCAPS_DFB_BLENDING,GFX_GETCAPS_ARGS,UADP_SDT_P2N,pGFX_GetCaps,GFX_GETCAPS_DFB_BLENDING_A0);
672
673 UADP_SDT_NAME0(GFX_GETCAPS_ALIGN_A0_B0,GFX_FmtAlignCapsInfo);
674 UADP_SDT_NAME1(GFX_GETCAPS_ALIGN_A0,GFX_Get_CAPS,UADP_SDT_P2N,pRet,GFX_GETCAPS_ALIGN_A0_B0);
675 UADP_SDT_NAME1(GFX_GETCAPS_ALIGN,GFX_GETCAPS_ARGS,UADP_SDT_P2N,pGFX_GetCaps,GFX_GETCAPS_ALIGN_A0);
676
677 UADP_SDT_NAME0(GFX_GETCAPS_TLB_A0_B0,MS_BOOL);
678 UADP_SDT_NAME1(GFX_GETCAPS_TLB_A0,GFX_Get_CAPS,UADP_SDT_P2N,pRet,GFX_GETCAPS_TLB_A0_B0);
679 UADP_SDT_NAME1(GFX_GETCAPS_TLB,GFX_GETCAPS_ARGS,UADP_SDT_P2N,pGFX_GetCaps,GFX_GETCAPS_TLB_A0);
680 *pIoctl= (FUtopiaIOctl)GFX_adp_Ioctl;
681 return 0;
682 }
683
684 /*
685 MS_U32 AESDMA_DDI_Open(void* pInstant,const void* const pAttribute)
686 {
687 return UtopiaOpen(MODULE_AESDMA,pInstant,0,pAttribute);
688 }
689 */
GFX_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)690 MS_U32 GFX_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
691 {
692 MS_U32 u32Ret=UTOPIA_STATUS_SUCCESS;
693 char buffer_arg[2048];
694
695 //printk("\33[0;31m [Start][%s][%d]u32Cmd=%d \33[m;\n",__FUNCTION__,__LINE__,u32Cmd);
696 switch(u32Cmd)
697 {
698 case MAPI_CMD_GFX_INIT:
699 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_INIT),NULL, buffer_arg,sizeof(buffer_arg));
700 break;
701 case MAPI_CMD_GFX_GET_INFO:
702 {
703 GFX_GETINFO_ARGS str;
704 if(copy_from_user(&str, pArgs, sizeof(GFX_GETINFO_ARGS)))
705 {
706 return UTOPIA_STATUS_FAIL;
707 }
708 switch(str.eGFX_GetConfig)
709 {
710 case E_GFX_GET_BUFFERINFO:
711 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_BUFFERINFO),SPT(GFX_GETINFO_BUFFERINFO), buffer_arg,sizeof(buffer_arg));
712 break;
713 case E_GFX_GET_TAGID:
714 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_TAGID),SPT(GFX_GETINFO_TAGID), buffer_arg,sizeof(buffer_arg));
715 break;
716 case E_GFX_GET_NEXTTAGID:
717 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_NEXTTAGID),SPT(GFX_GETINFO_NEXTTAGID), buffer_arg,sizeof(buffer_arg));
718 break;
719 case E_GFX_GET_CLIP:
720 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_CLIP),SPT(GFX_GETINFO_CLIP), buffer_arg,sizeof(buffer_arg));
721 break;
722 case E_GFX_GET_INTENSITY:
723 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_INTENSITY),SPT(GFX_GETINFO_INTENSITY), buffer_arg,sizeof(buffer_arg));
724 break;
725 case E_GFX_GET_DBGINFO:
726 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETINFO_DBGINFO),SPT(GFX_GETINFO_DBGINFO), buffer_arg,sizeof(buffer_arg));
727 break;
728 default:
729 break;
730 }
731 break;
732 }
733 case MAPI_CMD_GFX_LINEDRAW:
734 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_LINEDRAW),NULL, buffer_arg,sizeof(buffer_arg));
735 break;
736
737 case MAPI_CMD_GFX_RECTFILL:
738 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_RECTFILL),NULL, buffer_arg,sizeof(buffer_arg));
739 break;
740 case MAPI_CMD_GFX_TRIFILL:
741 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TRIFILL),NULL, buffer_arg,sizeof(buffer_arg));
742 break;
743 case MAPI_CMD_GFX_SPANFILL:
744 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SPANFILL),NULL, buffer_arg,sizeof(buffer_arg));
745 break;
746 case MAPI_CMD_GFX_BITBLT:
747 {
748 #if 0
749 GFX_BITBLT_ARGS GFX_BITBLT;
750 GFX_BitBltInfo GFX_BITBLT_A0;
751 GFX_Src_BufferInfo GFX_BITBLT_A0B0;
752 GFX_Dst_BufferInfo GFX_BITBLT_A0B1;
753 GFX_DrawRect GFX_BITBLT_A0B2;
754 GFX_ScaleInfo GFX_BITBLT_A0B3;
755 MS_U32 GFX_BITBLT_A0_B4;
756
757 GFX_BITBLT_ARGS* pGFX_BITBLT_Usr=NULL;
758 GFX_BitBltInfo* pGFX_BITBLT_UsrA0=NULL;
759 GFX_Src_BufferInfo* pGFX_BITBLT_UsrA0B0=NULL;
760 GFX_Dst_BufferInfo* pGFX_BITBLT_UsrA0B1=NULL;
761 GFX_DrawRect* pGFX_BITBLT_UsrA0B2=NULL;
762 GFX_ScaleInfo* pGFX_BITBLT_UsrA0B3=NULL;
763
764 pGFX_BITBLT_Usr=(GFX_BITBLT_ARGS*)pArgs;
765 pGFX_BITBLT_UsrA0=pGFX_BITBLT_Usr->pGFX_BitBlt;
766 pGFX_BITBLT_UsrA0B0=pGFX_BITBLT_UsrA0->pSrcbufInfo;
767 pGFX_BITBLT_UsrA0B1=pGFX_BITBLT_UsrA0->pDstbufInfo;
768 pGFX_BITBLT_UsrA0B2=pGFX_BITBLT_UsrA0->pDrawRect;
769 pGFX_BITBLT_UsrA0B3=pGFX_BITBLT_UsrA0->pScaleInfo;
770
771 GFX_BITBLT.pGFX_BitBlt = &GFX_BITBLT_A0;
772 GFX_BITBLT_A0.pSrcbufInfo = &GFX_BITBLT_A0B0;
773 GFX_BITBLT_A0.pDstbufInfo = &GFX_BITBLT_A0B1;
774 GFX_BITBLT_A0.pDrawRect = &GFX_BITBLT_A0B2;
775 if(copy_from_user(&GFX_BITBLT, pArgs, sizeof(GFX_BITBLT_ARGS)))
776 {
777 return UTOPIA_STATUS_FAIL;
778 }
779 if(copy_from_user(&GFX_BITBLT_A0, pGFX_BITBLT_Usr->pGFX_BitBlt, sizeof(GFX_BitBltInfo)))
780 {
781 return UTOPIA_STATUS_FAIL;
782 }
783 if(copy_from_user(&GFX_BITBLT_A0B0, pGFX_BITBLT_UsrA0->pSrcbufInfo, sizeof(GFX_Src_BufferInfo)))
784 {
785 return UTOPIA_STATUS_FAIL;
786 }
787 if(copy_from_user(&GFX_BITBLT_A0B1, pGFX_BITBLT_UsrA0->pDstbufInfo, sizeof(GFX_Dst_BufferInfo)))
788 {
789 return UTOPIA_STATUS_FAIL;
790 }
791 if(copy_from_user(&GFX_BITBLT_A0B2, pGFX_BITBLT_UsrA0->pDrawRect, sizeof(GFX_DrawRect)))
792 {
793 return UTOPIA_STATUS_FAIL;
794 }
795
796 if(pGFX_BITBLT_UsrA0->pScaleInfo !=NULL)
797 {
798 GFX_BITBLT_A0.pScaleInfo = &GFX_BITBLT_A0B3;
799 if(copy_from_user(&GFX_BITBLT_A0B3, pGFX_BITBLT_UsrA0->pScaleInfo, sizeof(GFX_ScaleInfo)))
800 {
801 return UTOPIA_STATUS_FAIL;
802 }
803 }
804 else{
805 GFX_BITBLT_A0.pScaleInfo = NULL;
806 }
807 if(pGFX_BITBLT_UsrA0->pIntensity!=NULL)
808 {
809 GFX_BITBLT_A0.pIntensity = &GFX_BITBLT_A0_B4;
810 if(copy_from_user(&GFX_BITBLT_A0_B4, pGFX_BITBLT_UsrA0->pIntensity, sizeof(unsigned long)))
811 {
812 return UTOPIA_STATUS_FAIL;
813 }
814 }
815 else
816 {
817 GFX_BITBLT_A0.pIntensity = NULL;
818 }
819
820 u32Ret=UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)&GFX_BITBLT);
821 #else
822 UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_BITBLT),NULL, buffer_arg,sizeof(buffer_arg));
823 #endif
824 }
825 break;
826 /* u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_BITBLT),NULL, buffer_arg,sizeof(buffer_arg));
827
828 }*/
829 case MAPI_CMD_GFX_SET_ABL:
830 {
831 GFX_ABL_ARGS str;
832
833 GFX_ABL_ARGS GFX_ABL_COLORKEY;
834 GFX_Set_Colorkey GFX_ABL_COLORKEY_A0;
835 GFX_Set_Src_ColorKey GFX_ABL_COLORKEY_A0B0;
836 GFX_Set_Dst_ColorKey GFX_ABL_COLORKEY_A0B1;
837 GFX_BlinkData GFX_ABL_COLORKEY_A0B0C0S;
838 GFX_BlinkData GFX_ABL_COLORKEY_A0B0C0E;
839 GFX_BlinkData GFX_ABL_COLORKEY_A0B0C1S;
840 GFX_BlinkData GFX_ABL_COLORKEY_A0B0C1E;
841 GFX_RgbColor GFX_ABL_COLORKEY_A0B0C2S;
842 GFX_RgbColor GFX_ABL_COLORKEY_A0B0C2E;
843 GFX_RgbColor GFX_ABL_COLORKEY_A0B0C3S;
844 GFX_RgbColor GFX_ABL_COLORKEY_A0B0C3E;
845
846 GFX_ABL_ARGS* pGFX_ABL_COLORKEY_Usr=NULL;
847 GFX_Set_Colorkey* pGFX_ABL_COLORKEY_UsrA0=NULL;
848 GFX_Set_Src_ColorKey* pGFX_ABL_COLORKEY_UsrA0B0=NULL;
849 GFX_Set_Dst_ColorKey* pGFX_ABL_COLORKEY_UsrA0B1=NULL;
850
851 if(copy_from_user(&str, pArgs, sizeof(GFX_ABL_ARGS)))
852 {
853 return UTOPIA_STATUS_FAIL;
854 }
855
856 switch(str.eGFX_SetABL)
857 {
858 case E_GFX_SET_ABL:
859 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_ABL_ABL),NULL, buffer_arg,sizeof(buffer_arg));
860 break;
861 case E_GFX_SET_COLORKEY:
862 pGFX_ABL_COLORKEY_Usr=(GFX_ABL_ARGS*)pArgs;
863 pGFX_ABL_COLORKEY_UsrA0 = pGFX_ABL_COLORKEY_Usr->pGFX_ABL;
864 pGFX_ABL_COLORKEY_UsrA0B0 = pGFX_ABL_COLORKEY_UsrA0->pSrcbufInfo;
865 pGFX_ABL_COLORKEY_UsrA0B1 = pGFX_ABL_COLORKEY_UsrA0->pDstbufInfo;
866
867 if(copy_from_user(&GFX_ABL_COLORKEY, pArgs, sizeof(GFX_ABL_ARGS)))
868 {
869 return UTOPIA_STATUS_FAIL;
870 }
871 GFX_ABL_COLORKEY.pGFX_ABL = &GFX_ABL_COLORKEY_A0;
872 if(copy_from_user(&GFX_ABL_COLORKEY_A0, pGFX_ABL_COLORKEY_Usr->pGFX_ABL, sizeof(GFX_Set_Colorkey)))
873 {
874 return UTOPIA_STATUS_FAIL;
875 }
876
877 if(pGFX_ABL_COLORKEY_UsrA0->ColorKey_Type & E_SRC_COLORKEY)
878 {
879 GFX_ABL_COLORKEY_A0.pSrcbufInfo=&GFX_ABL_COLORKEY_A0B0;
880 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0, pGFX_ABL_COLORKEY_UsrA0->pSrcbufInfo, sizeof(GFX_Set_Src_ColorKey)))
881 {
882 return UTOPIA_STATUS_FAIL;
883 }
884
885 if( (pGFX_ABL_COLORKEY_UsrA0B0->eFmt == GFX_FMT_1ABFGBG12355) || (pGFX_ABL_COLORKEY_UsrA0B0->eFmt == GFX_FMT_FABAFGBG2266))
886 {
887 GFX_ABL_COLORKEY_A0B0.pS_color = &GFX_ABL_COLORKEY_A0B0C0S;
888 GFX_ABL_COLORKEY_A0B0.pE_color = &GFX_ABL_COLORKEY_A0B0C0E;
889 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C0S, pGFX_ABL_COLORKEY_UsrA0B0->pS_color, sizeof(GFX_BlinkData)))
890 {
891 return UTOPIA_STATUS_FAIL;
892 }
893 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C0E, pGFX_ABL_COLORKEY_UsrA0B0->pE_color, sizeof(GFX_BlinkData)))
894 {
895 return UTOPIA_STATUS_FAIL;
896 }
897 }else
898 {
899 GFX_ABL_COLORKEY_A0B0.pS_color = &GFX_ABL_COLORKEY_A0B0C2S;
900 GFX_ABL_COLORKEY_A0B0.pE_color = &GFX_ABL_COLORKEY_A0B0C2E;
901 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C2S, pGFX_ABL_COLORKEY_UsrA0B0->pS_color, sizeof(GFX_RgbColor)))
902 {
903 return UTOPIA_STATUS_FAIL;
904 }
905 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C2E, pGFX_ABL_COLORKEY_UsrA0B0->pE_color, sizeof(GFX_RgbColor)))
906 {
907 return UTOPIA_STATUS_FAIL;
908 }
909 }
910
911 }
912
913
914 if(pGFX_ABL_COLORKEY_UsrA0->ColorKey_Type & E_DST_COLORKEY)
915 {
916 GFX_ABL_COLORKEY_A0.pDstbufInfo=&GFX_ABL_COLORKEY_A0B1;
917 if(copy_from_user(&GFX_ABL_COLORKEY_A0B1, pGFX_ABL_COLORKEY_UsrA0->pDstbufInfo, sizeof(GFX_Set_Dst_ColorKey)))
918 {
919 return UTOPIA_STATUS_FAIL;
920 }
921
922 if( (pGFX_ABL_COLORKEY_UsrA0B1->eFmt == GFX_FMT_1ABFGBG12355) || (pGFX_ABL_COLORKEY_UsrA0B1->eFmt == GFX_FMT_FABAFGBG2266))
923 {
924 GFX_ABL_COLORKEY_A0B1.pS_color = &GFX_ABL_COLORKEY_A0B0C1S;
925 GFX_ABL_COLORKEY_A0B1.pE_color = &GFX_ABL_COLORKEY_A0B0C1E;
926 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C1S, pGFX_ABL_COLORKEY_UsrA0B1->pS_color, sizeof(GFX_BlinkData)))
927 {
928 return UTOPIA_STATUS_FAIL;
929 }
930 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C1E, pGFX_ABL_COLORKEY_UsrA0B1->pE_color, sizeof(GFX_BlinkData)))
931 {
932 return UTOPIA_STATUS_FAIL;
933 }
934 }else
935 {
936 GFX_ABL_COLORKEY_A0B1.pS_color = &GFX_ABL_COLORKEY_A0B0C3S;
937 GFX_ABL_COLORKEY_A0B1.pE_color = &GFX_ABL_COLORKEY_A0B0C3E;
938 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C3S, pGFX_ABL_COLORKEY_UsrA0B1->pS_color, sizeof(GFX_RgbColor)))
939 {
940 return UTOPIA_STATUS_FAIL;
941 }
942 if(copy_from_user(&GFX_ABL_COLORKEY_A0B0C3E, pGFX_ABL_COLORKEY_UsrA0B1->pE_color, sizeof(GFX_RgbColor)))
943 {
944 return UTOPIA_STATUS_FAIL;
945 }
946 }
947 }
948
949 u32Ret=UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)&GFX_ABL_COLORKEY);
950 //u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_ABL_COLORKEY),NULL, buffer_arg,sizeof(buffer_arg));
951 break;
952 case E_GFX_SET_ROP:
953 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_ABL_ROP),NULL, buffer_arg,sizeof(buffer_arg));
954 break;
955 case E_GFX_SET_DFB:
956 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_ABL_DFB),NULL, buffer_arg,sizeof(buffer_arg));
957 break;
958 case E_GFX_SET_INTENSITY:
959 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_ABL_INTENSITY),NULL, buffer_arg,sizeof(buffer_arg));
960 break;
961 default:
962 break;
963 }
964 break;
965 }
966 case MAPI_CMD_GFX_SET_CONFIG:
967 {
968 GFX_SETCONFIG_ARGS str;
969
970 GFX_SETCONFIG_ARGS PaletteOpt;
971 GFX_Set_PaletteOpt PaletteOptA0;
972 //GFX_PaletteEntry PaletteOptA0B0[256];
973 GFX_PaletteEntry *PaletteOptA0B0 = NULL;
974 GFX_SETCONFIG_ARGS* pPaletteOptUsr =NULL;
975 GFX_Set_PaletteOpt* pPaletteOptUsrA0=NULL;
976 if(copy_from_user(&str, pArgs, sizeof(GFX_SETCONFIG_ARGS)))
977 {
978 return UTOPIA_STATUS_FAIL;
979 }
980 switch(str.eGFX_SetConfig)
981 {
982 case E_GFX_SET_POWERON:
983 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_POWERON),NULL, buffer_arg,sizeof(buffer_arg));
984 break;
985 case E_GFX_SET_FLUSHQUEUE:
986 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_FLUSHQUEUE),NULL, buffer_arg,sizeof(buffer_arg));
987 break;
988 case E_GFX_SET_TAGID:
989 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_TAGID),NULL, buffer_arg,sizeof(buffer_arg));
990 break;
991 case E_GFX_SET_NEXTTAGID:
992 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_NEXTTAGID),NULL, buffer_arg,sizeof(buffer_arg));
993 break;
994 case E_GFX_SET_WAITFORTAGID:
995 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_WAITFORTAGID),NULL, buffer_arg,sizeof(buffer_arg));
996 break;
997 case E_GFX_SET_ONEPIXELMODE:
998 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_ONEPIXELMODE),NULL, buffer_arg,sizeof(buffer_arg));
999 break;
1000 case E_GFX_SET_DITHER:
1001 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_DITHER),NULL, buffer_arg,sizeof(buffer_arg));
1002 break;
1003 case E_GFX_SET_VQ:
1004 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_VQ),NULL, buffer_arg,sizeof(buffer_arg));
1005 break;
1006 case E_GFX_SET_MIRROR:
1007 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_MIRROR),NULL, buffer_arg,sizeof(buffer_arg));
1008 break;
1009 case E_GFX_SET_DST_MIRROR:
1010 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_DST_MIRROR),NULL, buffer_arg,sizeof(buffer_arg));
1011 break;
1012 case E_GFX_SET_ROTATE:
1013 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_ROTATE),NULL, buffer_arg,sizeof(buffer_arg));
1014 break;
1015 case E_GFX_SET_ITALIC:
1016 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_ITALIC),NULL, buffer_arg,sizeof(buffer_arg));
1017 break;
1018 case E_GFX_SET_NEARESTMODE:
1019 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_NEARESTMODE),NULL, buffer_arg,sizeof(buffer_arg));
1020 break;
1021 case E_GFX_SET_PALETTEOPT:
1022 pPaletteOptUsr=(GFX_SETCONFIG_ARGS*)pArgs;
1023 pPaletteOptUsrA0 = pPaletteOptUsr->pGFX_ConfigInfo;
1024
1025 if(copy_from_user(&PaletteOpt, pArgs, sizeof(GFX_SETCONFIG_ARGS)))
1026 {
1027 return UTOPIA_STATUS_FAIL;
1028 }
1029 PaletteOpt.pGFX_ConfigInfo = &PaletteOptA0;
1030 if(copy_from_user(&PaletteOptA0, pPaletteOptUsr->pGFX_ConfigInfo, sizeof(GFX_Set_PaletteOpt)))
1031 {
1032 return UTOPIA_STATUS_FAIL;
1033 }
1034
1035 PaletteOptA0B0 = malloc(sizeof(GFX_PaletteEntry)*(PaletteOptA0.u32PalEnd - PaletteOptA0.u32PalStart+1));
1036 if(PaletteOptA0B0 != NULL)
1037 {
1038 memset(PaletteOptA0B0, 0x0, sizeof(GFX_PaletteEntry)*(PaletteOptA0.u32PalEnd - PaletteOptA0.u32PalStart+1));
1039 }
1040 else
1041 {
1042 return UTOPIA_STATUS_FAIL;
1043 }
1044 PaletteOptA0.pPalArray = PaletteOptA0B0;
1045 if(copy_from_user(PaletteOptA0B0, pPaletteOptUsrA0->pPalArray, sizeof(GFX_PaletteEntry)*(PaletteOptA0.u32PalEnd - PaletteOptA0.u32PalStart+1) ))
1046 {
1047 if(PaletteOptA0B0 != NULL)
1048 {
1049 free(PaletteOptA0B0);
1050 PaletteOptA0B0 = NULL;
1051 }
1052 return UTOPIA_STATUS_FAIL;
1053 }
1054 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd, pArgs,SPT(GFX_SETCONFIG_PALETTEOPT),NULL, buffer_arg,sizeof(buffer_arg));
1055 if(PaletteOptA0B0 != NULL)
1056 {
1057 free(PaletteOptA0B0);
1058 PaletteOptA0B0 = NULL;
1059 }
1060 break;
1061 case E_GFX_SET_CLIP:
1062 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_CLIP),NULL, buffer_arg,sizeof(buffer_arg));
1063 break;
1064 case E_GFX_SET_WRITEPROTECT:
1065 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_WRITEPROTECT),NULL, buffer_arg,sizeof(buffer_arg));
1066 break;
1067 case E_GFX_SET_ALPHA_COMPARE:
1068 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_ALPHA_COMPARE),NULL, buffer_arg,sizeof(buffer_arg));
1069 break;
1070 case E_GFX_SET_CSC:
1071 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_SETCONFIG_CSC),NULL, buffer_arg,sizeof(buffer_arg));
1072 break;
1073 default:
1074 break;
1075 }
1076 break;
1077 }
1078 case MAPI_CMD_GFX_BITMAP:
1079 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_BITMAP),SPT(GFX_BITMAP), buffer_arg,sizeof(buffer_arg));
1080 break;
1081 case MAPI_CMD_GFX_FONT:
1082 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_FONT),SPT(GFX_FONT), buffer_arg,sizeof(buffer_arg));
1083 break;
1084 case MAPI_CMD_GFX_POWERSTATE:
1085 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_POWERSTATE),SPT(GFX_POWERSTATE), buffer_arg,sizeof(buffer_arg));
1086 break;
1087 case MAPI_CMD_GFX_CB:
1088 break;
1089 case MAPI_CMD_GFX_TWOSRCBITBLT:
1090 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TWOSRC_BITBLT),SPT(GFX_TWOSRC_BITBLT), buffer_arg,sizeof(buffer_arg));
1091 break;
1092 case MAPI_CMD_GFX_TLB:
1093 {
1094 GFX_TLB_ARGS tlb;
1095
1096 if(copy_from_user(&tlb, pArgs, sizeof(GFX_TLB_ARGS)))
1097 {
1098 return UTOPIA_STATUS_FAIL;
1099 }
1100
1101 switch(tlb.en_cmd)
1102 {
1103 case E_GFX_TLB_SET_MODE:
1104 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TLB_SET_MODE),NULL, buffer_arg,sizeof(buffer_arg));
1105 break;
1106 case E_GFX_TLB_SET_ADDR:
1107 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TLB_SET_ADDR),NULL, buffer_arg,sizeof(buffer_arg));
1108 break;
1109 case E_GFX_TLB_FLUSH_TABLE:
1110 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TLB_FLUSH_TABLE),NULL, buffer_arg,sizeof(buffer_arg));
1111 break;
1112 case E_GFX_TLB_TAG:
1113 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_TLB_TAG),NULL, buffer_arg,sizeof(buffer_arg));
1114 break;
1115 }
1116 break;
1117 }
1118 case MAPI_CMD_GFX_MISC:
1119 {
1120 GFX_MISC_ARGS str;
1121 if(copy_from_user(&str, pArgs, sizeof(GFX_MISC_ARGS)))
1122 {
1123 return UTOPIA_STATUS_FAIL;
1124 }
1125
1126 switch(str.eGFX_MISCType)
1127 {
1128 case E_MISC_EXIT:
1129 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_EXIT),NULL, buffer_arg,sizeof(buffer_arg));
1130 break;
1131 case E_MISC_CLEAR_FRAME_BY_WORLD:
1132 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_CLEAR_FRAME_BY_WORLD),NULL, buffer_arg,sizeof(buffer_arg));
1133 break;
1134 case E_MISC_CLEAR_FRAME:
1135 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_CLEAR_FRAME),NULL, buffer_arg,sizeof(buffer_arg));
1136 break;
1137 case E_MISC_LINE_PATTERN_RESET:
1138 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_LINE_PATTERN_RESET),NULL, buffer_arg,sizeof(buffer_arg));
1139 break;
1140 case E_MISC_LINE_PATTERN:
1141 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_LINE_PATTERN),NULL, buffer_arg,sizeof(buffer_arg));
1142 break;
1143 case E_MISC_BEGINE_DRAW:
1144 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_BEGINE_DRAW),NULL, buffer_arg,sizeof(buffer_arg));
1145 break;
1146 case E_MISC_END_DRAW:
1147 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_END_DRAW),NULL, buffer_arg,sizeof(buffer_arg));
1148 break;
1149 case E_MISC_DEBUG_LEVEL:
1150 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_DEBUG_LEVEL),SPT(GFX_MISC_DEBUG_LEVEL), buffer_arg,sizeof(buffer_arg));
1151 break;
1152 case E_MISC_SET_HK:
1153 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_SET_HK),NULL, buffer_arg,sizeof(buffer_arg));
1154 break;
1155 case E_MISC_GET_HK:
1156 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_GET_HK),SPT(GFX_MISC_GET_HK), buffer_arg,sizeof(buffer_arg));
1157 break;
1158 case E_MISC_PATCH_MODE:
1159 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_PATCH_MODE),SPT(GFX_MISC_PATCH_MODE), buffer_arg,sizeof(buffer_arg));
1160 break;
1161 case E_MISC_STR_BLT_SCK_TYPE:
1162 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_STR_BLT_SCK_TYPE),SPT(GFX_MISC_STR_BLT_SCK_TYPE), buffer_arg,sizeof(buffer_arg));
1163 break;
1164 case E_MISC_SET_ALB_1555:
1165 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_SET_ALB_1555),NULL, buffer_arg,sizeof(buffer_arg));
1166 break;
1167 case E_MISC_GET_ALB_1555:
1168 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_MISC_GET_ALB_1555),SPT(GFX_MISC_GET_ALB_1555), buffer_arg,sizeof(buffer_arg));
1169 break;
1170 default:
1171 break;
1172 }
1173
1174 break;
1175 }
1176 case MAPI_CMD_GFX_GET_CAPS:
1177 {
1178 GFX_GETCAPS_ARGS str;
1179 if(copy_from_user(&str, pArgs, sizeof(GFX_GETCAPS_ARGS)))
1180 {
1181 return UTOPIA_STATUS_FAIL;
1182 }
1183
1184 switch(str.eCaps)
1185 {
1186 case E_GFX_CAP_MULTI_PIXEL:
1187 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETCAPS_MULTI_PIXEL),SPT(GFX_GETCAPS_MULTI_PIXEL), buffer_arg,sizeof(buffer_arg));
1188 break;
1189 case E_GFX_CAP_BLT_DOWN_SCALE:
1190 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETCAPS_BLT_DOWN_SCALE),SPT(GFX_GETCAPS_BLT_DOWN_SCALE), buffer_arg,sizeof(buffer_arg));
1191 break;
1192 case E_GFX_CAP_DFB_BLENDING:
1193 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETCAPS_DFB_BLENDING),SPT(GFX_GETCAPS_DFB_BLENDING), buffer_arg,sizeof(buffer_arg));
1194 break;
1195 case E_GFX_CAP_ALIGN:
1196 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETCAPS_ALIGN),SPT(GFX_GETCAPS_ALIGN), buffer_arg,sizeof(buffer_arg));
1197 break;
1198 case E_GFX_CAP_TLB:
1199 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,SPT(GFX_GETCAPS_TLB),SPT(GFX_GETCAPS_TLB), buffer_arg,sizeof(buffer_arg));
1200 break;
1201 default:
1202 break;
1203 }
1204 break;
1205 }
1206 default:
1207 break;
1208
1209 }
1210 //printk("\33[0;34m [End][%s][%d]u32Cmd=%d \33[m;\n",__FUNCTION__,__LINE__,u32Cmd);
1211 return u32Ret;
1212 // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
1213 }
1214