xref: /utopia/UTPA2-700.0.x/modules/graphic/utopia_adaption/gfx/GFX_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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