xref: /utopia/UTPA2-700.0.x/modules/graphic/utopia_adaption/gop/GOP_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 #include <asm/uaccess.h>
5 
6 #include "GOP_adp.h"
7 #include "utopia.h"
8 #include "utopia_adp.h"
9 #include "drvGOP.h"
10 #include "apiGOP.h"
11 #include "apiGOP_v2.h"
12 #include "apiGOP_priv.h"
13 #include <linux/compat.h>
14 
15 extern spt_MS_NULL;
16 
17 //MAPI_CMD_GOP_INIT:
18 #ifdef BIFROST_32BIT_MODE
19 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo,2);
20 UADP_SPT_NAMEnNXT_DEF(GOP_INIT,1);
21 #else
22 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo,0);
23 UADP_SPT_NAMEnNXT_DEF(GOP_INIT,1);
24 #endif
25 //MAPI_CMD_GOP_GET_CHIPCAPS:
26 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_WORD_UNIT_WordUnit,0);
27 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_WORD_UNIT,1);
28 
29 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_GWIN_NUM_TotalGwinNum,0);
30 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_GWIN_NUM,1);
31 
32 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_VERSION_LibVer,0);
33 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_VERSION,1);
34 
35 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_CONSALPHA_VALIDBITS_ConsAlpha_bits,0);
36 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_CONSALPHA_VALIDBITS,1);
37 
38 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_PALETTE_Pal,0);
39 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_PALETTE,1);
40 
41 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_DWIN_DwinCap,0);
42 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_DWIN,1);
43 
44 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_GOP_MUX_MuxCap,0);
45 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_GOP_MUX,1);
46 
47 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_PIXELMODE_SUPPORT_Support,0);
48 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_PIXELMODE_SUPPORT,1);
49 
50 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_STRETCH_A0,0);
51 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_STRETCH,1);
52 
53 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_SUPPORT_AFBC_A0,0);
54 UADP_SPT_NAMEnNXT_DEF(GOP_GETCAPS_SUPPORT_AFBC,1);
55 
56 //MAPI_CMD_GOP_SET_CONFIG:
57 //MAPI_CMD_GOP_GET_CONFIG:
58 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_IGNOREINIT_IgnoreInit,0);
59 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_IGNOREINIT,1);
60 
61 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_CONSALPHA_BITS_AlphaBits,0);
62 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_CONSALPHA_BITS,1);
63 
64 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_TIMING_INFO_A0,0);
65 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_TIMING_INFO,1);
66 
67 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_IS_PIXEL_ENABLE_A0,0);
68 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_IS_PIXEL_ENABLE,1);
69 
70 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_GET_MAXFBNUM_A0,0);
71 UADP_SPT_NAMEnNXT_DEF(GOP_CONFIG_GET_MAXFBNUM,1);
72 
73 //MAPI_CMD_GOP_SET_PROPERTY:
74 //MAPI_CMD_GOP_GET_PROPERTY:
75 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MIUSEL_miusel,0);
76 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MIUSEL,1);
77 
78 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_CONTRAST_RGB,0);
79 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_CONTRAST,1);
80 
81 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BRIGHTNESS_Bri,0);
82 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BRIGHTNESS,1);
83 
84 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_COLOR_output,0);
85 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_COLOR,1);
86 
87 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_UV_SWAP_bEn,0);
88 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_UV_SWAP,1);
89 
90 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_YC_SWAP_bEn,0);
91 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_YC_SWAP,1);
92 
93 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_HSTART_PanelHStr,0);
94 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_HSTART,1);
95 
96 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_TRANSCOLOR_trans_clr,0);
97 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_TRANSCOLOR,1);
98 
99 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PROGRESSIVE_bEn,0);
100 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PROGRESSIVE,1);
101 
102 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_ALPHAINVERSE_bEn,0);
103 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_ALPHAINVERSE,1);
104 
105 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PREALPHAMODE_bEn,0);
106 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PREALPHAMODE,1);
107 
108 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_FIELD_INVERSE_bEn,0);
109 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_FIELD_INVERSE,1);
110 
111 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_HSCALE_RATIO_Hscale,0);
112 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_HSCALE_RATIO,1);
113 
114 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_VSCALE_RATIO_Vscale,0);
115 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_VSCALE_RATIO,1);
116 
117 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_TIMING_stInfo,0);
118 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_TIMING,1);
119 
120 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PIXELBASE_ENABLE_bEn,0);
121 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_PIXELBASE_ENABLE,1);
122 
123 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_CLK_DstType,0);
124 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_CLK,1);
125 
126 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_FORCE_WRITE_bEn,0);
127 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_FORCE_WRITE,1);
128 
129 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BANK_FORCE_WRITE_bEn,0);
130 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BANK_FORCE_WRITE,1);
131 
132 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_3D_LR_EXCHANGE_u32,0);
133 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_3D_LR_EXCHANGE,1);
134 
135 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_VE_OSD_bEn,0);
136 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_VE_OSD,1);
137 
138 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_LAYER_SWITCH_u32,0);
139 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_OUTPUT_LAYER_SWITCH,1);
140 
141 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_SWAP_OVERLAP_WIN_win,0);
142 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_SWAP_OVERLAP_WIN,1);
143 
144 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BW_STRENGTH_eGOPBWStr,0);
145 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_BW_STRENGTH,1);
146 
147 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_LB_COUPLE_bEn,0);
148 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_LB_COUPLE,1);
149 
150 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_YUV_u32,0);
151 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_YUV,1);
152 
153 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_REG_UPDATED_Updated,0);
154 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_REG_UPDATED,1);
155 
156 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_RELATIVE_WIN_PRIO_GwinPri,0);
157 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_RELATIVE_WIN_PRIO,1);
158 
159 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_RESOURCE_u32,0);
160 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_RESOURCE,1);
161 
162 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MAXFBNUM_u32,0);
163 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MAXFBNUM,1);
164 
165 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MULTI_ALPHA_ENABLE_A0,0);
166 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_MULTI_ALPHA_ENABLE,1);
167 
168 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_AFBC_CORE_RESET_A0,0);
169 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_AFBC_CORE_RESET,1);
170 
171 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_AFBC_CORE_EN_A0,0);
172 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_AFBC_CORE_EN,1);
173 
174 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_TLB_ENABLE_A0,0);
175 UADP_SPT_NAMEnNXT_DEF(GOP_PROPERTY_TLB_ENABLE,1);
176 
177 #ifdef BIFROST_32BIT_MODE
178 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo_noparameter_init,2);
179 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo_noparameter,1);
180 #else
181 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo_noparameter_init,0);
182 UADP_SPT_NAMEnNXT_DEF(GOP_INIT_pInfo_noparameter,1);
183 #endif
184 
185 //MAPI_CMD_GOP_SET_DST:
186 UADP_SPT_NAMEnNXT_DEF(GOP_SETDST_u32,0);
187 UADP_SPT_NAMEnNXT_DEF(GOP_SETDST,1);
188 //MAPI_CMD_GOP_GET_DST:
189 UADP_SPT_NAMEnNXT_DEF(GOP_GETDST_dst,0);
190 UADP_SPT_NAMEnNXT_DEF(GOP_GETDST,1);
191 //MAPI_CMD_GOP_SET_MUX:
192 UADP_SPT_NAMEnNXT_DEF(GOP_SETMUX_MuxInfo,0);
193 UADP_SPT_NAMEnNXT_DEF(GOP_SETMUX,1);
194 //MAPI_CMD_GOP_SET_LAYER:
195 //MAPI_CMD_GOP_GET_LAYER:
196 UADP_SPT_NAMEnNXT_DEF(GOP_LAYER_LayerInfo,0);
197 UADP_SPT_NAMEnNXT_DEF(GOP_LAYER,1);
198 //MAPI_CMD_GOP_SET_MIRROR:
199 UADP_SPT_NAMEnNXT_DEF(GOP_MIRROR,0);
200 //MAPI_CMD_GOP_GET_MIRROR:
201 UADP_SPT_NAMEnNXT_DEF(GOP_GETMIRROR_PARAM_A0,0);
202 UADP_SPT_NAMEnNXT_DEF(GOP_GETMIRROR_PARAM,1);
203 //MAPI_CMD_GOP_GET_STATUS:
204 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_INIT_Init,0);
205 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_INIT,1);
206 
207 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GOP_MAXNUM_MaxGopNum,0);
208 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GOP_MAXNUM,1);
209 
210 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GWIN_MAXNUM_GOP_GWIN_NUM,0);
211 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GWIN_MAXNUM,1);
212 
213 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GWIN_TOTALNUM_GwinNum,0);
214 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_GWIN_TOTALNUM,1);
215 
216 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_VERSION_u32,0);
217 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_VERSION,1);
218 
219 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_MUX_u32,0);
220 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_MUX,1);
221 
222 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_GOP_CurrentGop,0);
223 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_GOP,1);
224 
225 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_GWIN_CurrentGwin,0);
226 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_GWIN,1);
227 
228 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_FBID_CurrentFbid,0);
229 UADP_SPT_NAMEnNXT_DEF(GOP_STATUS_CURRENT_FBID,1);
230 //MAPI_CMD_GOP_GWIN_SET_STRETCH:
231 //MAPI_CMD_GOP_GWIN_GET_STRETCH:
232 UADP_SPT_NAMEnNXT_DEF(GOP_STRETCH_Stretch,0);
233 UADP_SPT_NAMEnNXT_DEF(GOP_STRETCH,1);
234 //MAPI_CMD_GOP_GWIN_SET_PROPERTY:
235 //MAPI_CMD_GOP_GWIN_GET_PROPERTY:
236 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_BLENDING_bEn,0);
237 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_BLENDING,1);
238 
239 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_NEWAPLHA_bEn,0);
240 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_NEWAPLHA,1);
241 
242 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_ENABLE_bEn,0);
243 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_ENABLE,1);
244 
245 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_BLINK_Rate,0);
246 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_BLINK,1);
247 
248 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SHARE_bEn,0);
249 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SHARE,1);
250 
251 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SHARE_CNT_SharedCnt,0);
252 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SHARE_CNT,1);
253 
254 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SWITCH_2_GWIN_u32,0);
255 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_SWITCH_2_GWIN,1);
256 
257 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_3D_MODE_3DMode,0);
258 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_3D_MODE,1);
259 
260 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_EXIST_Exist,0);
261 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_EXIST,1);
262 
263 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_FREE_ID_FreeId,0);
264 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_FREE_ID,1);
265 
266 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GET_FB_FbId,0);
267 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GET_FB,1);
268 
269 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GET_GOP_GOP,0);
270 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GET_GOP,1);
271 
272 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GOPTILE_A0,0);
273 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_PROPERTY_GOPTILE,1);
274 
275 //MAPI_CMD_GOP_GWIN_MAPFB2WIN:
276 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_MAPFBINFO_Set,0);
277 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_MAPFBINFO,1);
278 //MAPI_CMD_GOP_GWIN_SET_WININFO:
279 //MAPI_CMD_GOP_GWIN_GET_WININFO:
280 #ifdef BIFROST_32BIT_MODE
281 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_SETWININFO_info,1);
282 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_SETWININFO,1);
283 #else
284 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_SETWININFO_info,0);
285 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_SETWININFO,1);
286 #endif
287 //MAPI_CMD_GOP_GWIN_SETDISPLAY:
288 #ifdef BIFROST_32BIT_MODE
289 UADP_SPT_NAMEnNXT_DEF(GOP_GwinInfo_A0,1);
290 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DISPLAY_DisplayInfo,1);
291 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DISPLAY,1);
292 #else
293 UADP_SPT_NAMEnNXT_DEF(GOP_GwinInfo_A0,0);
294 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DISPLAY_DisplayInfo,1);
295 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DISPLAY,1);
296 #endif
297 //MAPI_CMD_GOP_GWIN_DESTROY:
298 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DESTROY_ptr,0);
299 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_DESTROY,1);
300 //MAPI_CMD_GOP_GFLIP_CLEARQUEUE:
301 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_CLEARQUEUE_ClearInfo,0);
302 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_CLEARQUEUE,1);
303 //MAPI_CMD_GOP_GFLIP_SWITCHGWIN:
304 #ifdef BIFROST_32BIT_MODE
305 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo_pQueueCnt,0);
306 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo,3);
307 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN,1);
308 #else
309 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo_pQueueCnt,0);
310 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo,1);
311 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_GWIN,1);
312 #endif
313 //MAPI_CMD_GOP_GFLIP_SWITCHMULTIGWIN:
314 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_MULTI_Info,3);
315 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_MultiFlipInfo,1);
316 UADP_SPT_NAMEnNXT_DEF(GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,1);
317 //MAPI_CMD_GOP_GFLIP_RESTORE_VSYNC_LMT:
318 
319 //MAPI_CMD_GOP_SET_PINPON:
320 UADP_SPT_NAMEnNXT_DEF(GOP_SET_PINPON_PINPON_PINPONInfo,0);
321 UADP_SPT_NAMEnNXT_DEF(GOP_SET_PINPON_PINPON,1);
322 
323 //MAPI_CMD_GOP_FB_CREATE:
324 #ifdef BIFROST_32BIT_MODE
325 UADP_SPT_NAMEnNXT_DEF(GOP_CREATE_BUFFER_BufInfo,1);
326 UADP_SPT_NAMEnNXT_DEF(GOP_CREATE_BUFFER,1);
327 #else
328 UADP_SPT_NAMEnNXT_DEF(GOP_CREATE_BUFFER_BufInfo,0);
329 UADP_SPT_NAMEnNXT_DEF(GOP_CREATE_BUFFER,1);
330 #endif
331 //MAPI_CMD_GOP_FB_DESTROY:
332 UADP_SPT_NAMEnNXT_DEF(GOP_DELETE_BUFFER_BufId,0);
333 UADP_SPT_NAMEnNXT_DEF(GOP_DELETE_BUFFER,1);
334 //MAPI_CMD_GOP_FB_GETINFO:
335 //MAPI_CMD_GOP_FB_SETINFO:
336 #ifdef BIFROST_32BIT_MODE
337 UADP_SPT_NAMEnNXT_DEF(GOP_FB_INFO_BufInfo,1);
338 UADP_SPT_NAMEnNXT_DEF(GOP_FB_INFO,1);
339 #else
340 UADP_SPT_NAMEnNXT_DEF(GOP_FB_INFO_BufInfo,0);
341 UADP_SPT_NAMEnNXT_DEF(GOP_FB_INFO,1);
342 #endif
343 //MAPI_CMD_GOP_FB_SET_PROPERTY:
344 //MAPI_CMD_GOP_FB_GET_PROPERTY:
345 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_POOLID_Pool,0);
346 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_POOLID,1);
347 
348 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_EXIST_Exist,0);
349 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_EXIST,1);
350 
351 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_OBTAIN_1,0);
352 UADP_SPT_NAMEnNXT_DEF(GOP_FB_PROPERTY_OBTAIN,1);
353 
354 //MAPI_CMD_GOP_PALETTE_SET_CONFIG:
355 UADP_SPT_NAMEnNXT_DEF(GOP_PALETTE_CONFIG_PaletteInfo,0);
356 UADP_SPT_NAMEnNXT_DEF(GOP_PALETTE_CONFIG,1);
357 //MAPI_CMD_GOP_PALETTE_SET_ENTRY:
358 //MAPI_CMD_GOP_PALETTE_GET_ENTRY:
359 UADP_SPT_NAMEnNXT_DEF(GOP_PALETTE_SET_ENTRY_A0B0,0);
360 UADP_SPT_NAMEnNXT_DEF(GOP_PALETTE_SET_ENTRY_A0,1);
361 UADP_SPT_NAMEnNXT_DEF(GOP_PALETTE_SET_ENTRY,1);
362 
363 //MAPI_CMD_GOP_SET_SCROLL:
364 UADP_SPT_NAMEnNXT_DEF(GOP_SCROLL_CONFIG_ScrollInfo,0);
365 UADP_SPT_NAMEnNXT_DEF(GOP_SCROLL_CONFIG,1);
366 
367 UADP_SPT_NAMEnNXT_DEF(GOP_SCROLL_RATE_rate,0);
368 UADP_SPT_NAMEnNXT_DEF(GOP_SCROLL_RATE,1);
369 //MAPI_CMD_GOP_GWIN_SET_FADE:
370 UADP_SPT_NAMEnNXT_DEF(GOP_SET_FADE_CONFIG_FadeInfo,0);
371 UADP_SPT_NAMEnNXT_DEF(GOP_SET_FADE_CONFIG,1);
372 //MAPI_CMD_GOP_DWIN_INIT:
373 
374 //MAPI_CMD_GOP_DWIN_CAPTURE:
375 #ifdef BIFROST_32BIT_MODE
376 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_CAPTURE_Dwin,4);
377 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_CAPTURE,1);
378 #else
379 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_CAPTURE_Dwin,0);
380 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_CAPTURE,1);
381 #endif
382 //MAPI_CMD_GOP_DWIN_INTR:
383 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_CONTROL_IntrCtrl,0);
384 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_CONTROL,1);
385 
386 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_GETINFO_Intr,0);
387 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_GETINFO,1);
388 
389 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT_Timeout,0);
390 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT,1);
391 //MAPI_CMD_GOP_DWIN_SET_PROPERTY:
392 //MAPI_CMD_GOP_DWIN_GET_PROPERTY:
393 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_R2Y_bEn,0);
394 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_R2Y,1);
395 
396 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_UV_SWAP_bEn,0);
397 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_UV_SWAP,1);
398 
399 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_UV_SAMPLE_enMode,0);
400 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_UV_SAMPLE,1);
401 
402 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE_enMode,0);
403 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE,1);
404 
405 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_VALUE_Value,0);
406 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_VALUE,1);
407 
408 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_SOURCE_enSource,0);
409 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_SOURCE,1);
410 
411 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_INVERSE_bEn,0);
412 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_ALPHA_INVERSE,1);
413 
414 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_SKIP_FRAME_Count,0);
415 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_SKIP_FRAME,1);
416 #ifdef BIFROST_32BIT_MODE
417 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_PINPON_Pinpon,2);
418 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_PINPON,1);
419 #else
420 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_PINPON_Pinpon,0);
421 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_PINPON,1);
422 #endif
423 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_INTERRUP_INFO_u32,0);
424 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_INTERRUP_INFO,1);
425 
426 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_CAPTURE_INFO_u32,0);
427 UADP_SPT_NAMEnNXT_DEF(GOP_DWIN_PROPERTY_CAPTURE_INFO,1);
428 //MAPI_CMD_GOP_MIXER_SET_PROPERTY:
429 //MAPI_CMD_GOP_MIXER_GET_PROPERTY:
430 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_OUTPUT_TIMING_MTInfo,0);
431 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_OUTPUT_TIMING,1);
432 
433 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING_MT,0);
434 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING,1);
435 
436 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_V_FILTER_bEn,0);
437 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_V_FILTER,1);
438 
439 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_OLD_BLENDING_MODE_MOBM,0);
440 UADP_SPT_NAMEnNXT_DEF(GOP_MIXER_PROPERTY_OLD_BLENDING_MODE,1);
441 //MAPI_CMD_GOP_VE_SET_PROPERTY:
442 UADP_SPT_NAMEnNXT_DEF(GOP_VE_PROPERTY_OUTPUT_TIMING_VEInfo,0);
443 UADP_SPT_NAMEnNXT_DEF(GOP_VE_PROPERTY_OUTPUT_TIMING,1);
444 //MAPI_CMD_GOP_UPDATE:
445 UADP_SPT_NAMEnNXT_DEF(GOP_UPDATE_UpdateInfo,0);
446 UADP_SPT_NAMEnNXT_DEF(GOP_UPDATE,1);
447 //MAPI_CMD_GOP_REGISTER_CB:
448 UADP_SPT_NAMEnNXT_DEF(GOP_CB_INTERLACE_A0, 0);
449 UADP_SPT_NAMEnNXT_DEF(GOP_CB_INTERLACE,1);
450 
451 UADP_SPT_NAMEnNXT_DEF(GOP_CB_HSTART_A0, 0);
452 UADP_SPT_NAMEnNXT_DEF(GOP_CB_HSTART,1);
453 //MAPI_CMD_GOP_TESTPATTERN:
454 UADP_SPT_NAMEnNXT_DEF(GOP_TESTPATTERN, 0);
455 //MAPI_CMD_GOP_SELECTION:
456 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELGOP_A0, 0);
457 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELGOP,1);
458 
459 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELGWIN_A0, 0);
460 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELGWIN,1);
461 
462 #ifdef BIFROST_32BIT_MODE
463 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELFB_A0, 1);
464 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELFB,1);
465 #else
466 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELFB_A0, 0);
467 UADP_SPT_NAMEnNXT_DEF(GOP_SELECTION_SELFB,1);
468 #endif
469 //MAPI_CMD_GOP_MUTEX:
470 UADP_SPT_NAMEnNXT_DEF(GOP_MUTEX_pSet,0);
471 UADP_SPT_NAMEnNXT_DEF(GOP_MUTEX,1);
472 //MAPI_CMD_GOP_MISC:
473 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_ENABLE_T3D_bEn,0);
474 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_ENABLE_T3D,1);
475 
476 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_SET_CAPTURE_CLK_u32,0);
477 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_SET_CAPTURE_CLK,1);
478 
479 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_POWER_OFF_u32,0);
480 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_POWER_OFF,1);
481 
482 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_POWER_ON_u32,0);
483 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_POWER_ON,1);
484 
485 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_GET_RT_STATUS_GopApiSts,0);
486 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_GET_RT_STATUS,1);
487 
488 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_GET_INFO_GopApiInfo,0);
489 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_GET_INFO,1);
490 
491 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_AT_EXIT_u32,0);
492 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_AT_EXIT,1);
493 
494 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_OC_FB_INFO_OCFbInfo,0);
495 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_OC_FB_INFO,1);
496 
497 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_TESTPATTERN_ALPHA_bEn,0);
498 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_TESTPATTERN_ALPHA,1);
499 
500 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_DELETE_GWINSIZE_A0,0);
501 UADP_SPT_NAMEnNXT_DEF(GOP_MISC_DELETE_GWINSIZE,1);
502 
503 //MAPI_CMD_GOP_RESETPOOL:
504 
505 UADP_SPT_NAMEnNXT_DEF(GOP_POWERSTATE_PARAM_A0,0);
506 UADP_SPT_NAMEnNXT_DEF(GOP_POWERSTATE_PARAM,1);
507 
508 #ifdef CONFIG_COMPAT
509 typedef struct GOP_PALETTE_SET_PARAM_32
510 {
511     compat_uint_t   type;
512     compat_uptr_t   pClut;
513     compat_uint_t   u32Size;
514 }GOP_PALETTE_SET_PARAM_32;
515 
516 
517 typedef struct GOP_PALETTE_ENTRY_32
518 {
519     compat_uint_t   gop_idx;
520     compat_uint_t   start;
521     compat_uint_t   end;
522     compat_uptr_t   pClut;
523     compat_uint_t   palType;
524     compat_uint_t   palSrc;
525 }GOP_PALETTE_ENTRY_32;
526 #endif
527 
528 
GOP_adp_Init(FUtopiaIOctl * pIoctl)529 MS_U32 GOP_adp_Init(FUtopiaIOctl* pIoctl)
530 {
531     //MAPI_CMD_GOP_INIT
532 #ifdef BIFROST_32BIT_MODE
533     UADP_SDT_NAME2(GOP_INIT_pInfo,GOP_InitInfo,UADP_SDT_AT,u32GOPRBAdr,MS_NULL,UADP_SDT_AT,u32GOPRegdmaAdr,MS_NULL);
534 #else
535     UADP_SDT_NAME0(GOP_INIT_pInfo,GOP_InitInfo);
536 #endif
537     UADP_SPT_NAME1NXT(GOP_INIT,GOP_INIT_PARAM,pInfo,GOP_INIT_pInfo);
538     //MAPI_CMD_GOP_GET_CHIPCAPS:
539     UADP_SPT_NAME0NXT(GOP_GETCAPS_WORD_UNIT_WordUnit,MS_U16);
540     UADP_SPT_NAME1NXT(GOP_GETCAPS_WORD_UNIT,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_WORD_UNIT_WordUnit);
541 
542     UADP_SPT_NAME0NXT(GOP_GETCAPS_GWIN_NUM_TotalGwinNum,MS_U16);
543     UADP_SPT_NAME1NXT(GOP_GETCAPS_GWIN_NUM,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_GWIN_NUM_TotalGwinNum);
544 
545     UADP_SPT_NAME0NXT(GOP_GETCAPS_VERSION_LibVer,GOP_LIB_VER);
546     UADP_SPT_NAME1NXT(GOP_GETCAPS_VERSION,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_VERSION_LibVer);
547 
548     UADP_SPT_NAME0NXT(GOP_GETCAPS_CONSALPHA_VALIDBITS_ConsAlpha_bits,DRV_GOP_CONSALPHA_BITS);
549     UADP_SPT_NAME1NXT(GOP_GETCAPS_CONSALPHA_VALIDBITS,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_CONSALPHA_VALIDBITS_ConsAlpha_bits);
550 
551     UADP_SPT_NAME0NXT(GOP_GETCAPS_PALETTE_Pal,GOP_CAP_PAL_TYPE);
552     UADP_SPT_NAME1NXT(GOP_GETCAPS_PALETTE,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_PALETTE_Pal);
553 
554     UADP_SPT_NAME0NXT(GOP_GETCAPS_DWIN_DwinCap,GOP_DWIN_CAP);
555     UADP_SPT_NAME1NXT(GOP_GETCAPS_DWIN,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_DWIN_DwinCap);
556 
557     UADP_SPT_NAME0NXT(GOP_GETCAPS_GOP_MUX_MuxCap,ST_DRV_GOP_MUX_CAP_EX);
558     UADP_SPT_NAME1NXT(GOP_GETCAPS_GOP_MUX,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_GOP_MUX_MuxCap);
559 
560     UADP_SPT_NAME0NXT(GOP_GETCAPS_PIXELMODE_SUPPORT_Support,MS_BOOL);
561     UADP_SPT_NAME1NXT(GOP_GETCAPS_PIXELMODE_SUPPORT,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_PIXELMODE_SUPPORT_Support);
562 
563     UADP_SPT_NAME0NXT(GOP_GETCAPS_STRETCH_A0,GOP_CAP_STRETCH_INFO);
564     UADP_SPT_NAME1NXT(GOP_GETCAPS_STRETCH,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_STRETCH_A0);
565 
566     UADP_SPT_NAME0NXT(GOP_GETCAPS_SUPPORT_AFBC_A0,GOP_CAP_AFBC_INFO);
567     UADP_SPT_NAME1NXT(GOP_GETCAPS_SUPPORT_AFBC,GOP_GETCAPS_PARAM,pInfo,GOP_GETCAPS_SUPPORT_AFBC_A0);
568 
569     //MAPI_CMD_GOP_SET_CONFIG:
570     //MAPI_CMD_GOP_GET_CONFIG:
571     UADP_SPT_NAME0NXT(GOP_CONFIG_IGNOREINIT_IgnoreInit,EN_GOP_IGNOREINIT);
572     UADP_SPT_NAME1NXT(GOP_CONFIG_IGNOREINIT,GOP_SETCONFIG_PARAM,pCfg,GOP_CONFIG_IGNOREINIT_IgnoreInit);
573 
574     UADP_SPT_NAME0NXT(GOP_CONFIG_CONSALPHA_BITS_AlphaBits,DRV_GOP_CONSALPHA_BITS);
575     UADP_SPT_NAME1NXT(GOP_CONFIG_CONSALPHA_BITS,GOP_SETCONFIG_PARAM,pCfg,GOP_CONFIG_CONSALPHA_BITS_AlphaBits);
576 
577     UADP_SPT_NAME0NXT(GOP_CONFIG_TIMING_INFO_A0,ST_GOP_TIMING_INFO);
578     UADP_SPT_NAME1NXT(GOP_CONFIG_TIMING_INFO,GOP_SETCONFIG_PARAM,pCfg,GOP_CONFIG_TIMING_INFO_A0);
579 
580     UADP_SPT_NAME0NXT(GOP_CONFIG_IS_PIXEL_ENABLE_A0,MS_BOOL);
581     UADP_SPT_NAME1NXT(GOP_CONFIG_IS_PIXEL_ENABLE,GOP_SETCONFIG_PARAM,pCfg,GOP_CONFIG_IS_PIXEL_ENABLE_A0);
582 
583     UADP_SPT_NAME0NXT(GOP_CONFIG_GET_MAXFBNUM_A0,EN_GOP_DST_TYPE);
584     UADP_SPT_NAME1NXT(GOP_CONFIG_GET_MAXFBNUM,GOP_SETCONFIG_PARAM,pCfg,GOP_CONFIG_GET_MAXFBNUM_A0);
585 
586     //MAPI_CMD_GOP_SET_PROPERTY:
587     //MAPI_CMD_GOP_GET_PROPERTY:
588     UADP_SPT_NAME0NXT(GOP_PROPERTY_MIUSEL_miusel,EN_GOP_SEL_TYPE);
589     UADP_SPT_NAME1NXT(GOP_PROPERTY_MIUSEL,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_MIUSEL_miusel);
590 
591     UADP_SPT_NAME0NXT(GOP_PROPERTY_CONTRAST_RGB,GOP_CONTRAST);
592     UADP_SPT_NAME1NXT(GOP_PROPERTY_CONTRAST,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_CONTRAST_RGB);
593 
594     UADP_SPT_NAME0NXT(GOP_PROPERTY_BRIGHTNESS_Bri,GOP_BRIGHTNESS);
595     UADP_SPT_NAME1NXT(GOP_PROPERTY_BRIGHTNESS,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_BRIGHTNESS_Bri);
596 
597     UADP_SPT_NAME0NXT(GOP_PROPERTY_OUTPUT_COLOR_output,EN_GOP_OUTPUT_COLOR);
598     UADP_SPT_NAME1NXT(GOP_PROPERTY_OUTPUT_COLOR,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_OUTPUT_COLOR_output);
599 
600     UADP_SPT_NAME0NXT(GOP_PROPERTY_UV_SWAP_bEn,MS_BOOL);
601     UADP_SPT_NAME1NXT(GOP_PROPERTY_UV_SWAP,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_UV_SWAP_bEn);
602 
603     UADP_SPT_NAME0NXT(GOP_PROPERTY_YC_SWAP_bEn,MS_BOOL);
604     UADP_SPT_NAME1NXT(GOP_PROPERTY_YC_SWAP,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_YC_SWAP_bEn);
605 
606     UADP_SPT_NAME0NXT(GOP_PROPERTY_HSTART_PanelHStr,MS_U16);
607     UADP_SPT_NAME1NXT(GOP_PROPERTY_HSTART,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_HSTART_PanelHStr);
608 
609     UADP_SPT_NAME0NXT(GOP_PROPERTY_TRANSCOLOR_trans_clr,GOP_TRANSCOLOR);
610     UADP_SPT_NAME1NXT(GOP_PROPERTY_TRANSCOLOR,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_TRANSCOLOR_trans_clr);
611 
612     UADP_SPT_NAME0NXT(GOP_PROPERTY_PROGRESSIVE_bEn,MS_BOOL);
613     UADP_SPT_NAME1NXT(GOP_PROPERTY_PROGRESSIVE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_PROGRESSIVE_bEn);
614 
615     UADP_SPT_NAME0NXT(GOP_PROPERTY_ALPHAINVERSE_bEn,MS_BOOL);
616     UADP_SPT_NAME1NXT(GOP_PROPERTY_ALPHAINVERSE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_ALPHAINVERSE_bEn);
617 
618     UADP_SPT_NAME0NXT(GOP_PROPERTY_PREALPHAMODE_bEn,MS_BOOL);
619     UADP_SPT_NAME1NXT(GOP_PROPERTY_PREALPHAMODE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_PREALPHAMODE_bEn);
620 
621     UADP_SPT_NAME0NXT(GOP_PROPERTY_FIELD_INVERSE_bEn,MS_BOOL);
622     UADP_SPT_NAME1NXT(GOP_PROPERTY_FIELD_INVERSE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_FIELD_INVERSE_bEn);
623 
624     UADP_SPT_NAME0NXT(GOP_PROPERTY_HSCALE_RATIO_Hscale,MS_U16);
625     UADP_SPT_NAME1NXT(GOP_PROPERTY_HSCALE_RATIO,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_HSCALE_RATIO_Hscale);
626 
627     UADP_SPT_NAME0NXT(GOP_PROPERTY_VSCALE_RATIO_Vscale,MS_U16);
628     UADP_SPT_NAME1NXT(GOP_PROPERTY_VSCALE_RATIO,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_VSCALE_RATIO_Vscale);
629 
630     UADP_SPT_NAME0NXT(GOP_PROPERTY_OUTPUT_TIMING_stInfo,ST_GOP_TIMING_INFO);
631     UADP_SPT_NAME1NXT(GOP_PROPERTY_OUTPUT_TIMING,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_OUTPUT_TIMING_stInfo);
632 
633     UADP_SPT_NAME0NXT(GOP_PROPERTY_PIXELBASE_ENABLE_bEn,MS_BOOL);
634     UADP_SPT_NAME1NXT(GOP_PROPERTY_PIXELBASE_ENABLE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_PIXELBASE_ENABLE_bEn);
635 
636     UADP_SPT_NAME0NXT(GOP_PROPERTY_CLK_DstType,EN_GOP_DST_TYPE);
637     UADP_SPT_NAME1NXT(GOP_PROPERTY_CLK,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_CLK_DstType);
638 
639     UADP_SPT_NAME0NXT(GOP_PROPERTY_FORCE_WRITE_bEn,MS_BOOL);
640     UADP_SPT_NAME1NXT(GOP_PROPERTY_FORCE_WRITE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_FORCE_WRITE_bEn);
641 
642     UADP_SPT_NAME0NXT(GOP_PROPERTY_BANK_FORCE_WRITE_bEn,MS_BOOL);
643     UADP_SPT_NAME1NXT(GOP_PROPERTY_BANK_FORCE_WRITE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_BANK_FORCE_WRITE_bEn);
644 
645     UADP_SPT_NAME0NXT(GOP_PROPERTY_3D_LR_EXCHANGE_u32,MS_U32);
646     UADP_SPT_NAME1NXT(GOP_PROPERTY_3D_LR_EXCHANGE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_3D_LR_EXCHANGE_u32);
647 
648     UADP_SPT_NAME0NXT(GOP_PROPERTY_VE_OSD_bEn,MS_BOOL);
649     UADP_SPT_NAME1NXT(GOP_PROPERTY_VE_OSD,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_VE_OSD_bEn);
650 
651     UADP_SPT_NAME0NXT(GOP_PROPERTY_OUTPUT_LAYER_SWITCH_u32,MS_U32);
652     UADP_SPT_NAME1NXT(GOP_PROPERTY_OUTPUT_LAYER_SWITCH,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_OUTPUT_LAYER_SWITCH_u32);
653 
654     UADP_SPT_NAME0NXT(GOP_PROPERTY_SWAP_OVERLAP_WIN_win,MS_U8);
655     UADP_SPT_NAME1NXT(GOP_PROPERTY_SWAP_OVERLAP_WIN,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_SWAP_OVERLAP_WIN_win);
656 
657     UADP_SPT_NAME0NXT(GOP_PROPERTY_BW_STRENGTH_eGOPBWStr,EN_GOP_BW_STRENGTH);
658     UADP_SPT_NAME1NXT(GOP_PROPERTY_BW_STRENGTH,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_BW_STRENGTH_eGOPBWStr);
659 
660     UADP_SPT_NAME0NXT(GOP_PROPERTY_LB_COUPLE_bEn,MS_BOOL);
661     UADP_SPT_NAME1NXT(GOP_PROPERTY_LB_COUPLE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_LB_COUPLE_bEn);
662 
663     UADP_SPT_NAME0NXT(GOP_PROPERTY_YUV_u32,MS_U32);
664     UADP_SPT_NAME1NXT(GOP_PROPERTY_YUV,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_YUV_u32);
665 
666     UADP_SPT_NAME0NXT(GOP_PROPERTY_REG_UPDATED_Updated,MS_BOOL);
667     UADP_SPT_NAME1NXT(GOP_PROPERTY_REG_UPDATED,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_REG_UPDATED_Updated);
668 
669     UADP_SPT_NAME0NXT(GOP_PROPERTY_RELATIVE_WIN_PRIO_GwinPri,GOP_GwinPri);
670     UADP_SPT_NAME1NXT(GOP_PROPERTY_RELATIVE_WIN_PRIO,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_RELATIVE_WIN_PRIO_GwinPri);
671 
672     UADP_SPT_NAME0NXT(GOP_PROPERTY_RESOURCE_u32,MS_U32);
673     UADP_SPT_NAME1NXT(GOP_PROPERTY_RESOURCE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_RESOURCE_u32);
674 
675     UADP_SPT_NAME0NXT(GOP_PROPERTY_MAXFBNUM_u32,MS_U32);
676     UADP_SPT_NAME1NXT(GOP_PROPERTY_MAXFBNUM,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_MAXFBNUM_u32);
677 
678     UADP_SPT_NAME0NXT(GOP_PROPERTY_MULTI_ALPHA_ENABLE_A0,MS_BOOL);
679     UADP_SPT_NAME1NXT(GOP_PROPERTY_MULTI_ALPHA_ENABLE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_MULTI_ALPHA_ENABLE_A0);
680 
681     UADP_SPT_NAME0NXT(GOP_PROPERTY_AFBC_CORE_RESET_A0,MS_BOOL);
682     UADP_SPT_NAME1NXT(GOP_PROPERTY_AFBC_CORE_RESET,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_AFBC_CORE_RESET_A0);
683 
684     UADP_SPT_NAME0NXT(GOP_PROPERTY_AFBC_CORE_EN_A0,MS_BOOL);
685     UADP_SPT_NAME1NXT(GOP_PROPERTY_AFBC_CORE_EN,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_AFBC_CORE_EN_A0);
686 
687     UADP_SPT_NAME0NXT(GOP_PROPERTY_TLB_ENABLE_A0,MS_BOOL);
688     UADP_SPT_NAME1NXT(GOP_PROPERTY_TLB_ENABLE,GOP_SET_PROPERTY_PARAM,pSetting,GOP_PROPERTY_TLB_ENABLE_A0);
689 
690     #ifdef BIFROST_32BIT_MODE
691         UADP_SDT_NAME2(GOP_INIT_pInfo_noparameter_init,GOP_InitInfo,UADP_SDT_AT,u32GOPRBAdr,MS_NULL,UADP_SDT_AT,u32GOPRegdmaAdr,MS_NULL);
692     #else
693         UADP_SDT_NAME0(GOP_INIT_pInfo_noparameter_init,GOP_InitInfo);
694     #endif
695     UADP_SPT_NAME1NXT(GOP_INIT_pInfo_noparameter,GOP_SET_PROPERTY_PARAM,pSetting,GOP_INIT_pInfo_noparameter_init);
696 
697     //MAPI_CMD_GOP_SET_DST:
698     UADP_SPT_NAME0NXT(GOP_SETDST_u32,MS_U32);
699     UADP_SPT_NAME1NXT(GOP_SETDST,GOP_SETDST_PARAM,pDst,GOP_SETDST_u32);
700     //MAPI_CMD_GOP_GET_DST:
701     UADP_SPT_NAME0NXT(GOP_GETDST_dst,DRV_GOPDstType);
702     UADP_SPT_NAME1NXT(GOP_GETDST,GOP_GETDST_PARAM,pDst,GOP_GETDST_dst);
703     //MAPI_CMD_GOP_SET_MUX:
704     UADP_SPT_NAME0NXT(GOP_SETMUX_MuxInfo,GOP_SETMUX);
705     UADP_SPT_NAME1NXT(GOP_SETMUX,GOP_SETMUX_PARAM,pMuxInfo,GOP_SETMUX_MuxInfo);
706     //MAPI_CMD_GOP_SET_LAYER:
707     //MAPI_CMD_GOP_GET_LAYER:
708     UADP_SPT_NAME0NXT(GOP_LAYER_LayerInfo,GOP_SETLayer);
709     UADP_SPT_NAME1NXT(GOP_LAYER,GOP_SETLAYER_PARAM,pLayerInfo,GOP_LAYER_LayerInfo);
710     //MAPI_CMD_GOP_SET_MIRROR:
711     //MAPI_CMD_GOP_GET_MIRROR:
712     UADP_SPT_NAME0NXT(GOP_MIRROR,GOP_SETMIRROR_PARAM);
713     //MAPI_CMD_GOP_GET_STATUS:
714     UADP_SPT_NAME0NXT(GOP_STATUS_INIT_Init,GOP_INIT_STATUS);
715     UADP_SPT_NAME1NXT(GOP_STATUS_INIT,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_INIT_Init);
716 
717     UADP_SPT_NAME0NXT(GOP_STATUS_GOP_MAXNUM_MaxGopNum,MS_U8);
718     UADP_SPT_NAME1NXT(GOP_STATUS_GOP_MAXNUM,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_GOP_MAXNUM_MaxGopNum);
719 
720     UADP_SPT_NAME0NXT(GOP_STATUS_GWIN_MAXNUM_GOP_GWIN_NUM,GOP_GWIN_NUM);
721     UADP_SPT_NAME1NXT(GOP_STATUS_GWIN_MAXNUM,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_GWIN_MAXNUM_GOP_GWIN_NUM);
722 
723     UADP_SPT_NAME0NXT(GOP_STATUS_GWIN_TOTALNUM_GwinNum,MS_U8);
724     UADP_SPT_NAME1NXT(GOP_STATUS_GWIN_TOTALNUM,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_GWIN_TOTALNUM_GwinNum);
725 
726     UADP_SPT_NAME0NXT(GOP_STATUS_VERSION_u32,MS_U32);
727     UADP_SPT_NAME1NXT(GOP_STATUS_VERSION,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_VERSION_u32);
728 
729     UADP_SPT_NAME0NXT(GOP_STATUS_MUX_u32,MS_U32);
730     UADP_SPT_NAME1NXT(GOP_STATUS_MUX,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_MUX_u32);
731 
732     UADP_SPT_NAME0NXT(GOP_STATUS_CURRENT_GOP_CurrentGop, MS_U32);
733     UADP_SPT_NAME1NXT(GOP_STATUS_CURRENT_GOP,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_CURRENT_GOP_CurrentGop);
734 
735     UADP_SPT_NAME0NXT(GOP_STATUS_CURRENT_GWIN_CurrentGwin,MS_U32);
736     UADP_SPT_NAME1NXT(GOP_STATUS_CURRENT_GWIN,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_CURRENT_GWIN_CurrentGwin);
737 
738     UADP_SPT_NAME0NXT(GOP_STATUS_CURRENT_FBID_CurrentFbid,MS_U32);
739     UADP_SPT_NAME1NXT(GOP_STATUS_CURRENT_FBID,GOP_GET_STATUS_PARAM,pStatus,GOP_STATUS_CURRENT_FBID_CurrentFbid);
740     //MAPI_CMD_GOP_GWIN_SET_STRETCH:
741     //MAPI_CMD_GOP_GWIN_GET_STRETCH:
742     UADP_SPT_NAME0NXT(GOP_STRETCH_Stretch,GOP_STRETCH_INFO);
743     UADP_SPT_NAME1NXT(GOP_STRETCH,GOP_STRETCH_SET_PARAM,pStretch,GOP_STRETCH_Stretch);
744     //MAPI_CMD_GOP_GWIN_SET_PROPERTY:
745     //MAPI_CMD_GOP_GWIN_GET_PROPERTY:
746     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_BLENDING_bEn,GOP_GWIN_BLENDING);
747     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_BLENDING,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_BLENDING_bEn);
748 
749     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_NEWAPLHA_bEn,MS_BOOL);
750     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_NEWAPLHA,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_NEWAPLHA_bEn);
751 
752     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_ENABLE_bEn,MS_BOOL);
753     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_ENABLE,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_ENABLE_bEn);
754 
755     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_BLINK_Rate,GOP_GWIN_BLINK);
756     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_BLINK,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_BLINK_Rate);
757 
758     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_SHARE_bEn,MS_BOOL);
759     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_SHARE,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_SHARE_bEn);
760 
761     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_SHARE_CNT_SharedCnt,MS_U16);
762     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_SHARE_CNT,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_SHARE_CNT_SharedCnt);
763 
764     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_SWITCH_2_GWIN_u32,MS_U32);
765     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_SWITCH_2_GWIN,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_SWITCH_2_GWIN_u32);
766 
767     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_3D_MODE_3DMode,GOP_GWIN_3D_MODE);
768     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_3D_MODE,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_3D_MODE_3DMode);
769 
770     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_EXIST_Exist,MS_U8);
771     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_EXIST,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_EXIST_Exist);
772 
773     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_FREE_ID_FreeId,MS_U8);
774     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_FREE_ID,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_FREE_ID_FreeId);
775 
776     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_GET_FB_FbId,MS_U32);
777     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_GET_FB,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_GET_FB_FbId);
778 
779     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_GET_GOP_GOP,MS_U32);
780     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_GET_GOP,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_GET_GOP_GOP);
781 
782     UADP_SPT_NAME0NXT(GOP_GWIN_PROPERTY_GOPTILE_A0,EN_GOP_GPU_TILE_MODE);
783     UADP_SPT_NAME1NXT(GOP_GWIN_PROPERTY_GOPTILE,GOP_GWIN_PROPERTY_PARAM,pSet,GOP_GWIN_PROPERTY_GOPTILE_A0);
784 
785     //MAPI_CMD_GOP_GWIN_MAPFB2WIN:
786     UADP_SPT_NAME0NXT(GOP_GWIN_MAPFBINFO_Set,MS_U32);
787     UADP_SPT_NAME1NXT(GOP_GWIN_MAPFBINFO,GOP_GWIN_MAPFBINFO_PARAM,pinfo,GOP_GWIN_MAPFBINFO_Set);
788     //MAPI_CMD_GOP_GWIN_SET_WININFO:
789     //MAPI_CMD_GOP_GWIN_GET_WININFO:
790 #ifdef BIFROST_32BIT_MODE
791     UADP_SDT_NAME1(GOP_GWIN_SETWININFO_info,GOP_BUFFER_INFO,UADP_SDT_AT,addr,MS_NULL);
792 #else
793     UADP_SDT_NAME0(GOP_GWIN_SETWININFO_info,GOP_BUFFER_INFO);
794 #endif
795     UADP_SPT_NAME1NXT(GOP_GWIN_SETWININFO,GOP_GWIN_SETWININFO_PARAM,pinfo,GOP_GWIN_SETWININFO_info);
796     //MAPI_CMD_GOP_GWIN_SETDISPLAY:
797 #ifdef BIFROST_32BIT_MODE
798     UADP_SDT_NAME1(GOP_GwinInfo_A0,GOP_GwinInfo,UADP_SDT_AT,u32DRAMRBlkStart,MS_NULL);
799 #else
800     UADP_SDT_NAME0(GOP_GwinInfo_A0,GOP_GwinInfo);
801 #endif
802     UADP_SDT_NAME1(GOP_GWIN_DISPLAY_DisplayInfo,GOP_GWINDISPLAY_INFO,UADP_SDT_ES,gwin_info,GOP_GwinInfo_A0);
803     UADP_SPT_NAME1NXT(GOP_GWIN_DISPLAY,GOP_GWIN_DISPLAY_PARAM,pDisplayInfo,GOP_GWIN_DISPLAY_DisplayInfo);
804     //MAPI_CMD_GOP_GWIN_DESTROY:
805     UADP_SPT_NAME0NXT(GOP_GWIN_DESTROY_ptr,MS_U32);
806     UADP_SPT_NAME1NXT(GOP_GWIN_DESTROY,GOP_GWIN_DESTROY_PARAM,ptr,GOP_GWIN_DESTROY_ptr);
807     //MAPI_CMD_GOP_GFLIP_CLEARQUEUE:
808     UADP_SPT_NAME0NXT(GOP_GWIN_CLEARQUEUE_ClearInfo,GOP_GWIN_CLEARQUEUE_INFO);
809     UADP_SPT_NAME1NXT(GOP_GWIN_CLEARQUEUE,GOP_GWIN_CLEARQUEUE_PARAM,pClearInfo,GOP_GWIN_CLEARQUEUE_ClearInfo);
810     //MAPI_CMD_GOP_GFLIP_SWITCHGWIN:
811     UADP_SPT_NAME0NXT(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo_pQueueCnt,MS_U32);
812 #ifdef BIFROST_32BIT_MODE
813     UADP_SDT_NAME3(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo,GOP_GWIN_FLIP_WIN_INFO,UADP_SDT_AT,FlipAddr,MS_NULL, UADP_SDT_AT,SubFlipAddr,MS_NULL,UADP_SDT_P2N,pQueueCnt,GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo_pQueueCnt);
814 #else
815     UADP_SDT_NAME1(GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo,GOP_GWIN_FLIP_WIN_INFO,UADP_SDT_P2N,pQueueCnt,GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo_pQueueCnt);
816 #endif
817     UADP_SPT_NAME1NXT(GOP_GWIN_GFLIP_SWITCH_GWIN,GOP_GWIN_GFLIP_SWITCH_GWIN_PARAM,pFlipInfo,GOP_GWIN_GFLIP_SWITCH_GWIN_FlipInfo);
818     //MAPI_CMD_GOP_GFLIP_SWITCHMULTIGWIN:
819     UADP_SDT_NAME3(GOP_GWIN_GFLIP_SWITCH_MULTI_Info,GOP_GWIN_FLIP_WIN_INFO, UADP_SDT_AT,FlipAddr,MS_NULL, UADP_SDT_AT, SubFlipAddr, MS_NULL, UADP_SDT_AT, pQueueCnt,MS_NULL);
820     UADP_SPT_NAME1NXT(GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_MultiFlipInfo,GOP_GWIN_FLIP_MULTI_WIN_INFO, FlipInfo[0], GOP_GWIN_GFLIP_SWITCH_MULTI_Info);
821     UADP_SPT_NAME1NXT(GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_PARAM,pMultiFlipInfo,GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_MultiFlipInfo);
822     //MAPI_CMD_GOP_GFLIP_RESTORE_VSYNC_LMT:
823     //MAPI_CMD_GOP_SET_PINPON:
824     UADP_SPT_NAME0NXT(GOP_SET_PINPON_PINPON_PINPONInfo,GOP_SET_PINPON_INFO);
825     UADP_SPT_NAME1NXT(GOP_SET_PINPON_PINPON,GOP_SET_PINPON_PARAM,pSetting,GOP_SET_PINPON_PINPON_PINPONInfo);
826     //MAPI_CMD_GOP_FB_CREATE:
827 #ifdef BIFROST_32BIT_MODE
828     UADP_SDT_NAME1(GOP_CREATE_BUFFER_BufInfo,GOP_BUFFER_INFO,UADP_SDT_AT,addr,MS_NULL);
829 #else
830     UADP_SDT_NAME0(GOP_CREATE_BUFFER_BufInfo,GOP_BUFFER_INFO);
831 #endif
832     UADP_SPT_NAME1NXT(GOP_CREATE_BUFFER,GOP_CREATE_BUFFER_PARAM,pBufInfo,GOP_CREATE_BUFFER_BufInfo);
833     //MAPI_CMD_GOP_FB_DESTROY:
834     UADP_SPT_NAME0NXT(GOP_DELETE_BUFFER_BufId,MS_U32);
835     UADP_SPT_NAME1NXT(GOP_DELETE_BUFFER,GOP_DELETE_BUFFER_PARAM,pBufId,GOP_DELETE_BUFFER_BufId);
836     //MAPI_CMD_GOP_FB_GETINFO:
837     //MAPI_CMD_GOP_FB_SETINFO:
838 #ifdef BIFROST_32BIT_MODE
839     UADP_SDT_NAME1(GOP_FB_INFO_BufInfo,GOP_BUFFER_INFO,UADP_SDT_AT,addr,MS_NULL);
840 #else
841     UADP_SDT_NAME0(GOP_FB_INFO_BufInfo,GOP_BUFFER_INFO);
842 #endif
843     UADP_SPT_NAME1NXT(GOP_FB_INFO,GOP_FB_INFO_PARAM,pBufInfo,GOP_FB_INFO_BufInfo);
844     //////////////////////////////////////////////////
845     //MAPI_CMD_GOP_FB_SET_PROPERTY:
846     //MAPI_CMD_GOP_FB_GET_PROPERTY:
847     UADP_SPT_NAME0NXT(GOP_FB_PROPERTY_POOLID_Pool,MS_U32);
848     UADP_SPT_NAME1NXT(GOP_FB_PROPERTY_POOLID,GOP_FB_PROPERTY_PARAM,pSet,GOP_FB_PROPERTY_POOLID_Pool);
849 
850     UADP_SPT_NAME0NXT(GOP_FB_PROPERTY_EXIST_Exist,MS_U32);
851     UADP_SPT_NAME1NXT(GOP_FB_PROPERTY_EXIST,GOP_FB_PROPERTY_PARAM,pSet,GOP_FB_PROPERTY_EXIST_Exist);
852 
853     UADP_SPT_NAME0NXT(GOP_FB_PROPERTY_OBTAIN_1,MS_U32);
854     UADP_SPT_NAME1NXT(GOP_FB_PROPERTY_OBTAIN,GOP_FB_PROPERTY_PARAM,pSet,GOP_FB_PROPERTY_OBTAIN_1);
855     //MAPI_CMD_GOP_PALETTE_SET_CONFIG:
856     UADP_SPT_NAME0NXT(GOP_PALETTE_CONFIG_PaletteInfo,GOP_PAL_OPT);
857     UADP_SPT_NAME1NXT(GOP_PALETTE_CONFIG,GOP_PALETTE_CONFIG_PARAM,pPaletteInfo,GOP_PALETTE_CONFIG_PaletteInfo);
858     //MAPI_CMD_GOP_PALETTE_SET_ENTRY:
859     //MAPI_CMD_GOP_PALETTE_GET_ENTRY:
860     UADP_SDT_NAME1(GOP_PALETTE_SET_ENTRY_A0,GOP_PALETTE_ENTRY ,UADP_SDT_P2N,pClut,GOP_PALETTE_SET_ENTRY_A0B0);
861     UADP_SDT_NAME1(GOP_PALETTE_SET_ENTRY,GOP_PALETTE_SET_PARAM,UADP_SDT_P2N,pClut,GOP_PALETTE_SET_ENTRY_A0);
862 
863     //MAPI_CMD_GOP_SET_SCROLL:
864     UADP_SPT_NAME0NXT(GOP_SCROLL_CONFIG_ScrollInfo,GOP_SCROLL_INFO);
865     UADP_SPT_NAME1NXT(GOP_SCROLL_CONFIG,GOP_SCROLL_PARAM,pCfg,GOP_SCROLL_CONFIG_ScrollInfo);
866 
867     UADP_SPT_NAME0NXT(GOP_SCROLL_RATE_rate,MS_U8);
868     UADP_SPT_NAME1NXT(GOP_SCROLL_RATE,GOP_SCROLL_PARAM,pCfg,GOP_SCROLL_RATE_rate);
869     //MAPI_CMD_GOP_GWIN_SET_FADE:
870     UADP_SPT_NAME0NXT(GOP_SET_FADE_CONFIG_FadeInfo,GOP_FADE_INFO);
871     UADP_SPT_NAME1NXT(GOP_SET_FADE_CONFIG,GOP_SET_FADE_PARAM,pSetting,GOP_SET_FADE_CONFIG_FadeInfo);
872     //MAPI_CMD_GOP_DWIN_INIT:
873 
874     //MAPI_CMD_GOP_DWIN_CAPTURE:
875 #ifdef BIFROST_32BIT_MODE
876     UADP_SDT_NAME4(GOP_DWIN_CAPTURE_Dwin,GOP_CAPTURE_INFO,UADP_SDT_AT,addr[0],MS_NULL, UADP_SDT_AT,addr[1],MS_NULL,UADP_SDT_AT,addr1[0],MS_NULL, UADP_SDT_AT,addr1[1],MS_NULL);
877 #else
878     UADP_SDT_NAME0(GOP_DWIN_CAPTURE_Dwin,GOP_CAPTURE_INFO);
879 #endif
880     UADP_SPT_NAME1NXT(GOP_DWIN_CAPTURE,GOP_DWIN_CAPTURE_PARAM,pDwin,GOP_DWIN_CAPTURE_Dwin);
881     //MAPI_CMD_GOP_DWIN_INTR:
882     UADP_SPT_NAME0NXT(GOP_DWIN_INTR_STATUS_CONTROL_IntrCtrl,GOP_DWIN_INTR_CTRL);
883     UADP_SPT_NAME1NXT(GOP_DWIN_INTR_STATUS_CONTROL,GOP_DWIN_INTR_STATUS_PARAM,pIntrInfo,GOP_DWIN_INTR_STATUS_CONTROL_IntrCtrl);
884 
885     UADP_SPT_NAME0NXT(GOP_DWIN_INTR_STATUS_GETINFO_Intr,MS_U16);
886     UADP_SPT_NAME1NXT(GOP_DWIN_INTR_STATUS_GETINFO,GOP_DWIN_INTR_STATUS_PARAM,pIntrInfo,GOP_DWIN_INTR_STATUS_GETINFO_Intr);
887 
888     UADP_SPT_NAME0NXT(GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT_Timeout,GOP_DWIN_INTR_TIME_OUT);
889     UADP_SPT_NAME1NXT(GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT,GOP_DWIN_INTR_STATUS_PARAM,pIntrInfo,GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT_Timeout);
890     //MAPI_CMD_GOP_DWIN_SET_PROPERTY:
891     //MAPI_CMD_GOP_DWIN_GET_PROPERTY:
892     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_R2Y_bEn,MS_BOOL);
893     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_R2Y,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_R2Y_bEn);
894 
895     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_UV_SWAP_bEn,MS_BOOL);
896     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_UV_SWAP,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_UV_SWAP_bEn);
897 
898     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_UV_SAMPLE_enMode,EN_GOP_DWIN_UVSAMPLE_Mode);
899     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_UV_SAMPLE,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_UV_SAMPLE_enMode);
900 
901     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE_enMode,EN_GOP_DWIN_SCAN_MODE);
902     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE_enMode);
903 
904     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_ALPHA_VALUE_Value,MS_U8);
905     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_ALPHA_VALUE,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_ALPHA_VALUE_Value);
906 
907     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_ALPHA_SOURCE_enSource,EN_GOP_DWIN_ALPHA_SRC);
908     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_ALPHA_SOURCE,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_ALPHA_SOURCE_enSource);
909 
910     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_ALPHA_INVERSE_bEn,MS_BOOL);
911     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_ALPHA_INVERSE,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_ALPHA_INVERSE_bEn);
912 
913     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_SKIP_FRAME_Count,MS_U32);
914     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_SKIP_FRAME,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_SKIP_FRAME_Count);
915 
916 #ifdef BIFROST_32BIT_MODE
917     UADP_SDT_NAME2(GOP_DWIN_PROPERTY_PINPON_Pinpon,GOP_PINPON_INFO,UADP_SDT_AT,u64Addr0,MS_NULL,UADP_SDT_AT,u64Addr1,MS_NULL);
918 #else
919     UADP_SDT_NAME0(GOP_DWIN_PROPERTY_PINPON_Pinpon,GOP_PINPON_INFO);
920 #endif
921     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_PINPON,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_PINPON_Pinpon);
922 
923     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_INTERRUP_INFO_u32,MS_U32);
924     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_INTERRUP_INFO,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_INTERRUP_INFO_u32);
925 
926     UADP_SPT_NAME0NXT(GOP_DWIN_PROPERTY_CAPTURE_INFO_u32,MS_U32);
927     UADP_SPT_NAME1NXT(GOP_DWIN_PROPERTY_CAPTURE_INFO,GOP_DWIN_PROPERTY_PARAM,pDwinProp,GOP_DWIN_PROPERTY_CAPTURE_INFO_u32);
928     //MAPI_CMD_GOP_MIXER_SET_PROPERTY:
929     //MAPI_CMD_GOP_MIXER_GET_PROPERTY:
930     UADP_SPT_NAME0NXT(GOP_MIXER_PROPERTY_OUTPUT_TIMING_MTInfo,GOP_MIXER_TIMING_INFO);
931     UADP_SPT_NAME1NXT(GOP_MIXER_PROPERTY_OUTPUT_TIMING,GOP_MIXER_PROPERTY_PARAM,pMixerProp,GOP_MIXER_PROPERTY_OUTPUT_TIMING_MTInfo);
932 
933     UADP_SPT_NAME0NXT(GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING_MT,GOP_Mixer2OPTiming);
934     UADP_SPT_NAME1NXT(GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING,GOP_MIXER_PROPERTY_PARAM,pMixerProp,GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING_MT);
935 
936     UADP_SPT_NAME0NXT(GOP_MIXER_PROPERTY_V_FILTER_bEn,MS_BOOL);
937     UADP_SPT_NAME1NXT(GOP_MIXER_PROPERTY_V_FILTER,GOP_MIXER_PROPERTY_PARAM,pMixerProp,GOP_MIXER_PROPERTY_V_FILTER_bEn);
938 
939     UADP_SPT_NAME0NXT(GOP_MIXER_PROPERTY_OLD_BLENDING_MODE_MOBM,GOP_MixerOldBlendingMode);
940     UADP_SPT_NAME1NXT(GOP_MIXER_PROPERTY_OLD_BLENDING_MODE,GOP_MIXER_PROPERTY_PARAM,pMixerProp,GOP_MIXER_PROPERTY_OLD_BLENDING_MODE_MOBM);
941     //MAPI_CMD_GOP_VE_SET_PROPERTY:
942     UADP_SPT_NAME0NXT(GOP_VE_PROPERTY_OUTPUT_TIMING_VEInfo,GOP_VE_TIMING_INFO);
943     UADP_SPT_NAME1NXT(GOP_VE_PROPERTY_OUTPUT_TIMING,GOP_VE_PROPERTY_PARAM,pVEProp,GOP_VE_PROPERTY_OUTPUT_TIMING_VEInfo);
944     //MAPI_CMD_GOP_UPDATE:
945     UADP_SPT_NAME0NXT(GOP_UPDATE_UpdateInfo,GOP_UPDATE_INFO);
946     UADP_SPT_NAME1NXT(GOP_UPDATE,GOP_UPDATE_PARAM,pUpdateInfo,GOP_UPDATE_UpdateInfo);
947     //MAPI_CMD_GOP_REGISTER_CB:
948     UADP_SPT_NAME0NXT(GOP_CB_INTERLACE_A0, MS_BOOL);
949     UADP_SPT_NAME1NXT(GOP_CB_INTERLACE,GOP_REGISTER_CB_PARAM,pCB,GOP_CB_INTERLACE_A0);
950 
951     UADP_SPT_NAME0NXT(GOP_CB_HSTART_A0, MS_U32);
952     UADP_SPT_NAME1NXT(GOP_CB_HSTART,GOP_REGISTER_CB_PARAM,pCB,GOP_CB_HSTART_A0);
953     //MAPI_CMD_GOP_TESTPATTERN:
954     UADP_SPT_NAME0NXT(GOP_TESTPATTERN, GOP_TEST_PATTERN_PARAM);
955     //MAPI_CMD_GOP_SELECTION:
956     UADP_SPT_NAME0NXT(GOP_SELECTION_SELGOP_A0, MS_U32);
957     UADP_SPT_NAME1NXT(GOP_SELECTION_SELGOP,GOP_SELECTION_PROPERTY_PARAM,pinfo,GOP_SELECTION_SELGOP_A0);
958 
959     UADP_SPT_NAME0NXT(GOP_SELECTION_SELGWIN_A0, MS_U32);
960     UADP_SPT_NAME1NXT(GOP_SELECTION_SELGWIN,GOP_SELECTION_PROPERTY_PARAM,pinfo,GOP_SELECTION_SELGWIN_A0);
961 
962 #ifdef BIFROST_32BIT_MODE
963     UADP_SDT_NAME1(GOP_SELECTION_SELFB_A0, GOP_CBFmtInfo,UADP_SDT_AT,u64Addr,MS_NULL);
964     UADP_SPT_NAME1NXT(GOP_SELECTION_SELFB,GOP_SELECTION_PROPERTY_PARAM,pinfo,GOP_SELECTION_SELFB_A0);
965 #else
966     UADP_SPT_NAME0NXT(GOP_SELECTION_SELFB_A0, GOP_CBFmtInfo);
967     UADP_SPT_NAME1NXT(GOP_SELECTION_SELFB,GOP_SELECTION_PROPERTY_PARAM,pinfo,GOP_SELECTION_SELFB_A0);
968 #endif
969     //MAPI_CMD_GOP_MUTEX:
970     UADP_SPT_NAME0NXT(GOP_MUTEX_pSet,MS_U32);
971     UADP_SPT_NAME1NXT(GOP_MUTEX,GOP_MUTEX_PARAM,pSet,GOP_MUTEX_pSet);
972     //MAPI_CMD_GOP_MISC:
973     UADP_SPT_NAME0NXT(GOP_MISC_ENABLE_T3D_bEn,MS_BOOL);
974     UADP_SPT_NAME1NXT(GOP_MISC_ENABLE_T3D,GOP_MISC_PARAM,pMISC,GOP_MISC_ENABLE_T3D_bEn);
975 
976     UADP_SPT_NAME0NXT(GOP_MISC_SET_CAPTURE_CLK_u32,MS_U32);
977     UADP_SPT_NAME1NXT(GOP_MISC_SET_CAPTURE_CLK,GOP_MISC_PARAM,pMISC,GOP_MISC_SET_CAPTURE_CLK_u32);
978 
979 
980     UADP_SPT_NAME0NXT(GOP_MISC_POWER_OFF_u32,MS_U32);
981     UADP_SPT_NAME1NXT(GOP_MISC_POWER_OFF,GOP_MISC_PARAM,pMISC,GOP_MISC_POWER_OFF_u32);
982 
983 
984     UADP_SPT_NAME0NXT(GOP_MISC_POWER_ON_u32,MS_U32);
985     UADP_SPT_NAME1NXT(GOP_MISC_POWER_ON,GOP_MISC_PARAM,pMISC,GOP_MISC_POWER_ON_u32);
986 
987     UADP_SPT_NAME0NXT(GOP_MISC_GET_RT_STATUS_GopApiSts,GOP_ApiStatus);
988     UADP_SPT_NAME1NXT(GOP_MISC_GET_RT_STATUS,GOP_MISC_PARAM,pMISC,GOP_MISC_GET_RT_STATUS_GopApiSts);
989 
990     UADP_SPT_NAME0NXT(GOP_MISC_GET_INFO_GopApiInfo,GOP_ApiInfo);
991     UADP_SPT_NAME1NXT(GOP_MISC_GET_INFO,GOP_MISC_PARAM,pMISC,GOP_MISC_GET_INFO_GopApiInfo);
992 
993     UADP_SPT_NAME0NXT(GOP_MISC_AT_EXIT_u32,MS_U32);
994     UADP_SPT_NAME1NXT(GOP_MISC_AT_EXIT,GOP_MISC_PARAM,pMISC,GOP_MISC_AT_EXIT_u32);
995 
996     UADP_SPT_NAME0NXT(GOP_MISC_OC_FB_INFO_OCFbInfo,GOP_OC_FB_INFO);
997     UADP_SPT_NAME1NXT(GOP_MISC_OC_FB_INFO,GOP_MISC_PARAM,pMISC,GOP_MISC_OC_FB_INFO_OCFbInfo);
998 
999     UADP_SPT_NAME0NXT(GOP_MISC_TESTPATTERN_ALPHA_bEn,MS_BOOL);
1000     UADP_SPT_NAME1NXT(GOP_MISC_TESTPATTERN_ALPHA,GOP_MISC_PARAM,pMISC,GOP_MISC_TESTPATTERN_ALPHA_bEn);
1001 
1002     UADP_SPT_NAME0NXT(GOP_MISC_DELETE_GWINSIZE_A0, GOP_DeleteWinSize_PARAM);
1003     UADP_SPT_NAME1NXT(GOP_MISC_DELETE_GWINSIZE,GOP_MISC_PARAM,pMISC,GOP_MISC_DELETE_GWINSIZE_A0);
1004     //MAPI_CMD_GOP_RESETPOOL:
1005 
1006     UADP_SPT_NAME0NXT(GOP_POWERSTATE_PARAM_A0, MS_U32);
1007     UADP_SPT_NAME1NXT(GOP_POWERSTATE_PARAM,GOP_POWERSTATE_PARAM,pInfo,GOP_POWERSTATE_PARAM_A0);
1008 
1009 	*pIoctl= (FUtopiaIOctl)GOP_adp_Ioctl;
1010 
1011     return 0;
1012 }
1013 
GOP_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)1014 MS_U32 GOP_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
1015 {
1016     MS_U32 u32Ret=UTOPIA_STATUS_SUCCESS;
1017 	char buffer_arg[2048];
1018     switch(u32Cmd)
1019     {
1020         //gop property
1021         case MAPI_CMD_GOP_INIT:
1022             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_INIT, spt_GOP_INIT,buffer_arg,sizeof(buffer_arg));
1023             break;
1024         case MAPI_CMD_GOP_GET_CHIPCAPS:
1025             {
1026                 GOP_GETCAPS_PARAM ptr;
1027                 if(copy_from_user(&ptr, (GOP_GETCAPS_PARAM __user *)pArgs, sizeof(GOP_GETCAPS_PARAM)))
1028                 {
1029                     return UTOPIA_STATUS_FAIL;
1030                 }
1031                 switch(ptr.caps)
1032                 {
1033                     case E_GOP_CAP_WORD_UNIT:
1034                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_WORD_UNIT,spt_GOP_GETCAPS_WORD_UNIT,buffer_arg,sizeof(buffer_arg));
1035                         break;
1036                     case E_GOP_CAP_GWIN_NUM:
1037                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_GWIN_NUM,spt_GOP_GETCAPS_GWIN_NUM,buffer_arg,sizeof(buffer_arg));
1038                         break;
1039                     case E_GOP_CAP_VERSION:
1040                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_VERSION,spt_GOP_GETCAPS_VERSION,buffer_arg,sizeof(buffer_arg));
1041                         break;
1042                     case E_GOP_CAP_RESERVED:
1043                         printk("E_GOP_IS_PIXELBASE_ENABLE not implement\n");
1044                         break;
1045                     case E_GOP_CAP_CONSALPHA_VALIDBITS:
1046                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_CONSALPHA_VALIDBITS,spt_GOP_GETCAPS_CONSALPHA_VALIDBITS,buffer_arg,sizeof(buffer_arg));
1047                         break;
1048                     case E_GOP_CAP_PALETTE:
1049                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_PALETTE,spt_GOP_GETCAPS_PALETTE,buffer_arg,sizeof(buffer_arg));
1050                         break;
1051                     case E_GOP_CAP_DWIN:
1052                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_DWIN,spt_GOP_GETCAPS_DWIN,buffer_arg,sizeof(buffer_arg));
1053                         break;
1054                     case E_GOP_CAP_GOP_MUX:
1055                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_GOP_MUX,spt_GOP_GETCAPS_GOP_MUX,buffer_arg,sizeof(buffer_arg));
1056                         break;
1057                     case E_GOP_CAP_PIXELMODE_SUPPORT:
1058                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_PIXELMODE_SUPPORT,spt_GOP_GETCAPS_PIXELMODE_SUPPORT,buffer_arg,sizeof(buffer_arg));
1059                         break;
1060                     case E_GOP_CAP_STRETCH:
1061                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_STRETCH,spt_GOP_GETCAPS_STRETCH,buffer_arg,sizeof(buffer_arg));
1062                         break;
1063                     case E_GOP_CAP_AFBC_SUPPORT:
1064                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETCAPS_SUPPORT_AFBC,spt_GOP_GETCAPS_SUPPORT_AFBC,buffer_arg,sizeof(buffer_arg));
1065                         break;
1066                 }
1067                 break;
1068             }
1069         case MAPI_CMD_GOP_SET_CONFIG:
1070         case MAPI_CMD_GOP_GET_CONFIG:
1071             {
1072                 GOP_SETCONFIG_PARAM ptr;
1073                 if(copy_from_user(&ptr, (GOP_SETCONFIG_PARAM __user *)pArgs, sizeof(GOP_SETCONFIG_PARAM)))
1074                 {
1075                     return UTOPIA_STATUS_FAIL;
1076                 }
1077                 switch(ptr.cfg_type)
1078                 {
1079                     case E_GOP_IGNOREINIT:
1080                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CONFIG_IGNOREINIT,spt_GOP_CONFIG_IGNOREINIT,buffer_arg,sizeof(buffer_arg));
1081                         break;
1082                     case E_GOP_CONSALPHA_BITS:
1083                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CONFIG_CONSALPHA_BITS,spt_GOP_CONFIG_CONSALPHA_BITS,buffer_arg,sizeof(buffer_arg));
1084                         break;
1085                    case E_GOP_TIMING_INFO:
1086                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CONFIG_TIMING_INFO,spt_GOP_CONFIG_TIMING_INFO,buffer_arg,sizeof(buffer_arg));
1087                         break;
1088                    case E_GOP_IS_PIXELBASE_ENABLE:
1089                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CONFIG_IS_PIXEL_ENABLE,spt_GOP_CONFIG_IS_PIXEL_ENABLE,buffer_arg,sizeof(buffer_arg));
1090                         break;
1091                    case E_GOP_GET_MAXFBNUM:
1092                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CONFIG_GET_MAXFBNUM,spt_GOP_CONFIG_GET_MAXFBNUM,buffer_arg,sizeof(buffer_arg));
1093                         break;
1094                 }
1095                 break;
1096             }
1097         case MAPI_CMD_GOP_SET_PROPERTY:
1098         case MAPI_CMD_GOP_GET_PROPERTY:
1099            {
1100                 GOP_SET_PROPERTY_PARAM ptr;
1101                 if(copy_from_user(&ptr, (GOP_SET_PROPERTY_PARAM __user *)pArgs, sizeof(GOP_SET_PROPERTY_PARAM)))
1102                 {
1103                     return UTOPIA_STATUS_FAIL;
1104                 }
1105                 switch(ptr.en_pro)
1106                 {
1107                     case E_GOP_MIUSEL:
1108                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_MIUSEL,spt_GOP_PROPERTY_MIUSEL,buffer_arg,sizeof(buffer_arg));
1109                         break;
1110                     case E_GOP_CONTRAST:
1111                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_CONTRAST,spt_GOP_PROPERTY_CONTRAST,buffer_arg,sizeof(buffer_arg));
1112                         break;
1113                     case E_GOP_BRIGHTNESS:
1114                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_BRIGHTNESS,spt_GOP_PROPERTY_BRIGHTNESS,buffer_arg,sizeof(buffer_arg));
1115                         break;
1116                     case E_GOP_OUTPUT_COLOR:
1117                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_OUTPUT_COLOR,spt_GOP_PROPERTY_OUTPUT_COLOR,buffer_arg,sizeof(buffer_arg));
1118                         break;
1119                     case E_GOP_UV_SWAP:
1120                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_UV_SWAP,spt_GOP_PROPERTY_UV_SWAP,buffer_arg,sizeof(buffer_arg));
1121                         break;
1122                     case E_GOP_YC_SWAP:
1123                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_YC_SWAP,spt_GOP_PROPERTY_YC_SWAP,buffer_arg,sizeof(buffer_arg));
1124                         break;
1125                     case E_GOP_HSTART:
1126                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_HSTART,spt_GOP_PROPERTY_HSTART,buffer_arg,sizeof(buffer_arg));
1127                         break;
1128                     case E_GOP_TRANSCOLOR:
1129                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_TRANSCOLOR,spt_GOP_PROPERTY_TRANSCOLOR,buffer_arg,sizeof(buffer_arg));
1130                         break;
1131                     case E_GOP_PROGRESSIVE:
1132                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_PROGRESSIVE,spt_GOP_PROPERTY_PROGRESSIVE,buffer_arg,sizeof(buffer_arg));
1133                         break;
1134                     case E_GOP_ALPHAINVERSE:
1135                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_ALPHAINVERSE,spt_GOP_PROPERTY_ALPHAINVERSE,buffer_arg,sizeof(buffer_arg));
1136                         break;
1137                     case E_GOP_PREALPHAMODE:
1138                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_PREALPHAMODE,spt_GOP_PROPERTY_PREALPHAMODE,buffer_arg,sizeof(buffer_arg));
1139                         break;
1140                     case E_GOP_FIELD_INVERSE:
1141                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_FIELD_INVERSE,spt_GOP_PROPERTY_FIELD_INVERSE,buffer_arg,sizeof(buffer_arg));
1142                         break;
1143                     case E_GOP_HSCALE_RATIO:
1144                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_HSCALE_RATIO,spt_GOP_PROPERTY_HSCALE_RATIO,buffer_arg,sizeof(buffer_arg));
1145                         break;
1146                     case E_GOP_VSCALE_RATIO:
1147                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_VSCALE_RATIO,spt_GOP_PROPERTY_VSCALE_RATIO,buffer_arg,sizeof(buffer_arg));
1148                         break;
1149                     case E_GOP_OUTPUT_TIMING:
1150                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_OUTPUT_TIMING,spt_GOP_PROPERTY_OUTPUT_TIMING,buffer_arg,sizeof(buffer_arg));
1151                         break;
1152                     case E_GOP_PIXELBASE_ENABLE:
1153                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_PIXELBASE_ENABLE,spt_GOP_PROPERTY_PIXELBASE_ENABLE,buffer_arg,sizeof(buffer_arg));
1154                         break;
1155                     case E_GOP_CLK:
1156                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_CLK,spt_GOP_PROPERTY_CLK,buffer_arg,sizeof(buffer_arg));
1157                         break;
1158                     case E_GOP_FORCE_WRITE:
1159                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_FORCE_WRITE,spt_GOP_PROPERTY_FORCE_WRITE,buffer_arg,sizeof(buffer_arg));
1160                         break;
1161                     case E_GOP_BANK_FORCE_WRITE:
1162                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_BANK_FORCE_WRITE,spt_GOP_PROPERTY_BANK_FORCE_WRITE,buffer_arg,sizeof(buffer_arg));
1163                         break;
1164                     case E_GOP_3D_LR_EXCHANGE:
1165                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_3D_LR_EXCHANGE,spt_GOP_PROPERTY_3D_LR_EXCHANGE,buffer_arg,sizeof(buffer_arg));
1166                         break;
1167                     case E_GOP_VE_OSD:
1168                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_VE_OSD,spt_GOP_PROPERTY_VE_OSD,buffer_arg,sizeof(buffer_arg));
1169                         break;
1170                     case E_GOP_OUTPUT_LAYER_SWITCH:
1171                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_OUTPUT_LAYER_SWITCH,spt_GOP_PROPERTY_OUTPUT_LAYER_SWITCH,buffer_arg,sizeof(buffer_arg));
1172                         break;
1173                     case E_GOP_SWAP_OVERLAP_WIN:
1174                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_SWAP_OVERLAP_WIN,spt_GOP_PROPERTY_SWAP_OVERLAP_WIN,buffer_arg,sizeof(buffer_arg));
1175                         break;
1176                     case E_GOP_BW_STRENGTH:
1177                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_BW_STRENGTH,spt_GOP_PROPERTY_BW_STRENGTH,buffer_arg,sizeof(buffer_arg));
1178                         break;
1179                     case E_GOP_LB_COUPLE:
1180                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_LB_COUPLE,spt_GOP_PROPERTY_LB_COUPLE,buffer_arg,sizeof(buffer_arg));
1181                         break;
1182                     case E_GOP_YUV:
1183                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_YUV,spt_GOP_PROPERTY_YUV,buffer_arg,sizeof(buffer_arg));
1184                         break;
1185                     case E_GOP_REG_UPDATED:
1186                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_REG_UPDATED,spt_GOP_PROPERTY_REG_UPDATED,buffer_arg,sizeof(buffer_arg));
1187                         break;
1188                     case E_GOP_RELATIVE_WIN_PRIO:
1189                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_RELATIVE_WIN_PRIO,spt_GOP_PROPERTY_RELATIVE_WIN_PRIO,buffer_arg,sizeof(buffer_arg));
1190                         break;
1191                     case E_GOP_RESOURCE:
1192                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_RESOURCE,spt_GOP_PROPERTY_RESOURCE,buffer_arg,sizeof(buffer_arg));
1193                         break;
1194                     case E_GOP_MAXFBNUM:
1195                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_MAXFBNUM,spt_GOP_PROPERTY_MAXFBNUM,buffer_arg,sizeof(buffer_arg));
1196                         break;
1197                     case E_GOP_MULTI_ALPHA_ENABLE:
1198                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_MULTI_ALPHA_ENABLE,spt_GOP_PROPERTY_MULTI_ALPHA_ENABLE,buffer_arg,sizeof(buffer_arg));
1199                         break;
1200                     case E_GOP_GWIN_TLB_ENABLE:
1201                         //u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_TLB_ENABLE,spt_GOP_PROPERTY_TLB_ENABLE,buffer_arg,sizeof(buffer_arg));
1202                         break;
1203                     case E_GOP_AFBC_CORE_RESET:
1204                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_AFBC_CORE_RESET,spt_GOP_PROPERTY_AFBC_CORE_RESET,buffer_arg,sizeof(buffer_arg));
1205                         break;
1206                     case E_GOP_AFBC_CORE_ENABLE:
1207                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PROPERTY_AFBC_CORE_EN,spt_GOP_PROPERTY_AFBC_CORE_EN,buffer_arg,sizeof(buffer_arg));
1208                         break;
1209                      case E_GOP_NUM_IS_INIT:
1210                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_INIT_pInfo_noparameter,spt_GOP_INIT_pInfo_noparameter,buffer_arg,sizeof(buffer_arg));
1211                         break;
1212                 }
1213                 break;
1214             }
1215         case MAPI_CMD_GOP_SET_DST:
1216             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SETDST, spt_GOP_SETDST,buffer_arg,sizeof(buffer_arg));
1217             break;
1218         case MAPI_CMD_GOP_GET_DST:
1219             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GETDST, spt_GOP_GETDST,buffer_arg,sizeof(buffer_arg));
1220             break;
1221         case MAPI_CMD_GOP_SET_MUX:
1222             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SETMUX, spt_GOP_SETMUX,buffer_arg,sizeof(buffer_arg));
1223             break;
1224         case MAPI_CMD_GOP_SET_LAYER:
1225         case MAPI_CMD_GOP_GET_LAYER:
1226             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_LAYER, spt_GOP_LAYER,buffer_arg,sizeof(buffer_arg));
1227             break;
1228         case MAPI_CMD_GOP_SET_MIRROR:
1229         case MAPI_CMD_GOP_GET_MIRROR:
1230             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MIRROR, spt_GOP_MIRROR,buffer_arg,sizeof(buffer_arg));
1231             break;
1232         case MAPI_CMD_GOP_GET_STATUS:
1233             {
1234                 GOP_GET_STATUS_PARAM ptr;
1235                 if(copy_from_user(&ptr, (GOP_GET_STATUS_PARAM __user *)pArgs, sizeof(GOP_GET_STATUS_PARAM)))
1236                 {
1237                     return UTOPIA_STATUS_FAIL;
1238                 }
1239                 switch(ptr.en_status)
1240                 {
1241                     case E_GOP_STATUS_CURRENT_GOP:
1242                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_CURRENT_GOP,spt_GOP_STATUS_CURRENT_GOP,buffer_arg,sizeof(buffer_arg));
1243                         break;
1244                     case E_GOP_STATUS_CURRENT_GWIN:
1245                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_CURRENT_GWIN,spt_GOP_STATUS_CURRENT_GWIN,buffer_arg,sizeof(buffer_arg));
1246                         break;
1247                     case E_GOP_STATUS_CURRENT_FBID:
1248                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_CURRENT_FBID,spt_GOP_STATUS_CURRENT_FBID,buffer_arg,sizeof(buffer_arg));
1249                         break;
1250                     case E_GOP_STATUS_GOP_MAXNUM:
1251                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_GOP_MAXNUM,spt_GOP_STATUS_GOP_MAXNUM,buffer_arg,sizeof(buffer_arg));
1252                         break;
1253                     case E_GOP_STATUS_GWIN_MAXNUM:
1254                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_GWIN_MAXNUM,spt_GOP_STATUS_GWIN_MAXNUM,buffer_arg,sizeof(buffer_arg));
1255                         break;
1256                     case E_GOP_STATUS_GWIN_TOTALNUM:
1257                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_GWIN_TOTALNUM,spt_GOP_STATUS_GWIN_TOTALNUM,buffer_arg,sizeof(buffer_arg));
1258                         break;
1259                     case E_GOP_STATUS_INIT:
1260                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_INIT,spt_GOP_STATUS_INIT,buffer_arg,sizeof(buffer_arg));
1261                         break;
1262                     case E_GOP_STATUS_VERSION:
1263                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_VERSION,spt_GOP_STATUS_VERSION,buffer_arg,sizeof(buffer_arg));
1264                         break;
1265                     case E_GOP_STATUS_MUX:
1266                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STATUS_MUX,spt_GOP_STATUS_MUX,buffer_arg,sizeof(buffer_arg));
1267                         break;
1268                 }
1269                 break;
1270             }
1271         //Stretch Win
1272         case MAPI_CMD_GOP_GWIN_SET_STRETCH:
1273         case MAPI_CMD_GOP_GWIN_GET_STRETCH:
1274             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_STRETCH, spt_GOP_STRETCH,buffer_arg,sizeof(buffer_arg));
1275             break;
1276         //GWIN info
1277         case MAPI_CMD_GOP_GWIN_SET_PROPERTY:
1278         case MAPI_CMD_GOP_GWIN_GET_PROPERTY:
1279             {
1280                 GOP_GWIN_PROPERTY_PARAM ptr;
1281                 if(copy_from_user(&ptr, (GOP_GWIN_PROPERTY_PARAM __user *)pArgs, sizeof(GOP_GWIN_PROPERTY_PARAM)))
1282                 {
1283                     return UTOPIA_STATUS_FAIL;
1284                 }
1285                 switch(ptr.en_property)
1286                 {
1287                     case E_GOP_GWIN_ENABLE:
1288                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_ENABLE,spt_GOP_GWIN_PROPERTY_ENABLE,buffer_arg,sizeof(buffer_arg));
1289                         break;
1290                     case E_GOP_GWIN_BLENDING:
1291                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_BLENDING,spt_GOP_GWIN_PROPERTY_BLENDING,buffer_arg,sizeof(buffer_arg));
1292                         break;
1293                     case E_GOP_GWIN_NEWAPLHA:
1294                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_NEWAPLHA,spt_GOP_GWIN_PROPERTY_NEWAPLHA,buffer_arg,sizeof(buffer_arg));
1295                         break;
1296                     case E_GOP_GWIN_BLINK:
1297                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_BLINK,spt_GOP_GWIN_PROPERTY_BLINK,buffer_arg,sizeof(buffer_arg));
1298                         break;
1299                     case E_GOP_GWIN_SHARE:
1300                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_SHARE,spt_GOP_GWIN_PROPERTY_SHARE,buffer_arg,sizeof(buffer_arg));
1301                         break;
1302                     case E_GOP_GWIN_SHARE_CNT:
1303                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_SHARE_CNT,spt_GOP_GWIN_PROPERTY_SHARE_CNT,buffer_arg,sizeof(buffer_arg));
1304                         break;
1305                     case E_GOP_GWIN_SWITCH_2_GWIN:
1306                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_SWITCH_2_GWIN,spt_GOP_GWIN_PROPERTY_SWITCH_2_GWIN,buffer_arg,sizeof(buffer_arg));
1307                         break;
1308                     case E_GOP_GWIN_3D_MODE:
1309                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_3D_MODE,spt_GOP_GWIN_PROPERTY_3D_MODE,buffer_arg,sizeof(buffer_arg));
1310                         break;
1311                     case E_GOP_GWIN_EXIST:
1312                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_EXIST,spt_GOP_GWIN_PROPERTY_EXIST,buffer_arg,sizeof(buffer_arg));
1313                         break;
1314                     case E_GOP_GWIN_FREE_ID:
1315                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_FREE_ID,spt_GOP_GWIN_PROPERTY_FREE_ID,buffer_arg,sizeof(buffer_arg));
1316                         break;
1317                     case E_GOP_GWIN_GET_FB:
1318                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_GET_FB,spt_GOP_GWIN_PROPERTY_GET_FB,buffer_arg,sizeof(buffer_arg));
1319                         break;
1320                     case E_GOP_GWIN_GET_GOP:
1321                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_GET_GOP,spt_GOP_GWIN_PROPERTY_GET_GOP,buffer_arg,sizeof(buffer_arg));
1322                         break;
1323                     case E_GOP_GWIN_GPUTILE:
1324                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_PROPERTY_GOPTILE,spt_GOP_GWIN_PROPERTY_GOPTILE,buffer_arg,sizeof(buffer_arg));
1325                         break;
1326                 }
1327                 break;
1328             }
1329         case MAPI_CMD_GOP_GWIN_MAPFB2WIN:
1330             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_MAPFBINFO,spt_GOP_GWIN_MAPFBINFO,buffer_arg,sizeof(buffer_arg));
1331             break;
1332         case MAPI_CMD_GOP_GWIN_SET_WININFO:
1333         case MAPI_CMD_GOP_GWIN_GET_WININFO:
1334             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_SETWININFO,spt_GOP_GWIN_SETWININFO,buffer_arg,sizeof(buffer_arg));
1335             break;
1336         case MAPI_CMD_GOP_GWIN_SETDISPLAY:
1337             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_DISPLAY,spt_GOP_GWIN_DISPLAY,buffer_arg,sizeof(buffer_arg));
1338             break;
1339         case MAPI_CMD_GOP_GWIN_DESTROY:
1340             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_DESTROY,spt_GOP_GWIN_DESTROY,buffer_arg,sizeof(buffer_arg));
1341             break;
1342         //GFLIP
1343         case MAPI_CMD_GOP_GFLIP_CLEARQUEUE:
1344             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_CLEARQUEUE,spt_GOP_GWIN_CLEARQUEUE,buffer_arg,sizeof(buffer_arg));
1345             break;
1346         case MAPI_CMD_GOP_GFLIP_SWITCHGWIN:
1347             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_GFLIP_SWITCH_GWIN, spt_GOP_GWIN_GFLIP_SWITCH_GWIN,buffer_arg,sizeof(buffer_arg));
1348             break;
1349         case MAPI_CMD_GOP_GFLIP_SWITCHMULTIGWIN:
1350         #if 1
1351             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,spt_GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,buffer_arg,sizeof(buffer_arg));
1352         #else
1353             //u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,spt_GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN,buffer_arg,sizeof(buffer_arg));
1354             MS_U8 i=0;
1355             GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_PARAM Str;
1356             GOP_GWIN_FLIP_MULTI_WIN_INFO Str_A0;
1357             GOP_GWIN_FLIP_WIN_INFO Str_A0B0[GOP_MULTIINFO_NUM];
1358             MS_U32 Str_A0B0CO[GOP_MULTIINFO_NUM];
1359 
1360             PGOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_PARAM Usr=NULL;
1361             PGOP_GWIN_FLIP_MULTI_WIN_INFO Usr_A0=NULL;
1362             GOP_GWIN_FLIP_WIN_INFO* Usr_A0B0[GOP_MULTIINFO_NUM];
1363             MS_U32* Usr_A0B0CO=NULL;
1364 
1365             Usr = (PGOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_PARAM)pArgs;
1366             Usr_A0 = (PGOP_GWIN_FLIP_MULTI_WIN_INFO)Usr->pMultiFlipInfo;
1367             Usr_A0B0[0] = (GOP_GWIN_FLIP_WIN_INFO*)&Usr_A0->FlipInfo;
1368 
1369             if(copy_from_user(&Str, Usr, sizeof(GOP_GWIN_GFLIP_SWITCH_MULTI_GWIN_PARAM)))
1370             {
1371                 return UTOPIA_STATUS_FAIL;
1372             }
1373             Str.pMultiFlipInfo = (MS_U32*)&Str_A0;
1374             if(copy_from_user(&Str_A0, Usr_A0, sizeof(GOP_GWIN_FLIP_MULTI_WIN_INFO)))
1375             {
1376                 return UTOPIA_STATUS_FAIL;
1377             }
1378             if(copy_from_user(&Str_A0B0[0], Usr_A0B0, sizeof(GOP_GWIN_FLIP_WIN_INFO)*Usr_A0->u8InfoCnt))
1379             {
1380                 return UTOPIA_STATUS_FAIL;
1381             }
1382 
1383             for(i=0; i<Usr_A0->u8InfoCnt; i++)
1384             {
1385                 Usr_A0B0CO = (MS_U32*)Usr_A0B0[i]->pQueueCnt;
1386 
1387                 Str_A0.FlipInfo[i] = Str_A0B0[i];
1388                 Str_A0B0[i].pQueueCnt =(MS_U32*)&Str_A0B0CO;
1389                 if(copy_from_user(&Str_A0B0CO[i], Usr_A0B0CO, sizeof(MS_U32)))
1390                 {
1391                     return UTOPIA_STATUS_FAIL;
1392                 }
1393             }
1394             u32Ret=UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)&Str);
1395         }
1396         #endif
1397             break;
1398 
1399         case MAPI_CMD_GOP_GFLIP_RESTORE_VSYNC_LMT:
1400             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
1401             break;
1402         //PINPON
1403         case MAPI_CMD_GOP_SET_PINPON:
1404             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SET_PINPON_PINPON,spt_GOP_SET_PINPON_PINPON,buffer_arg,sizeof(buffer_arg));
1405             break;
1406         //FB Info
1407         case MAPI_CMD_GOP_FB_CREATE:
1408             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CREATE_BUFFER,spt_GOP_CREATE_BUFFER,buffer_arg,sizeof(buffer_arg));
1409             break;
1410         case MAPI_CMD_GOP_FB_DESTROY:
1411             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DELETE_BUFFER,spt_GOP_DELETE_BUFFER,buffer_arg,sizeof(buffer_arg));
1412             break;
1413         case MAPI_CMD_GOP_FB_GETINFO:
1414         case MAPI_CMD_GOP_FB_SETINFO:
1415             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_FB_INFO,spt_GOP_FB_INFO,buffer_arg,sizeof(buffer_arg));
1416             break;
1417         case MAPI_CMD_GOP_FB_SET_PROPERTY:
1418         case MAPI_CMD_GOP_FB_GET_PROPERTY:
1419             {
1420                 GOP_FB_PROPERTY_PARAM ptr;
1421                 if(copy_from_user(&ptr, (GOP_FB_PROPERTY_PARAM __user *)pArgs, sizeof(GOP_FB_PROPERTY_PARAM)))
1422                 {
1423                     return UTOPIA_STATUS_FAIL;
1424                 }
1425                 switch(ptr.en_property)
1426                 {
1427                     case E_GOP_FB_POOLID:
1428                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_FB_PROPERTY_POOLID,spt_GOP_FB_PROPERTY_POOLID,buffer_arg,sizeof(buffer_arg));
1429                         break;
1430                     case E_GOP_FB_EXIST:
1431                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_FB_PROPERTY_EXIST,spt_GOP_FB_PROPERTY_EXIST,buffer_arg,sizeof(buffer_arg));
1432                         break;
1433                     case E_GOP_FB_OBTAIN:
1434                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_FB_PROPERTY_OBTAIN,spt_GOP_FB_PROPERTY_OBTAIN,buffer_arg,sizeof(buffer_arg));
1435                         break;
1436                 }
1437                 break;
1438             }
1439         //palette
1440         case MAPI_CMD_GOP_PALETTE_SET_CONFIG:
1441             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PALETTE_CONFIG,spt_GOP_PALETTE_CONFIG,buffer_arg,sizeof(buffer_arg));
1442             break;
1443         case MAPI_CMD_GOP_PALETTE_SET_ENTRY:
1444             {
1445 #ifdef CONFIG_COMPAT
1446 if(is_compat_task()==1)
1447 {
1448             compat_uint_t i;
1449             compat_uptr_t p;
1450             int err= 0;
1451 
1452             GOP_PALETTE_SET_PARAM_32 __user *data32;
1453             GOP_PALETTE_SET_PARAM __user *data;
1454             data = compat_alloc_user_space(sizeof(*data));
1455             if (data == NULL)
1456                 return -EFAULT;
1457             data32 = compat_ptr(pArgs);
1458             err = get_user(i, &data32->type);
1459             err |= put_user(i, &data->type);
1460             err |= get_user(p, &data32->pClut);
1461             err |= put_user(compat_ptr(p), &data->pClut);
1462             err |= get_user(i, &data32->u32Size);
1463             err |= put_user(i, &data->u32Size);
1464             if (err)
1465                 return err;
1466 
1467             GOP_PALETTE_ENTRY_32 __user *data32_Pale;
1468             GOP_PALETTE_ENTRY __user *data_Pale;
1469             data_Pale = compat_alloc_user_space(sizeof(*data_Pale));
1470             if (data_Pale == NULL)
1471                 return -EFAULT;
1472             data32_Pale = compat_ptr(data32->pClut);
1473             data->pClut= &data_Pale;
1474             err = get_user(i, &data32_Pale->gop_idx);
1475             err |= put_user(i, &data_Pale->gop_idx);
1476             err |= get_user(i, &data32_Pale->start);
1477             err |= put_user(i, &data_Pale->start);
1478             err |= get_user(i, &data32_Pale->end);
1479             err |= put_user(i, &data_Pale->end);
1480             err |= get_user(p, &data32_Pale->pClut);
1481             err |= put_user(compat_ptr(p), &data_Pale->pClut);
1482             err |= get_user(i, &data32_Pale->palType);
1483             err |= put_user(i, &data_Pale->palType);
1484             err |= get_user(i, &data32_Pale->palSrc);
1485             err |= put_user(i, &data_Pale->palSrc);
1486 			if (err)
1487 				return err;
1488             UADP_SPT_BGN(&spt_GOP_PALETTE_SET_ENTRY_A0B0[0],sizeof(GOP_PaletteEntry)*(data32_Pale->end-data32_Pale->start+1));
1489             UADP_SPT_FIN(&spt_GOP_PALETTE_SET_ENTRY_A0B0[1]);
1490             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PALETTE_SET_ENTRY,spt_GOP_PALETTE_SET_ENTRY,buffer_arg,sizeof(buffer_arg));
1491 }
1492 else
1493 #endif
1494 {
1495             GOP_PALETTE_SET_PARAM Str;
1496             GOP_PALETTE_ENTRY Str_A0;
1497             //MS_U32 Str_A0B0[256]={0};
1498             MS_U32 *Str_A0B0 = NULL;
1499 
1500             PGOP_PALETTE_SET_PARAM Usr=NULL;
1501             GOP_PALETTE_ENTRY* Usr_A0=NULL;
1502             MS_U32* Usr_A0B0=NULL;
1503 
1504             Usr=(PGOP_PALETTE_SET_PARAM)pArgs;
1505             Usr_A0 = (GOP_PALETTE_ENTRY*)Usr->pClut;
1506             Usr_A0B0 = (MS_U32*)Usr_A0->pClut;
1507 
1508             if(copy_from_user(&Str, Usr, sizeof(GOP_PALETTE_SET_PARAM)))
1509             {
1510                 return UTOPIA_STATUS_FAIL;
1511             }
1512             Str.pClut = (MS_U32*)&Str_A0;
1513             if(copy_from_user(&Str_A0, Usr_A0, sizeof(GOP_PALETTE_ENTRY)))
1514             {
1515                 return UTOPIA_STATUS_FAIL;
1516             }
1517             Str_A0B0 = malloc(sizeof(MS_U32) * 256);
1518             if(Str_A0B0 != NULL)
1519             {
1520                 memset(Str_A0B0, 0x0, sizeof(MS_U32) * 256);
1521             }
1522             else
1523             {
1524                 printk("MAPI_CMD_GOP_PALETTE_SET_ENTRY, malloc fail\n");
1525                 return UTOPIA_STATUS_FAIL;
1526             }
1527             Str_A0.pClut = (MS_U32*)Str_A0B0;
1528             if(copy_from_user(Str_A0B0, Usr_A0B0, sizeof(MS_U32)*(Usr_A0->end-Usr_A0->start+1)))
1529             {
1530                 if(Str_A0B0 != NULL)
1531                 {
1532                     free(Str_A0B0);
1533                     Str_A0B0 = NULL;
1534                 }
1535                 return UTOPIA_STATUS_FAIL;
1536             }
1537             u32Ret=UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)&Str);
1538             if(Str_A0B0 != NULL)
1539             {
1540                 free(Str_A0B0);
1541                 Str_A0B0 = NULL;
1542             }
1543 }
1544             }
1545             break;
1546         case MAPI_CMD_GOP_PALETTE_GET_ENTRY:
1547             {
1548 
1549 #ifdef CONFIG_COMPAT
1550 if(is_compat_task()==1)
1551 {
1552              compat_uint_t i;
1553              compat_uptr_t p;
1554              int err= 0;
1555 
1556              GOP_PALETTE_SET_PARAM_32 __user *data32;
1557              GOP_PALETTE_SET_PARAM __user *data;
1558              data = compat_alloc_user_space(sizeof(*data));
1559              if (data == NULL)
1560                  return -EFAULT;
1561              data32 = compat_ptr(pArgs);
1562              err = get_user(i, &data32->type);
1563              err |= put_user(i, &data->type);
1564              err |= get_user(p, &data32->pClut);
1565              err |= put_user(compat_ptr(p), &data->pClut);
1566              err |= get_user(i, &data32->u32Size);
1567              err |= put_user(i, &data->u32Size);
1568              if (err)
1569                  return err;
1570 
1571              GOP_PALETTE_ENTRY_32 __user *data32_Pale;
1572              GOP_PALETTE_ENTRY __user *data_Pale;
1573              data_Pale = compat_alloc_user_space(sizeof(*data_Pale));
1574              if (data_Pale == NULL)
1575                  return -EFAULT;
1576              data32_Pale = compat_ptr(data32->pClut);
1577              data->pClut= &data_Pale;
1578              err = get_user(i, &data32_Pale->gop_idx);
1579              err |= put_user(i, &data_Pale->gop_idx);
1580              err |= get_user(i, &data32_Pale->start);
1581              err |= put_user(i, &data_Pale->start);
1582              err |= get_user(i, &data32_Pale->end);
1583              err |= put_user(i, &data_Pale->end);
1584              err |= get_user(p, &data32_Pale->pClut);
1585              err |= put_user(compat_ptr(p), &data_Pale->pClut);
1586              err |= get_user(i, &data32_Pale->palType);
1587              err |= put_user(i, &data_Pale->palType);
1588              err |= get_user(i, &data32_Pale->palSrc);
1589              err |= put_user(i, &data_Pale->palSrc);
1590              if (err)
1591                  return err;
1592              UADP_SPT_BGN(&spt_GOP_PALETTE_SET_ENTRY_A0B0[0],sizeof(GOP_PaletteEntry)*(data32_Pale->end-data32_Pale->start+1));
1593              UADP_SPT_FIN(&spt_GOP_PALETTE_SET_ENTRY_A0B0[1]);
1594              u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_PALETTE_SET_ENTRY ,spt_GOP_PALETTE_SET_ENTRY,buffer_arg,sizeof(buffer_arg));
1595 }
1596 else
1597 #endif
1598 {
1599             GOP_PALETTE_SET_PARAM Str;
1600             GOP_PALETTE_ENTRY Str_A0;
1601             //MS_U32 Str_A0B0[256]={0};
1602             MS_U32 *Str_A0B0 = NULL;
1603 
1604             PGOP_PALETTE_SET_PARAM Usr=NULL;
1605             GOP_PALETTE_ENTRY* Usr_A0=NULL;
1606             MS_U32* Usr_A0B0=NULL;
1607 
1608             Usr=(PGOP_PALETTE_SET_PARAM)pArgs;
1609             Usr_A0 = (GOP_PALETTE_ENTRY*)Usr->pClut;
1610             Usr_A0B0 = (MS_U32*)Usr_A0->pClut;
1611 
1612             Str.pClut = (MS_U32*)&Str_A0;
1613             //Str_A0.pClut = (MS_U32*)Str_A0B0;
1614 
1615             if(copy_from_user(&Str, Usr, sizeof(GOP_PALETTE_SET_PARAM)))
1616             {
1617                 return UTOPIA_STATUS_FAIL;
1618             }
1619 
1620             Str_A0B0 = malloc(sizeof(MS_U32) * 256);
1621             if(Str_A0B0 != NULL)
1622             {
1623                 memset(Str_A0B0, 0x0, sizeof(MS_U32) * 256);
1624             }
1625             else
1626             {
1627                 printk("MAPI_CMD_GOP_PALETTE_SET_ENTRY, malloc fail\n");
1628                 return UTOPIA_STATUS_FAIL;
1629             }
1630             Str_A0.pClut = (MS_U32*)Str_A0B0;
1631 
1632             if(copy_from_user(&Str_A0, Usr_A0, sizeof(GOP_PALETTE_ENTRY)))
1633             {
1634                 if(Str_A0B0 != NULL)
1635                 {
1636                     free(Str_A0B0);
1637                     Str_A0B0 = NULL;
1638                 }
1639                 return UTOPIA_STATUS_FAIL;
1640             }
1641 
1642             u32Ret=UtopiaIoctl(pInstanceTmp, u32Cmd, (void*)&Str);
1643             if(copy_to_user(Usr, &Str, sizeof(GOP_PALETTE_SET_PARAM)))
1644             {
1645                 return UTOPIA_STATUS_FAIL;
1646             }
1647             if(copy_to_user(Usr_A0, &Str_A0, sizeof(GOP_PALETTE_ENTRY)))
1648             {
1649                 return UTOPIA_STATUS_FAIL;
1650             }
1651 
1652             if(copy_to_user(Usr_A0B0, Str_A0B0, sizeof(MS_U32)*(Usr_A0->end-Usr_A0->start+1)))
1653             {
1654                 return UTOPIA_STATUS_FAIL;
1655             }
1656             if(Str_A0B0 != NULL)
1657             {
1658                 free(Str_A0B0);
1659                 Str_A0B0 = NULL;
1660             }
1661             break;
1662 }
1663             }
1664         //Scroll
1665         case MAPI_CMD_GOP_SET_SCROLL:
1666             {
1667                 GOP_SCROLL_PARAM ptr;
1668                 if(copy_from_user(&ptr, (GOP_SCROLL_PARAM __user *)pArgs, sizeof(GOP_SCROLL_PARAM)))
1669                 {
1670                     return UTOPIA_STATUS_FAIL;
1671                 }
1672                 switch(ptr.scroll_type)
1673                 {
1674                     case E_GOP_SCROLL_CONFIG:
1675                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SCROLL_CONFIG, NULL,buffer_arg,sizeof(buffer_arg));
1676                         break;
1677                     case E_GOP_SCROLL_RATE:
1678                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SCROLL_RATE, NULL,buffer_arg,sizeof(buffer_arg));
1679                         break;
1680                 }
1681                 break;
1682             }
1683         case MAPI_CMD_GOP_GWIN_SET_FADE:
1684             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SET_FADE_CONFIG,spt_GOP_SET_FADE_CONFIG,buffer_arg,sizeof(buffer_arg));
1685             break;
1686         //DWIN
1687         case MAPI_CMD_GOP_DWIN_INIT:
1688             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
1689             break;
1690         case MAPI_CMD_GOP_DWIN_CAPTURE:
1691             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_CAPTURE,spt_GOP_DWIN_CAPTURE,buffer_arg,sizeof(buffer_arg));
1692             break;
1693         case MAPI_CMD_GOP_DWIN_INTR:
1694             {
1695                 GOP_DWIN_INTR_STATUS_PARAM ptr;
1696                 if(copy_from_user(&ptr, (GOP_DWIN_INTR_STATUS_PARAM __user *)pArgs, sizeof(GOP_DWIN_INTR_STATUS_PARAM)))
1697                 {
1698                     return UTOPIA_STATUS_FAIL;
1699                 }
1700                 switch(ptr.intr_type)
1701                 {
1702                     case E_GOP_DWIN_INTR_CONTROL:
1703                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_INTR_STATUS_CONTROL,spt_GOP_DWIN_INTR_STATUS_CONTROL,buffer_arg,sizeof(buffer_arg));
1704                         break;
1705                     case E_GOP_DWIN_INTR_GETINFO:
1706                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_INTR_STATUS_GETINFO,spt_GOP_DWIN_INTR_STATUS_GETINFO,buffer_arg,sizeof(buffer_arg));
1707                         break;
1708                     case E_GOP_DWIN_INTR_GETINFO_TIMEOUT:
1709                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT,spt_GOP_DWIN_INTR_STATUS_GETINFO_TIMEOUT,buffer_arg,sizeof(buffer_arg));
1710                         break;
1711                 }
1712                 break;
1713             }
1714         case MAPI_CMD_GOP_DWIN_SET_PROPERTY:
1715         case MAPI_CMD_GOP_DWIN_GET_PROPERTY:
1716             {
1717                 GOP_DWIN_PROPERTY_PARAM ptr;
1718                 if(copy_from_user(&ptr, (GOP_DWIN_PROPERTY_PARAM __user *)pArgs, sizeof(GOP_DWIN_PROPERTY_PARAM)))
1719                 {
1720                     return UTOPIA_STATUS_FAIL;
1721                 }
1722                 switch(ptr.en_dwin_property)
1723                 {
1724                     case E_GOP_DWIN_R2Y:
1725                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_R2Y,spt_GOP_DWIN_PROPERTY_R2Y,buffer_arg,sizeof(buffer_arg));
1726                         break;
1727                     case E_GOP_DWIN_UV_SWAP:
1728                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_UV_SWAP,spt_GOP_DWIN_PROPERTY_UV_SWAP,buffer_arg,sizeof(buffer_arg));
1729                         break;
1730                     case E_GOP_DWIN_UV_SAMPLE:
1731                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_UV_SAMPLE,spt_GOP_DWIN_PROPERTY_UV_SAMPLE,buffer_arg,sizeof(buffer_arg));
1732                         break;
1733                     case E_GOP_DWIN_SOURCE_SCAN_TYPE:
1734                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE,spt_GOP_DWIN_PROPERTY_SOURCE_SCAN_TYPE,buffer_arg,sizeof(buffer_arg));
1735                         break;
1736                     case E_GOP_DWIN_ALPHA_VALUE:
1737                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_ALPHA_VALUE,spt_GOP_DWIN_PROPERTY_ALPHA_VALUE,buffer_arg,sizeof(buffer_arg));
1738                         break;
1739                     case E_GOP_DWIN_ALPHA_SOURCE:
1740                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_ALPHA_SOURCE,spt_GOP_DWIN_PROPERTY_ALPHA_SOURCE,buffer_arg,sizeof(buffer_arg));
1741                         break;
1742                     case E_GOP_DWIN_ALPHA_INVERSE:
1743                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_ALPHA_INVERSE,spt_GOP_DWIN_PROPERTY_ALPHA_INVERSE,buffer_arg,sizeof(buffer_arg));
1744                         break;
1745                     case E_GOP_DWIN_SKIP_FRAME:
1746                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_SKIP_FRAME,spt_GOP_DWIN_PROPERTY_SKIP_FRAME,buffer_arg,sizeof(buffer_arg));
1747                         break;
1748                     case E_GOP_DWIN_PINPON:
1749                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_PINPON,spt_GOP_DWIN_PROPERTY_PINPON,buffer_arg,sizeof(buffer_arg));
1750                         break;
1751                     case E_GOP_DWIN_INTERRUP_INFO:
1752                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_INTERRUP_INFO,spt_GOP_DWIN_PROPERTY_INTERRUP_INFO,buffer_arg,sizeof(buffer_arg));
1753                         break;
1754                     case E_GOP_DWIN_CAPTURE_INFO:
1755                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_DWIN_PROPERTY_CAPTURE_INFO,spt_GOP_DWIN_PROPERTY_CAPTURE_INFO,buffer_arg,sizeof(buffer_arg));
1756                         break;
1757                 }
1758                 break;
1759             }
1760         //MIXER
1761         case MAPI_CMD_GOP_MIXER_SET_PROPERTY:
1762         case MAPI_CMD_GOP_MIXER_GET_PROPERTY:
1763             {
1764                 GOP_MIXER_PROPERTY_PARAM ptr;
1765                 if(copy_from_user(&ptr, (GOP_MIXER_PROPERTY_PARAM __user *)pArgs, sizeof(GOP_MIXER_PROPERTY_PARAM)))
1766                 {
1767                     return UTOPIA_STATUS_FAIL;
1768                 }
1769                 switch(ptr.en_mixer_property)
1770                 {
1771                     case E_GOP_MIXER_OUTPUT_TIMING:
1772                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MIXER_PROPERTY_OUTPUT_TIMING,spt_GOP_MIXER_PROPERTY_OUTPUT_TIMING,buffer_arg,sizeof(buffer_arg));
1773                         break;
1774                     case E_GOP_MIXER_TO_OP_OUTPUT_TIMING:
1775                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING,spt_GOP_MIXER_PROPERTY_TO_OP_OUTPUT_TIMING,buffer_arg,sizeof(buffer_arg));
1776                         break;
1777                     case E_GOP_MIXER_V_FILTER:
1778                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MIXER_PROPERTY_V_FILTER,spt_GOP_MIXER_PROPERTY_V_FILTER,buffer_arg,sizeof(buffer_arg));
1779                         break;
1780                     case E_GOP_MIXER_OLD_BLENDING_MODE:
1781                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MIXER_PROPERTY_OLD_BLENDING_MODE,spt_GOP_MIXER_PROPERTY_OLD_BLENDING_MODE,buffer_arg,sizeof(buffer_arg));
1782                         break;
1783                 }
1784                 break;
1785             }
1786             break;
1787         //VE
1788         case MAPI_CMD_GOP_VE_SET_PROPERTY:
1789             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_VE_PROPERTY_OUTPUT_TIMING,spt_GOP_VE_PROPERTY_OUTPUT_TIMING,buffer_arg,sizeof(buffer_arg));
1790             break;
1791         //MISC
1792         case MAPI_CMD_GOP_UPDATE:
1793             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_UPDATE,spt_GOP_UPDATE,buffer_arg,sizeof(buffer_arg));
1794             break;
1795         case MAPI_CMD_GOP_REGISTER_CB:
1796             {
1797                 GOP_REGISTER_CB_PARAM ptr;
1798                 if(copy_from_user(&ptr, (GOP_REGISTER_CB_PARAM __user *)pArgs, sizeof(GOP_REGISTER_CB_PARAM)))
1799                 {
1800                     return UTOPIA_STATUS_FAIL;
1801                 }
1802                 switch(ptr.cb_type)
1803                 {
1804                     case GOP_CB_XC_INTERLACE:
1805                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CB_INTERLACE,NULL,buffer_arg,sizeof(buffer_arg));
1806                         break;
1807                     case GOP_CB_XC_PANEL_HSTART:
1808                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_CB_HSTART,NULL,buffer_arg,sizeof(buffer_arg));
1809                         break;
1810                 }
1811             break;
1812             }
1813         case MAPI_CMD_GOP_TESTPATTERN:
1814             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_TESTPATTERN,NULL,buffer_arg,sizeof(buffer_arg));
1815             break;
1816         case MAPI_CMD_GOP_SELECTION:
1817             {
1818                 GOP_SELECTION_PROPERTY_PARAM ptr;
1819                 if(copy_from_user(&ptr, pArgs, sizeof(GOP_SELECTION_PROPERTY_PARAM)))
1820                 {
1821                     return UTOPIA_STATUS_FAIL;
1822                 }
1823                 switch(ptr.sel_type)
1824                 {
1825                     case EN_GOP_SEL_GOP:
1826                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SELECTION_SELGOP, NULL,buffer_arg,sizeof(buffer_arg));
1827                         break;
1828                     case EN_GOP_SEL_GWIN:
1829                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SELECTION_SELGWIN, NULL,buffer_arg,sizeof(buffer_arg));
1830                         break;
1831                     case EN_GOP_SEL_FB:
1832                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_SELECTION_SELFB, spt_GOP_SELECTION_SELFB,buffer_arg,sizeof(buffer_arg));
1833                         break;
1834                     default:
1835                         break;
1836                 }
1837             break;
1838             }
1839         case MAPI_CMD_GOP_MUTEX:
1840             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MUTEX,spt_GOP_MUTEX,buffer_arg,sizeof(buffer_arg));
1841             break;
1842         case MAPI_CMD_GOP_MISC:
1843             {
1844                 GOP_MISC_PARAM ptr;
1845                 if(copy_from_user(&ptr, (GOP_MISC_PARAM __user *)pArgs, sizeof(GOP_MISC_PARAM)))
1846                 {
1847                     return UTOPIA_STATUS_FAIL;
1848                 }
1849                 switch(ptr.misc_type)
1850                 {
1851                     case E_GOP_MISC_ENABLE_T3D:
1852                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_ENABLE_T3D,spt_GOP_MISC_ENABLE_T3D,buffer_arg,sizeof(buffer_arg));
1853                         break;
1854                     case E_GOP_MISC_SET_CAPTURE_CLK:
1855                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_SET_CAPTURE_CLK,spt_GOP_MISC_SET_CAPTURE_CLK,buffer_arg,sizeof(buffer_arg));
1856                         break;
1857                     case E_GOP_MISC_POWER_OFF:
1858                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_POWER_OFF,spt_GOP_MISC_POWER_OFF,buffer_arg,sizeof(buffer_arg));
1859                         break;
1860                     case E_GOP_MISC_POWER_ON:
1861                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_POWER_ON,spt_GOP_MISC_POWER_ON,buffer_arg,sizeof(buffer_arg));
1862                         break;
1863                     case E_GOP_MISC_GET_RT_STATUS:
1864                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_GET_RT_STATUS,spt_GOP_MISC_GET_RT_STATUS,buffer_arg,sizeof(buffer_arg));
1865                         break;
1866                     case E_GOP_MISC_GET_INFO:
1867                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_GET_INFO,spt_GOP_MISC_GET_INFO,buffer_arg,sizeof(buffer_arg));
1868                         break;
1869                     case E_GOP_MISC_AT_EXIT:
1870                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_AT_EXIT,spt_GOP_MISC_AT_EXIT,buffer_arg,sizeof(buffer_arg));
1871                         break;
1872                     case E_GOP_MISC_OC_FB_INFO:
1873                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_OC_FB_INFO,spt_GOP_MISC_OC_FB_INFO,buffer_arg,sizeof(buffer_arg));
1874                         break;
1875                     case E_GOP_MISC_TESTPATTERN_ALPHA:
1876                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_TESTPATTERN_ALPHA,spt_GOP_MISC_TESTPATTERN_ALPHA,buffer_arg,sizeof(buffer_arg));
1877                         break;
1878                     case E_GOP_MISC_DELETE_GWINSIZE:
1879                         u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_MISC_DELETE_GWINSIZE,NULL ,buffer_arg,sizeof(buffer_arg));
1880                         break;
1881                 }
1882                 break;
1883             }
1884         case MAPI_CMD_GOP_RESETPOOL:
1885             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
1886             break;
1887         case MAPI_CMD_GOP_POWERSTATE:
1888             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_GOP_POWERSTATE_PARAM,spt_GOP_POWERSTATE_PARAM,buffer_arg,sizeof(buffer_arg));
1889             break;
1890         default:
1891             break;
1892     }
1893     return u32Ret;
1894 }
1895 
1896