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