xref: /utopia/UTPA2-700.0.x/modules/vd/utopia_adaption/avd/AVD_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 
5 
6 
7 
8 #include "MsTypes.h"
9 #include "utopia.h"
10 #include "drvAVD.h"
11 #include "drvAVD_v2.h"
12 //#include "drvAVD_priv.h"
13 #include "AVD_adp.h"
14 
15 
16 #include "utopia_adp.h"
17 //#include "MsOS.h"
18 
19 
20 
21 //#include <linux/kernel.h>
22 
23 
24 
25 
26 //Top
27 UADP_STRUCT_POINTER_TABLE spt_AVD_CopyToUser[10];
28 UADP_STRUCT_POINTER_TABLE spt_AVD_pu8VD_DSP[10];
29 UADP_STRUCT_POINTER_TABLE spt_AVD_stCapWin[10];
30 UADP_STRUCT_POINTER_TABLE spt_AVD_u16LatchStatus[10];
31 UADP_STRUCT_POINTER_TABLE spt_AVD_MSIF_Version[10];
32 UADP_STRUCT_POINTER_TABLE u8AVDValue[10];
33 UADP_STRUCT_POINTER_TABLE u16AVDValue[10];
34 UADP_STRUCT_POINTER_TABLE u32AVDValue[10];
35 
36 UADP_STRUCT_POINTER_TABLE bAVDEnable[10];
37 UADP_STRUCT_POINTER_TABLE eVideoFreq[10];
38 UADP_STRUCT_POINTER_TABLE eFreerunfreq[10];
39 //
40   UADP_STRUCT_POINTER_TABLE spt_AVD_GetStandardDetection[10];
41 //
42 
43 UADP_STRUCT_POINTER_TABLE spt_AVD_INIT[10];
44 UADP_STRUCT_POINTER_TABLE spt_AVD_LOADDSP[10];
45 UADP_STRUCT_POINTER_TABLE spt_AVD_BACKPORCHWINPOS[10];
46 UADP_STRUCT_POINTER_TABLE spt_AVD_SETREGVALUE[10];
47 UADP_STRUCT_POINTER_TABLE spt_AVD_SETINPUT[10];
48 UADP_STRUCT_POINTER_TABLE spt_AVD_SETVIDEOSTANDARD[10];
49 UADP_STRUCT_POINTER_TABLE spt_AVD_SETSHIFTCLK[10];
50 UADP_STRUCT_POINTER_TABLE spt_AVD_SETFACTORYPARA[10];
51 UADP_STRUCT_POINTER_TABLE spt_AVD_SET3DCOMBSPEED[10];
52 UADP_STRUCT_POINTER_TABLE spt_AVD_GETCAPTUREWINDOW[10];
53 UADP_STRUCT_POINTER_TABLE spt_AVD_SETBURSTWINSTART[10];
54 
55 //Bottom
56 UADP_STRUCT_POINTER_TABLE spt_AVD_VdDecInitializeExt[10];
57 UADP_STRUCT_POINTER_TABLE spt_AVD_VD_DSP_Code_Address[10];
58 
59 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_VD_INITDATA[10];
60 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_Still_Image_Param[10];
61 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_SCAN_HSYNC_CHECK[10];
62 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_FORCEVIDEOSTANDARD[10];
63 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_SETDBGLEVEL[10];
64 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_MBXREADBYTEBYVDMBOX[10];
65 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_GETREGVALUE[10];
66 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_SETPOWERSTATE[10];
67 UADP_STRUCT_POINTER_TABLE spt_DrvAVD_AVD_GETLIBVER[10];
68 
AVD_adp_Init(FUtopiaIOctl * pIoctl)69 MS_U32 AVD_adp_Init(FUtopiaIOctl* pIoctl)
70 {
71 
72 //set table
73     printk("AVD_adp_Init\n");
74 
75     UADP_SPT_BGN(&spt_AVD_pu8VD_DSP[0],sizeof(MS_U8));
76     UADP_SPT_FIN(&spt_AVD_pu8VD_DSP[1]);
77 
78     UADP_SPT_BGN(&spt_AVD_stCapWin[0],sizeof(void));
79     UADP_SPT_FIN(&spt_AVD_stCapWin[1]);
80 
81     UADP_SPT_BGN(&spt_AVD_u16LatchStatus[0],sizeof(MS_U16));
82     UADP_SPT_FIN(&spt_AVD_u16LatchStatus[1]);
83 
84     UADP_SPT_BGN(&spt_AVD_GetStandardDetection[0], sizeof(AVD_GETSTANDARDDETECTION));
85     //UADP_SPT_NXT(&spt_AVD_GetStandardDetection[1],AVD_GETSTANDARDDETECTION,vdLatchStatus, spt_AVD_u16LatchStatus);
86     UADP_SPT_FIN(&spt_AVD_GetStandardDetection[1]);
87 
88     UADP_SPT_BGN(&spt_AVD_MSIF_Version[0],sizeof(MSIF_Version));
89     UADP_SPT_FIN(&spt_AVD_MSIF_Version[1]);
90 
91 //========
92     UADP_SPT_BGN(&u8AVDValue[0],sizeof(MS_U8));
93     UADP_SPT_FIN(&u8AVDValue[1]);
94     UADP_SPT_BGN(&u16AVDValue[0],sizeof(MS_U16));
95     UADP_SPT_FIN(&u16AVDValue[1]);
96     UADP_SPT_BGN(&u32AVDValue[0],sizeof(MS_U32));
97     UADP_SPT_FIN(&u32AVDValue[1]);
98     UADP_SPT_BGN(&bAVDEnable[0],sizeof(MS_BOOL));
99     UADP_SPT_FIN(&bAVDEnable[1]);
100 
101     UADP_SPT_BGN(&eVideoFreq[0],sizeof(AVD_VideoFreq));
102     UADP_SPT_FIN(&eVideoFreq[1]);
103     UADP_SPT_BGN(&eFreerunfreq[0],sizeof(AVD_FreeRunFreq));
104     UADP_SPT_FIN(&eFreerunfreq[1]);
105 
106     UADP_SPT_BGN(&spt_AVD_INIT[0], sizeof(AVD_INIT));
107     //UADP_SPT_NXT(&spt_AVD_INIT[1],AVD_INIT,pVD_InitData, spt_DrvAVD_VD_INITDATA);
108     UADP_SPT_FIN(&spt_AVD_INIT[1]);
109 
110     UADP_SPT_BGN(&spt_AVD_LOADDSP[0], sizeof(AVD_LOADDSP));
111     UADP_SPT_NXT(&spt_AVD_LOADDSP[1],AVD_LOADDSP,pu8VD_DSP, spt_AVD_pu8VD_DSP);
112     UADP_SPT_FIN(&spt_AVD_LOADDSP[2]);
113 
114 
115     UADP_SPT_BGN(&spt_AVD_BACKPORCHWINPOS[0],sizeof(AVD_BACKPORCHWINPOS));
116     UADP_SPT_FIN(&spt_AVD_BACKPORCHWINPOS[1]);
117 
118     UADP_SPT_BGN(&spt_AVD_SETREGVALUE[0],sizeof(AVD_SETREGVALUE));
119     UADP_SPT_FIN(&spt_AVD_SETREGVALUE[1]);
120 
121     UADP_SPT_BGN(&spt_AVD_SETBURSTWINSTART[0],sizeof(MS_U8));
122     UADP_SPT_FIN(&spt_AVD_SETBURSTWINSTART[1]);
123 
124     UADP_SPT_BGN(&spt_AVD_SETINPUT[0],sizeof(AVD_SETINPUT));
125     UADP_SPT_FIN(&spt_AVD_SETINPUT[1]);
126 
127     UADP_SPT_BGN(&spt_AVD_SETVIDEOSTANDARD[0],sizeof(AVD_SETVIDEOSTANDARD));
128     UADP_SPT_FIN(&spt_AVD_SETVIDEOSTANDARD[1]);
129 
130     UADP_SPT_BGN(&spt_AVD_SETSHIFTCLK[0], sizeof(AVD_SETSHIFTCLK));
131     UADP_SPT_FIN(&spt_AVD_SETSHIFTCLK[1]);
132 
133     UADP_SPT_BGN(&spt_AVD_SETFACTORYPARA[0], sizeof(AVD_SETFACTORYPARA));
134     UADP_SPT_FIN(&spt_AVD_SETFACTORYPARA[1]);
135 
136     UADP_SPT_BGN(&spt_AVD_SET3DCOMBSPEED[0], sizeof(AVD_SET3DCOMBSPEED));
137     UADP_SPT_FIN(&spt_AVD_SET3DCOMBSPEED[1]);
138 
139     UADP_SDT_BGN(&spt_AVD_GETCAPTUREWINDOW[0], sizeof(AVD_GETCAPTUREWINDOW));
140     //UADP_SPT_NXT(&spt_AVD_LOADDSP[1],AVD_GETCAPTUREWINDOW,stCapWin, spt_AVD_stCapWin);
141     UADP_SDT_KIND(&spt_AVD_GETCAPTUREWINDOW[1],AVD_GETCAPTUREWINDOW,UADP_SDT_P2N,stCapWin, spt_AVD_stCapWin);
142     UADP_SDT_FIN(&spt_AVD_GETCAPTUREWINDOW[2]);
143 
144     UADP_SPT_BGN(&spt_AVD_CopyToUser[0],sizeof(AVD_COPYTOUSER));
145     UADP_SPT_FIN(&spt_AVD_CopyToUser[1]);
146 
147     //bottom
148     UADP_SPT_BGN(&spt_AVD_VdDecInitializeExt[0],sizeof(MS_U8));
149     UADP_SPT_FIN(&spt_AVD_VdDecInitializeExt[1]);
150 
151     UADP_SPT_BGN(&spt_AVD_VD_DSP_Code_Address[0],sizeof(MS_U8));
152     UADP_SPT_FIN(&spt_AVD_VD_DSP_Code_Address[1]);
153 
154     UADP_SPT_BGN(&spt_DrvAVD_VD_INITDATA[0],sizeof(VD_INITDATA));
155     UADP_SPT_NXT(&spt_DrvAVD_VD_INITDATA[1],VD_INITDATA,u8VdDecInitializeExt, spt_AVD_VdDecInitializeExt);
156     UADP_SPT_NXT(&spt_DrvAVD_VD_INITDATA[2],VD_INITDATA,pu8VD_DSP_Code_Address, spt_AVD_VD_DSP_Code_Address);
157     UADP_SPT_FIN(&spt_DrvAVD_VD_INITDATA[3]);
158 
159     UADP_SPT_BGN(&spt_DrvAVD_AVD_Still_Image_Param[0],sizeof(AVD_Still_Image_Param));
160     UADP_SPT_FIN(&spt_DrvAVD_AVD_Still_Image_Param[1]);
161 
162     UADP_SPT_BGN(&spt_DrvAVD_AVD_SCAN_HSYNC_CHECK[0],sizeof(AVD_SCANHSYNCCHECK));
163     UADP_SPT_FIN(&spt_DrvAVD_AVD_SCAN_HSYNC_CHECK[1]);
164 
165     UADP_SPT_BGN(&spt_DrvAVD_AVD_FORCEVIDEOSTANDARD[0],sizeof(AVD_FORCEVIDEOSTANDARD));
166     UADP_SPT_FIN(&spt_DrvAVD_AVD_FORCEVIDEOSTANDARD[1]);
167 
168     UADP_SPT_BGN(&spt_DrvAVD_AVD_SETDBGLEVEL[0],sizeof(AVD_SETDBGLEVEL));
169     UADP_SPT_FIN(&spt_DrvAVD_AVD_SETDBGLEVEL[1]);
170 
171     UADP_SPT_BGN(&spt_DrvAVD_AVD_MBXREADBYTEBYVDMBOX[0],sizeof(AVD_MBXREADBYTEBYVDMBOX));
172     UADP_SPT_FIN(&spt_DrvAVD_AVD_MBXREADBYTEBYVDMBOX[1]);
173 
174     UADP_SPT_BGN(&spt_DrvAVD_AVD_GETREGVALUE[0],sizeof(AVD_GETREGVALUE));
175     UADP_SPT_FIN(&spt_DrvAVD_AVD_GETREGVALUE[1]);
176 
177     UADP_SPT_BGN(&spt_DrvAVD_AVD_SETPOWERSTATE[0],sizeof(AVD_SETPOWERSTATE));
178     UADP_SPT_FIN(&spt_DrvAVD_AVD_SETPOWERSTATE[1]);
179 
180     UADP_SPT_BGN(&spt_DrvAVD_AVD_GETLIBVER[0],sizeof(AVD_GETLIBVER));
181     UADP_SPT_NXT(&spt_DrvAVD_AVD_GETLIBVER[1],AVD_GETLIBVER,ppVersion, spt_AVD_MSIF_Version);
182     UADP_SPT_FIN(&spt_DrvAVD_AVD_GETLIBVER[2]);
183 
184     *pIoctl= (FUtopiaIOctl)AVD_adp_Ioctl;
185     return 0;
186 
187 }
188 
AVD_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)189 MS_U32 AVD_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
190 {
191     MS_U32 u32Ret = 0;
192     char buffer_arg[2048];
193     switch(u32Cmd)
194     {
195 
196         case MDrv_CMD_AVD_Init :
197             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_INIT,spt_AVD_INIT,buffer_arg,sizeof(buffer_arg));
198         break;
199         case MDrv_CMD_AVD_Exit:
200             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
201         break;
202         case MDrv_CMD_AVD_ResetMCU:
203             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
204         break;
205         case MDrv_CMD_AVD_FreezeMCU:
206             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,bAVDEnable,NULL,buffer_arg,sizeof(buffer_arg));
207         break;
208         case MDrv_CMD_AVD_Scan_HsyncCheck:
209             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_SCAN_HSYNC_CHECK,spt_DrvAVD_AVD_SCAN_HSYNC_CHECK,buffer_arg,sizeof(buffer_arg));
210         break;
211         case MDrv_CMD_AVD_StartAutoStandardDetection:
212             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
213         break;
214         case MDrv_CMD_AVD_ForceVideoStandard:
215             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_FORCEVIDEOSTANDARD,spt_DrvAVD_AVD_FORCEVIDEOSTANDARD,buffer_arg,sizeof(buffer_arg));
216         break;
217         case MDrv_CMD_AVD_3DCombSpeedup:
218             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
219         break;
220         case MDrv_CMD_AVD_LoadDSP :
221             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_LOADDSP,NULL,buffer_arg,sizeof(buffer_arg));
222         break;
223         case MDrv_CMD_AVD_BackPorchWindowPositon :
224             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_BACKPORCHWINPOS,NULL,buffer_arg,sizeof(buffer_arg));
225         break;
226         case MDrv_CMD_AVD_MBX_ReadByteByVDMbox:
227             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_MBXREADBYTEBYVDMBOX,spt_DrvAVD_AVD_MBXREADBYTEBYVDMBOX,buffer_arg,sizeof(buffer_arg));
228         break;
229         case MDrv_CMD_AVD_SetFlag:
230             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,u32AVDValue,NULL,buffer_arg,sizeof(buffer_arg));
231         break;
232         case MDrv_CMD_AVD_SetRegValue :
233             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETREGVALUE,NULL,buffer_arg,sizeof(buffer_arg));
234         break;
235         case MDrv_CMD_AVD_SetRegFromDSP:
236             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
237         break;
238         case MDrv_CMD_AVD_SetInput :
239             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETINPUT,spt_AVD_SETINPUT,buffer_arg,sizeof(buffer_arg));
240         break;
241         case MDrv_CMD_AVD_SetVideoStandard :
242             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETVIDEOSTANDARD,spt_AVD_SETVIDEOSTANDARD,buffer_arg,sizeof(buffer_arg));
243         break;
244         case MDrv_CMD_AVD_SetChannelChange:
245             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
246         break;
247         case MDrv_CMD_AVD_SetHsyncDetectionForTuning:
248             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,bAVDEnable,NULL,buffer_arg,sizeof(buffer_arg));
249         break;
250         case MDrv_CMD_AVD_Set3dComb:
251             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,bAVDEnable,NULL,buffer_arg,sizeof(buffer_arg));
252         break;
253         case MDrv_CMD_AVD_SetShiftClk :
254             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETSHIFTCLK,NULL,buffer_arg,sizeof(buffer_arg));
255         break;
256         case MDrv_CMD_AVD_SetFreerunPLL:
257             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,eVideoFreq,NULL,buffer_arg,sizeof(buffer_arg));
258         break;
259         case MDrv_CMD_AVD_SetFreerunFreq:
260             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,eFreerunfreq,NULL,buffer_arg,sizeof(buffer_arg));
261         break;
262         case MDrv_CMD_AVD_SetFactoryPara :
263             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETFACTORYPARA,NULL,buffer_arg,sizeof(buffer_arg));
264         break;
265         case MDrv_CMD_AVD_Set_Htt_UserMD :
266             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,u16AVDValue,NULL,buffer_arg,sizeof(buffer_arg));
267         break;
268         case MDrv_CMD_AVD_SetDbgLevel:
269             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_SETDBGLEVEL,spt_DrvAVD_AVD_SETDBGLEVEL,buffer_arg,sizeof(buffer_arg));
270         break;
271         case MDrv_CMD_AVD_SetPQFineTune:
272             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
273         break;
274         case MDrv_CMD_AVD_Set3dCombSpeed:
275             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SET3DCOMBSPEED,NULL,buffer_arg,sizeof(buffer_arg));
276         break;
277         case MDrv_CMD_AVD_SetStillImageParam:
278             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_Still_Image_Param,NULL,buffer_arg,sizeof(buffer_arg));
279         break;
280         case MDrv_CMD_AVD_SetAFECD4Factory:
281             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,u8AVDValue,NULL,buffer_arg,sizeof(buffer_arg));
282         break;
283         case MDrv_CMD_AVD_Set2D3DPatchOnOff:
284             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,bAVDEnable,NULL,buffer_arg,sizeof(buffer_arg));
285         break;
286         case MDrv_CMD_AVD_SetAutoFineGainToFixed:
287             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,u8AVDValue,buffer_arg,sizeof(buffer_arg));
288         break;
289         case MDrv_CMD_AVD_GetFlag:
290             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
291         break;
292         case MDrv_CMD_AVD_GetRegValue:
293             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_GETREGVALUE,spt_DrvAVD_AVD_GETREGVALUE,buffer_arg,sizeof(buffer_arg));
294         break;
295         case MDrv_CMD_AVD_GetStatus:
296             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
297         break;
298         case MDrv_CMD_AVD_GetNoiseMag:
299             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
300         break;
301         case MDrv_CMD_AVD_GetVTotal:
302             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
303         break;
304         case MDrv_CMD_AVD_GetStandardDetection :
305             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_GetStandardDetection,spt_AVD_GetStandardDetection,buffer_arg,sizeof(buffer_arg));
306         break;
307         case MDrv_CMD_AVD_GetLastDetectedStandard :
308             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
309         break;
310         case MDrv_CMD_AVD_GetCaptureWindow :
311             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_GETCAPTUREWINDOW,spt_AVD_GETCAPTUREWINDOW,buffer_arg,sizeof(buffer_arg));
312         break;
313         case MDrv_CMD_AVD_GetVerticalFreq:
314             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
315         break;
316         case MDrv_CMD_AVD_GetHsyncEdge:
317             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
318         break;
319         case MDrv_CMD_AVD_GetDSPFineGain:
320             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
321         break;
322         case MDrv_CMD_AVD_GetDSPVersion:
323             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
324         break;
325         case MDrv_CMD_AVD_GetLibVer:
326             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_GETLIBVER,spt_DrvAVD_AVD_GETLIBVER,buffer_arg,sizeof(buffer_arg));
327         break;
328         case MDrv_CMD_AVD_GetInfo:
329             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
330         break;
331         case MDrv_CMD_AVD_IsSyncLocked:
332             UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
333         break;
334         case MDrv_CMD_AVD_IsSignalInterlaced:
335             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
336         break;
337         case MDrv_CMD_AVD_IsColorOn:
338             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
339         break;
340         case MDrv_CMD_AVD_SetPowerState:
341             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DrvAVD_AVD_SETPOWERSTATE,spt_DrvAVD_AVD_SETPOWERSTATE,buffer_arg,sizeof(buffer_arg));
342         break;
343         case MDrv_CMD_AVD_GetMacroVisionDetect:
344             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
345         break;
346         case MDrv_CMD_AVD_GetCGMSDetect:
347             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
348         break;
349         case MDrv_CMD_AVD_SetBurstWinStart:
350             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AVD_SETBURSTWINSTART,NULL,buffer_arg,sizeof(buffer_arg));
351         break;
352         case MDrv_CMD_AVD_AliveCheck:
353             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
354         break;
355         case MDrv_CMD_AVD_IsLockAudioCarrier:
356             UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,NULL,spt_AVD_CopyToUser,buffer_arg,sizeof(buffer_arg));
357         break;
358         default:
359         break;
360 
361     }
362 
363     return u32Ret;
364    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
365 }
366