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 #include "MsTypes.h"
6*53ee8cc1Swenshuai.xi #include "utopia.h"
7*53ee8cc1Swenshuai.xi #include "drvVBI.h"
8*53ee8cc1Swenshuai.xi #include "drvVBI_v2.h"
9*53ee8cc1Swenshuai.xi #include "VBI_adp.h"
10*53ee8cc1Swenshuai.xi
11*53ee8cc1Swenshuai.xi
12*53ee8cc1Swenshuai.xi #include "utopia_adp.h"
13*53ee8cc1Swenshuai.xi
14*53ee8cc1Swenshuai.xi //VBI CC/TTX
15*53ee8cc1Swenshuai.xi
16*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_BOOL);
17*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_GET_DATA);
18*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_GETINFO_PARAM);
19*53ee8cc1Swenshuai.xi
20*53ee8cc1Swenshuai.xi UADP_SPT_1NXT_DEF(VBI_GETSTATUS_PARAM);
21*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_DrvStatus); // member belong to VBI_GETSTATUS_PARAM
22*53ee8cc1Swenshuai.xi
23*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_SETDBGLEVEL_PARAM);
24*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CMD);
25*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_INIT_TYPE_PARAM);
26*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(DMX_TTX_CMD);
27*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_REGISTER_CB);
28*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_INITIALIZER_TTX_SLICER);
29*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_ENABLE_TTX_SLICER);
30*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_GET_RAW_VPS_DATA);
31*53ee8cc1Swenshuai.xi
32*53ee8cc1Swenshuai.xi UADP_SPT_2NXT_DEF(VBI_GET_VPS_DATA);
33*53ee8cc1Swenshuai.xi
34*53ee8cc1Swenshuai.xi UADP_SPT_1NXT_DEF(VBI_TTX_GET_PACKETS);
35*53ee8cc1Swenshuai.xi UADP_SPT_1NXT_DEF(VBI_TTX_GET_PACKET);
36*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(TYPE_U32); // member belong to VBI_TTX_GET_PACKETS
37*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(MS_PHYADDR); // member belong to VBI_TTX_GET_PACKET
38*53ee8cc1Swenshuai.xi
39*53ee8cc1Swenshuai.xi
40*53ee8cc1Swenshuai.xi UADP_SPT_1NXT_DEF(VBI_CC_SETDATARATE);
41*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_TABLE);
42*53ee8cc1Swenshuai.xi
43*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_SET_VIDEO_STANDARD);
44*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_TTX_ENABLE_LINE);
45*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_SYNC_MEMORY);
46*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_INIT_SLICER);
47*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_INIT_YPBYR);
48*53ee8cc1Swenshuai.xi
49*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_GETINFO);
50*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_SET_FRAMECNT);
51*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(VBI_CC_ENABLE_LINE);
52*53ee8cc1Swenshuai.xi
53*53ee8cc1Swenshuai.xi //DMX TTX
54*53ee8cc1Swenshuai.xi UADP_SPT_0NXT_DEF(DMX_TTX_SET_FILTERID);
55*53ee8cc1Swenshuai.xi
56*53ee8cc1Swenshuai.xi extern UADP_STRUCT_POINTER_TABLE spt_MS_U8[];
57*53ee8cc1Swenshuai.xi extern UADP_STRUCT_POINTER_TABLE spt_MS_U32[];
58*53ee8cc1Swenshuai.xi extern UADP_STRUCT_POINTER_TABLE spt_MS_NULL[];
59*53ee8cc1Swenshuai.xi
VBI_adp_Init(FUtopiaIOctl * pIoctl)60*53ee8cc1Swenshuai.xi MS_U32 VBI_adp_Init(FUtopiaIOctl *pIoctl)
61*53ee8cc1Swenshuai.xi {
62*53ee8cc1Swenshuai.xi //member of struct
63*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_DrvStatus);
64*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(MS_PHYADDR);
65*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CC_TABLE);
66*53ee8cc1Swenshuai.xi
67*53ee8cc1Swenshuai.xi //set table
68*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_BOOL);
69*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_GET_DATA);
70*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_GETINFO_PARAM);
71*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_SETDBGLEVEL_PARAM);
72*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CMD);
73*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_INIT_TYPE_PARAM);
74*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(DMX_TTX_CMD);
75*53ee8cc1Swenshuai.xi
76*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_ENABLE_TTX_SLICER);
77*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_SET_VIDEO_STANDARD);
78*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_TTX_ENABLE_LINE);
79*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_SYNC_MEMORY);
80*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CC_INIT_YPBYR);
81*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CC_GETINFO);
82*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CC_SET_FRAMECNT);
83*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_CC_ENABLE_LINE);
84*53ee8cc1Swenshuai.xi UADP_SPT_0NXT(VBI_GET_RAW_VPS_DATA);
85*53ee8cc1Swenshuai.xi //UADP_SDT_1(VBI_REGISTER_CB, UADP_SDT_AT, bufferAddr, MS_NULL);
86*53ee8cc1Swenshuai.xi //UADP_SDT_1(VBI_INITIALIZER_TTX_SLICER, UADP_SDT_AT, bufferAddr, MS_NULL);
87*53ee8cc1Swenshuai.xi //UADP_SDT_2(VBI_CC_INIT_SLICER, UADP_SDT_AT, u32RiuAddr, MS_NULL, UADP_SDT_AT, bufferAddr, MS_NULL);
88*53ee8cc1Swenshuai.xi UADP_SDT_1(VBI_CC_INIT_SLICER, UADP_SDT_AT, u32RiuAddr, MS_NULL);
89*53ee8cc1Swenshuai.xi
90*53ee8cc1Swenshuai.xi UADP_SDT_1(VBI_GETSTATUS_PARAM, UADP_SDT_P2N, pDrvStatus, VBI_DrvStatus);
91*53ee8cc1Swenshuai.xi //UADP_SDT_2(VBI_TTX_GET_PACKETS, UADP_SDT_AT, dataAddr, MS_NULL, UADP_SDT_P2N, length, MS_U32);
92*53ee8cc1Swenshuai.xi UADP_SDT_1(VBI_TTX_GET_PACKETS, UADP_SDT_P2N, length, MS_U32);
93*53ee8cc1Swenshuai.xi //UADP_SDT_1(VBI_TTX_GET_PACKET, UADP_SDT_P2N, packetAddress, MS_NULL);
94*53ee8cc1Swenshuai.xi UADP_SDT_1(VBI_CC_SETDATARATE, UADP_SDT_P2N, ptable, MS_U8);
95*53ee8cc1Swenshuai.xi UADP_SDT_2(VBI_GET_VPS_DATA, UADP_SDT_P2N, lowerWord, MS_U8, UADP_SDT_P2N, higherWord, MS_U8);
96*53ee8cc1Swenshuai.xi *pIoctl= (FUtopiaIOctl)VBI_adp_Ioctl;
97*53ee8cc1Swenshuai.xi return 0;
98*53ee8cc1Swenshuai.xi
99*53ee8cc1Swenshuai.xi }
100*53ee8cc1Swenshuai.xi
101*53ee8cc1Swenshuai.xi /*
102*53ee8cc1Swenshuai.xi MS_U32 VBI_DDI_Open(void* pInstant,const void* const pAttribute)
103*53ee8cc1Swenshuai.xi {
104*53ee8cc1Swenshuai.xi return UtopiaOpen(MODULE_AESDMA,pInstant,0,pAttribute);
105*53ee8cc1Swenshuai.xi }
106*53ee8cc1Swenshuai.xi */
VBI_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)107*53ee8cc1Swenshuai.xi MS_U32 VBI_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
108*53ee8cc1Swenshuai.xi {
109*53ee8cc1Swenshuai.xi MS_U32 u32Ret;
110*53ee8cc1Swenshuai.xi char buffer_arg[1024];
111*53ee8cc1Swenshuai.xi
112*53ee8cc1Swenshuai.xi //printk("%s, u32Cmd = 0x%x\n", __FUNCTION__, (unsigned int)u32Cmd);
113*53ee8cc1Swenshuai.xi switch(u32Cmd)
114*53ee8cc1Swenshuai.xi {
115*53ee8cc1Swenshuai.xi
116*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetLibVer :
117*53ee8cc1Swenshuai.xi break;
118*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetInfo:
119*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GETINFO_PARAM,NULL,buffer_arg,sizeof(buffer_arg));
120*53ee8cc1Swenshuai.xi break;
121*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetStatus:
122*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GETSTATUS_PARAM,spt_VBI_GETSTATUS_PARAM,buffer_arg,sizeof(buffer_arg));
123*53ee8cc1Swenshuai.xi break;
124*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_SetDbgLevel:
125*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_SETDBGLEVEL_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
126*53ee8cc1Swenshuai.xi break;
127*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_Init:
128*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_INIT_TYPE_PARAM, NULL, buffer_arg, sizeof(buffer_arg));
129*53ee8cc1Swenshuai.xi break;
130*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_RegisterCB:
131*53ee8cc1Swenshuai.xi //u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_REGISTER_CB,NULL,buffer_arg,sizeof(buffer_arg));
132*53ee8cc1Swenshuai.xi break;
133*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_RingBuffer_Reset:
134*53ee8cc1Swenshuai.xi u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
135*53ee8cc1Swenshuai.xi break;
136*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_InitializeTTXSlicer:
137*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_INITIALIZER_TTX_SLICER,NULL,buffer_arg,sizeof(buffer_arg));
138*53ee8cc1Swenshuai.xi break;
139*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_EnableTTXSlicer:
140*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_ENABLE_TTX_SLICER,NULL,buffer_arg,sizeof(buffer_arg));
141*53ee8cc1Swenshuai.xi break;
142*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_IsVPS_Ready:
143*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
144*53ee8cc1Swenshuai.xi break;
145*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_IsTTX_Ready:
146*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
147*53ee8cc1Swenshuai.xi break;
148*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_IsWSS_Ready:
149*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
150*53ee8cc1Swenshuai.xi break;
151*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetWSS_Data:
152*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_DATA,spt_VBI_GET_DATA,buffer_arg,sizeof(buffer_arg));
153*53ee8cc1Swenshuai.xi break;
154*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetVPS_Data:
155*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_VPS_DATA,spt_VBI_GET_VPS_DATA,buffer_arg,sizeof(buffer_arg));
156*53ee8cc1Swenshuai.xi break;
157*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_GetRawVPS_Data:
158*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_RAW_VPS_DATA,spt_VBI_GET_RAW_VPS_DATA,buffer_arg,sizeof(buffer_arg));
159*53ee8cc1Swenshuai.xi break;
160*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_SetVideoStandard:
161*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_SET_VIDEO_STANDARD,NULL,buffer_arg,sizeof(buffer_arg));
162*53ee8cc1Swenshuai.xi break;
163*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_PacketBufferIsEmpty:
164*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
165*53ee8cc1Swenshuai.xi break;
166*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_CheckCircuitReady:
167*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
168*53ee8cc1Swenshuai.xi break;
169*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_GetPacketCount:
170*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_DATA,spt_VBI_GET_DATA,buffer_arg,sizeof(buffer_arg));
171*53ee8cc1Swenshuai.xi break;
172*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_GetPackets:
173*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_TTX_GET_PACKETS,spt_VBI_TTX_GET_PACKETS,buffer_arg,sizeof(buffer_arg));
174*53ee8cc1Swenshuai.xi break;
175*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_GetPacket:
176*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_TTX_GET_PACKET,spt_VBI_TTX_GET_PACKET,buffer_arg,sizeof(buffer_arg));
177*53ee8cc1Swenshuai.xi break;
178*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_PacketBufferIsOverflow:
179*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
180*53ee8cc1Swenshuai.xi break;
181*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_PacketBufferGetNoOfOverflows:
182*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_DATA,spt_VBI_GET_DATA,buffer_arg,sizeof(buffer_arg));
183*53ee8cc1Swenshuai.xi break;
184*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_TTX_EnableLine:
185*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_TTX_ENABLE_LINE,NULL,buffer_arg,sizeof(buffer_arg));
186*53ee8cc1Swenshuai.xi break;
187*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_SyncMemory:
188*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_SYNC_MEMORY,NULL,buffer_arg,sizeof(buffer_arg));
189*53ee8cc1Swenshuai.xi break;
190*53ee8cc1Swenshuai.xi
191*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_InitSlicer:
192*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_INIT_SLICER,NULL,buffer_arg,sizeof(buffer_arg));
193*53ee8cc1Swenshuai.xi break;
194*53ee8cc1Swenshuai.xi
195*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_InitYPbYr:
196*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_INIT_YPBYR,NULL,buffer_arg,sizeof(buffer_arg));
197*53ee8cc1Swenshuai.xi break;
198*53ee8cc1Swenshuai.xi
199*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_SetDataRate:
200*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_SETDATARATE,NULL,buffer_arg,sizeof(buffer_arg));
201*53ee8cc1Swenshuai.xi break;
202*53ee8cc1Swenshuai.xi
203*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_GetInfo:
204*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_GETINFO,spt_VBI_CC_GETINFO,buffer_arg,sizeof(buffer_arg));
205*53ee8cc1Swenshuai.xi break;
206*53ee8cc1Swenshuai.xi
207*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_SetFrameCnt:
208*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_SET_FRAMECNT,NULL,buffer_arg,sizeof(buffer_arg));
209*53ee8cc1Swenshuai.xi break;
210*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_EnableSlicer:
211*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_ENABLE_TTX_SLICER,NULL,buffer_arg,sizeof(buffer_arg));
212*53ee8cc1Swenshuai.xi break;
213*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_CC_EnableLine:
214*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_ENABLE_LINE,NULL,buffer_arg,sizeof(buffer_arg));
215*53ee8cc1Swenshuai.xi break;
216*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_WSS_SetVpsByteNum:
217*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CC_SET_FRAMECNT,NULL,buffer_arg,sizeof(buffer_arg));
218*53ee8cc1Swenshuai.xi break;
219*53ee8cc1Swenshuai.xi //=============================================
220*53ee8cc1Swenshuai.xi // DTV - TTX
221*53ee8cc1Swenshuai.xi //=============================================
222*53ee8cc1Swenshuai.xi
223*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_RingBuffer_Reset:
224*53ee8cc1Swenshuai.xi u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
225*53ee8cc1Swenshuai.xi break;
226*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_Init:
227*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_INITIALIZER_TTX_SLICER,NULL,buffer_arg,sizeof(buffer_arg));
228*53ee8cc1Swenshuai.xi break;
229*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_SetFilterID:
230*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DMX_TTX_SET_FILTERID,NULL,buffer_arg,sizeof(buffer_arg));
231*53ee8cc1Swenshuai.xi break;
232*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_SetCB:
233*53ee8cc1Swenshuai.xi // no function callback from kernel to user
234*53ee8cc1Swenshuai.xi break;
235*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_PacketBufferIsEmpty:
236*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
237*53ee8cc1Swenshuai.xi break;
238*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_GetPackets:
239*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_TTX_GET_PACKETS,spt_VBI_TTX_GET_PACKETS,buffer_arg,sizeof(buffer_arg));
240*53ee8cc1Swenshuai.xi break;
241*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_GetPacket:
242*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_TTX_GET_PACKET,spt_VBI_TTX_GET_PACKET,buffer_arg,sizeof(buffer_arg));
243*53ee8cc1Swenshuai.xi break;
244*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_PacketBufferIsOverflow:
245*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_BOOL,spt_VBI_BOOL,buffer_arg,sizeof(buffer_arg));
246*53ee8cc1Swenshuai.xi break;
247*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_PacketBufferGetNoOfOverflows:
248*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_GET_DATA,spt_VBI_GET_DATA,buffer_arg,sizeof(buffer_arg));
249*53ee8cc1Swenshuai.xi break;
250*53ee8cc1Swenshuai.xi case MDrv_CMD_VBI_Exit:
251*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_VBI_CMD,NULL,buffer_arg,sizeof(buffer_arg));
252*53ee8cc1Swenshuai.xi break;
253*53ee8cc1Swenshuai.xi case MDrv_CMD_DMX_TTX_Exit:
254*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DMX_TTX_CMD,NULL,buffer_arg,sizeof(buffer_arg));
255*53ee8cc1Swenshuai.xi break;
256*53ee8cc1Swenshuai.xi
257*53ee8cc1Swenshuai.xi default:
258*53ee8cc1Swenshuai.xi break;
259*53ee8cc1Swenshuai.xi
260*53ee8cc1Swenshuai.xi }
261*53ee8cc1Swenshuai.xi
262*53ee8cc1Swenshuai.xi
263*53ee8cc1Swenshuai.xi return u32Ret;
264*53ee8cc1Swenshuai.xi // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
265*53ee8cc1Swenshuai.xi }
266*53ee8cc1Swenshuai.xi
267*53ee8cc1Swenshuai.xi
268*53ee8cc1Swenshuai.xi
269*53ee8cc1Swenshuai.xi
270