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