xref: /utopia/UTPA2-700.0.x/modules/demodulator/utopia_adaption/demod/DVBT2_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 #include "MsTypes.h"
6*53ee8cc1Swenshuai.xi #include "utopia.h"
7*53ee8cc1Swenshuai.xi #include "utopia_adp.h"
8*53ee8cc1Swenshuai.xi 
9*53ee8cc1Swenshuai.xi #include "drvDMD_INTERN_DVBT2_v2.h"
10*53ee8cc1Swenshuai.xi 
11*53ee8cc1Swenshuai.xi //#include "MsOS.h"
12*53ee8cc1Swenshuai.xi 
13*53ee8cc1Swenshuai.xi //#include <linux/kernel.h>
14*53ee8cc1Swenshuai.xi 
15*53ee8cc1Swenshuai.xi //Top
16*53ee8cc1Swenshuai.xi //original parameter area
17*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_BOOL_VAL[5];
18*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_U8_VAL[5];
19*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_U16_VAL[5];
20*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_U32_VAL[5];
21*53ee8cc1Swenshuai.xi 
22*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_8BYTE_PARAM[5];
23*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT2_InitData_Transform[5];
24*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT2_Info[5];
25*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_MSIF_Version[5];
26*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_T2_LOCK_STATUS[5];
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi //ioctl parameter passing area
29*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_INIT_PARAM[5];
30*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_EXIT_PARAM[5];
31*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETDBGLEVEL_PARAM[5];
32*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETINFO_PARAM[5];
33*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETLIBVER_PARAM[5];
34*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETFWVER_PARAM[5];
35*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETREG_PARAM[5];
36*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETREG_PARAM[5];
37*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETSERIALCONTROL_PARAM[5];
38*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETCONFIG_PARAM[5];
39*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETACTIVE_PARAM[5];
40*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETLOCK_PARAM[5];
41*53ee8cc1Swenshuai.xi //UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM[5];
42*53ee8cc1Swenshuai.xi //UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM[5];
43*53ee8cc1Swenshuai.xi 
44*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETSNR_PARAM[5];
45*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETPOSTLDPCBER_PARAM[5];
46*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETPRELDPCBERP_PARAM[5];
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETPACKETERRPARAM[5];
49*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETL1INFO_PARAM[5];
50*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT2_GETFREQOFFSET_PARAM[5];
51*53ee8cc1Swenshuai.xi 
52*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_SETPOWERSTATE_PARAM[5];
53*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETPLPBITMAP_PARAM[5];
54*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DVBT2_GETPLPGROUPID_PARAM[5];
55*53ee8cc1Swenshuai.xi UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT2_SETPLPID_PARAM[5];
56*53ee8cc1Swenshuai.xi 
57*53ee8cc1Swenshuai.xi 
58*53ee8cc1Swenshuai.xi //UADP_STRUCT_POINTER_TABLE spt_DVBC_8BYTE_PARAM[5];
59*53ee8cc1Swenshuai.xi 
DVBT2_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)60*53ee8cc1Swenshuai.xi MS_U32 DVBT2_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
61*53ee8cc1Swenshuai.xi {
62*53ee8cc1Swenshuai.xi     MS_U32 u32Ret = 0;
63*53ee8cc1Swenshuai.xi     char buffer_arg[2048];
64*53ee8cc1Swenshuai.xi 
65*53ee8cc1Swenshuai.xi     switch(u32Cmd)
66*53ee8cc1Swenshuai.xi     {
67*53ee8cc1Swenshuai.xi 	case DMD_DVBT2_DRV_CMD_Init:
68*53ee8cc1Swenshuai.xi             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_INIT_PARAM, spt_DVBT2_INIT_PARAM, buffer_arg, sizeof(buffer_arg));
69*53ee8cc1Swenshuai.xi 	break;
70*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_Exit :
71*53ee8cc1Swenshuai.xi            u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_EXIT_PARAM, spt_DVBT2_EXIT_PARAM, buffer_arg, sizeof(buffer_arg));
72*53ee8cc1Swenshuai.xi        break;
73*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetDbgLevel:
74*53ee8cc1Swenshuai.xi 	    u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETDBGLEVEL_PARAM, spt_DVBT2_SETDBGLEVEL_PARAM, buffer_arg, sizeof(buffer_arg));
75*53ee8cc1Swenshuai.xi        break;
76*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetInfo:
77*53ee8cc1Swenshuai.xi             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETINFO_PARAM, spt_DVBT2_GETINFO_PARAM, buffer_arg, sizeof(buffer_arg));
78*53ee8cc1Swenshuai.xi        break;
79*53ee8cc1Swenshuai.xi 	case  DMD_DVBT2_DRV_CMD_GetLibVer:
80*53ee8cc1Swenshuai.xi 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETLIBVER_PARAM, spt_DVBT2_GETLIBVER_PARAM, buffer_arg, sizeof(buffer_arg));
81*53ee8cc1Swenshuai.xi 	break;
82*53ee8cc1Swenshuai.xi 	case DMD_DVBT2_DRV_CMD_GetFWVer:
83*53ee8cc1Swenshuai.xi 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETFWVER_PARAM, spt_DVBT2_GETFWVER_PARAM, buffer_arg, sizeof(buffer_arg));
84*53ee8cc1Swenshuai.xi 	break;
85*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetReg:
86*53ee8cc1Swenshuai.xi 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETREG_PARAM, spt_DVBT2_GETREG_PARAM, buffer_arg, sizeof(buffer_arg));
87*53ee8cc1Swenshuai.xi        break;
88*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetReg:
89*53ee8cc1Swenshuai.xi 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETREG_PARAM, spt_DVBT2_SETREG_PARAM, buffer_arg, sizeof(buffer_arg));
90*53ee8cc1Swenshuai.xi        break;
91*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetSerialControl:
92*53ee8cc1Swenshuai.xi 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETSERIALCONTROL_PARAM, spt_DVBT2_SETSERIALCONTROL_PARAM, buffer_arg, sizeof(buffer_arg));
93*53ee8cc1Swenshuai.xi        break;
94*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetReset:
95*53ee8cc1Swenshuai.xi        u32Ret = UtopiaIoctl(pInstanceTmp, u32Cmd, pArgs);
96*53ee8cc1Swenshuai.xi        break;
97*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetConfig:
98*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETCONFIG_PARAM, spt_DVBT2_SETCONFIG_PARAM, buffer_arg, sizeof(buffer_arg));
99*53ee8cc1Swenshuai.xi        break;
100*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetActive:
101*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETACTIVE_PARAM, spt_DVBT2_SETACTIVE_PARAM, buffer_arg, sizeof(buffer_arg));
102*53ee8cc1Swenshuai.xi        break;
103*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetLock:
104*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETLOCK_PARAM, spt_DVBT2_GETLOCK_PARAM, buffer_arg, sizeof(buffer_arg));
105*53ee8cc1Swenshuai.xi        break;
106*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetSNR:
107*53ee8cc1Swenshuai.xi            u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETSNR_PARAM, spt_DVBT2_GETSNR_PARAM, buffer_arg, sizeof(buffer_arg));
108*53ee8cc1Swenshuai.xi        break;
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetPostLdpcBer:
111*53ee8cc1Swenshuai.xi            u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETPOSTLDPCBER_PARAM, spt_DVBT2_GETPOSTLDPCBER_PARAM, buffer_arg, sizeof(buffer_arg));
112*53ee8cc1Swenshuai.xi        break;
113*53ee8cc1Swenshuai.xi 
114*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetPreLdpcBer:
115*53ee8cc1Swenshuai.xi            u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETPRELDPCBERP_PARAM, spt_DVBT2_GETPRELDPCBERP_PARAM, buffer_arg, sizeof(buffer_arg));
116*53ee8cc1Swenshuai.xi        break;
117*53ee8cc1Swenshuai.xi 
118*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetPacketErr:
119*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETPACKETERRPARAM, spt_DVBT2_GETPACKETERRPARAM, buffer_arg, sizeof(buffer_arg));
120*53ee8cc1Swenshuai.xi        break;
121*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetL1Info:
122*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETL1INFO_PARAM, spt_DVBT2_GETL1INFO_PARAM, buffer_arg, sizeof(buffer_arg));
123*53ee8cc1Swenshuai.xi        break;
124*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetFreqOffset:
125*53ee8cc1Swenshuai.xi            u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_DVBT2_GETFREQOFFSET_PARAM, spt_DMD_DVBT2_GETFREQOFFSET_PARAM, buffer_arg, sizeof(buffer_arg));
126*53ee8cc1Swenshuai.xi        break;
127*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetPowerState:
128*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_SETPOWERSTATE_PARAM, spt_DVBT2_SETPOWERSTATE_PARAM, buffer_arg, sizeof(buffer_arg));
129*53ee8cc1Swenshuai.xi        break;
130*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetPlpBitMap:
131*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETPLPBITMAP_PARAM, spt_DVBT2_GETPLPBITMAP_PARAM, buffer_arg, sizeof(buffer_arg));
132*53ee8cc1Swenshuai.xi        break;
133*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_GetPlpGroupID:
134*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT2_GETPLPGROUPID_PARAM, spt_DVBT2_GETPLPGROUPID_PARAM, buffer_arg, sizeof(buffer_arg));
135*53ee8cc1Swenshuai.xi        break;
136*53ee8cc1Swenshuai.xi        case DMD_DVBT2_DRV_CMD_SetPlpID:
137*53ee8cc1Swenshuai.xi 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DMD_DVBT2_SETPLPID_PARAM, spt_DMD_DVBT2_SETPLPID_PARAM, buffer_arg, sizeof(buffer_arg));
138*53ee8cc1Swenshuai.xi        break;
139*53ee8cc1Swenshuai.xi        default:
140*53ee8cc1Swenshuai.xi        break;
141*53ee8cc1Swenshuai.xi     }
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi     return u32Ret;
144*53ee8cc1Swenshuai.xi    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
145*53ee8cc1Swenshuai.xi }
146*53ee8cc1Swenshuai.xi 
DVBT2_adp_Init(FUtopiaIOctl * pIoctl)147*53ee8cc1Swenshuai.xi MS_U32 DVBT2_adp_Init(FUtopiaIOctl* pIoctl)
148*53ee8cc1Swenshuai.xi {
149*53ee8cc1Swenshuai.xi     //original parameter area
150*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_8BYTE_PARAM[0],8);
151*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_8BYTE_PARAM[1]);
152*53ee8cc1Swenshuai.xi 
153*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_U32_VAL[0],sizeof(MS_U32));
154*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_U32_VAL[1]);
155*53ee8cc1Swenshuai.xi 
156*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_U16_VAL[0],sizeof(MS_U16));
157*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_U16_VAL[1]);
158*53ee8cc1Swenshuai.xi 
159*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_U8_VAL[0], sizeof(MS_U8));
160*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_U8_VAL[1]);
161*53ee8cc1Swenshuai.xi 
162*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DMD_DVBT2_InitData_Transform[0], sizeof(DMD_DVBT2_InitData_Transform));
163*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_InitData_Transform[1], DMD_DVBT2_InitData_Transform, UADP_SDT_P2N, u8DMD_DVBT2_DSPRegInitExt, spt_DVBT2_8BYTE_PARAM);
164*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_InitData_Transform[2], DMD_DVBT2_InitData_Transform, UADP_SDT_P2N, u8DMD_DVBT2_InitExt, spt_DVBT2_8BYTE_PARAM);
165*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DMD_DVBT2_InitData_Transform[3]);
166*53ee8cc1Swenshuai.xi 
167*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DMD_DVBT2_Info[0],sizeof(DMD_DVBT2_Info));
168*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DMD_DVBT2_Info[1]);
169*53ee8cc1Swenshuai.xi 
170*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_MSIF_Version[0],sizeof(MSIF_Version));
171*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_MSIF_Version[1]);
172*53ee8cc1Swenshuai.xi 
173*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DMD_T2_LOCK_STATUS[0],sizeof(DMD_T2_LOCK_STATUS));
174*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DMD_T2_LOCK_STATUS[1]);
175*53ee8cc1Swenshuai.xi 
176*53ee8cc1Swenshuai.xi     //ioctl parameter passing area
177*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_INIT_PARAM[0],sizeof(DVBT2_INIT_PARAM));
178*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_INIT_PARAM[1],DVBT2_INIT_PARAM,UADP_SDT_P2N,pDMD_DVBT2_InitData,spt_DMD_DVBT2_InitData_Transform);
179*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_INIT_PARAM[2]);
180*53ee8cc1Swenshuai.xi 
181*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_EXIT_PARAM[0],sizeof(DVBT2_EXIT_PARAM));
182*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_EXIT_PARAM[1]);
183*53ee8cc1Swenshuai.xi 
184*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETDBGLEVEL_PARAM[0],sizeof(DVBT2_SETDBGLEVEL_PARAM));
185*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETDBGLEVEL_PARAM[1]);
186*53ee8cc1Swenshuai.xi 
187*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETINFO_PARAM[0],sizeof(DVBT2_GETINFO_PARAM));
188*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETINFO_PARAM[1],DVBT2_GETINFO_PARAM,UADP_SDT_P2N,pInfo,spt_DMD_DVBT2_Info);
189*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETINFO_PARAM[2]);
190*53ee8cc1Swenshuai.xi 
191*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETLIBVER_PARAM[0],sizeof(DVBT2_GETLIBVER_PARAM));
192*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETLIBVER_PARAM[1],DVBT2_GETLIBVER_PARAM,UADP_SDT_P2N,ppVersion,spt_DVBT2_MSIF_Version);
193*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETLIBVER_PARAM[2]);
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETFWVER_PARAM[0],sizeof(DVBT2_GETFWVER_PARAM));
196*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETFWVER_PARAM[1],DVBT2_GETFWVER_PARAM,UADP_SDT_P2N,ver,spt_DVBT2_U16_VAL);
197*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETFWVER_PARAM[2]);
198*53ee8cc1Swenshuai.xi 
199*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETREG_PARAM[0],sizeof(DVBT2_GETREG_PARAM));
200*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETREG_PARAM[1],DVBT2_GETREG_PARAM,UADP_SDT_P2N,pu8Data,spt_DVBT2_U8_VAL);
201*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETREG_PARAM[2]);
202*53ee8cc1Swenshuai.xi 
203*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETREG_PARAM[0],sizeof(DVBT2_SETREG_PARAM));
204*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETREG_PARAM[1]);
205*53ee8cc1Swenshuai.xi 
206*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETSERIALCONTROL_PARAM[0],sizeof(DVBT2_SETSERIALCONTROL_PARAM));
207*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETSERIALCONTROL_PARAM[1]);
208*53ee8cc1Swenshuai.xi 
209*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETCONFIG_PARAM[0],sizeof(DVBT2_SETCONFIG_PARAM));
210*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETCONFIG_PARAM[1]);
211*53ee8cc1Swenshuai.xi 
212*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETACTIVE_PARAM[0],sizeof(DVBT2_SETACTIVE_PARAM));
213*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETACTIVE_PARAM[1]);
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETLOCK_PARAM[0],sizeof(DVBT2_GETLOCK_PARAM));
216*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETLOCK_PARAM[1],DVBT2_GETLOCK_PARAM,UADP_SDT_P2N,eLockStatus,spt_DMD_T2_LOCK_STATUS);
217*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETLOCK_PARAM[2]);
218*53ee8cc1Swenshuai.xi 
219*53ee8cc1Swenshuai.xi #if 0
220*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM[0],sizeof(DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM));
221*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM[1],DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM,UADP_SDT_P2N,u16Strength,spt_DVBT2_U16_VAL);
222*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETSIGNALSTRENGTHWITHRFPOWER_PARAM[2]);
223*53ee8cc1Swenshuai.xi 
224*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM[0],sizeof(DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM));
225*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM[1],DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM,UADP_SDT_P2N,u16Quality,spt_DVBT2_U16_VAL);
226*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETSIGNALQUALITYWITHRFPOWER_PARAM[2]);
227*53ee8cc1Swenshuai.xi #endif
228*53ee8cc1Swenshuai.xi 
229*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETSNR_PARAM[0],sizeof(DVBT2_GETSNR_PARAM));
230*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETSNR_PARAM[1],DVBT2_GETSNR_PARAM,UADP_SDT_P2N,u16_snr100,spt_DVBT2_U16_VAL);
231*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETSNR_PARAM[2],DVBT2_GETSNR_PARAM,UADP_SDT_P2N,snr_cali,spt_DVBT2_U8_VAL);
232*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETSNR_PARAM[3],DVBT2_GETSNR_PARAM,UADP_SDT_P2N,u8_gi,spt_DVBT2_U8_VAL);
233*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETSNR_PARAM[4]);
234*53ee8cc1Swenshuai.xi 
235*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETPOSTLDPCBER_PARAM[0],sizeof(DVBT2_GETPOSTLDPCBER_PARAM));
236*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPOSTLDPCBER_PARAM[1],DVBT2_GETPOSTLDPCBER_PARAM,UADP_SDT_P2N,BitErr_reg,spt_DVBT2_U32_VAL);
237*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPOSTLDPCBER_PARAM[2],DVBT2_GETPOSTLDPCBER_PARAM,UADP_SDT_P2N,BitErrPeriod_reg,spt_DVBT2_U16_VAL);
238*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPOSTLDPCBER_PARAM[3],DVBT2_GETPOSTLDPCBER_PARAM,UADP_SDT_P2N,FecType,spt_DVBT2_U16_VAL);
239*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPOSTLDPCBER_PARAM[4]);
240*53ee8cc1Swenshuai.xi 
241*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETPRELDPCBERP_PARAM[0],sizeof(DVBT2_GETPRELDPCBERPARAM));
242*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPRELDPCBERP_PARAM[1],DVBT2_GETPRELDPCBERPARAM,UADP_SDT_P2N,BitErr_reg,spt_DVBT2_U32_VAL);
243*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPRELDPCBERP_PARAM[2],DVBT2_GETPRELDPCBERPARAM,UADP_SDT_P2N,BitErrPeriod_reg,spt_DVBT2_U16_VAL);
244*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPRELDPCBERP_PARAM[3],DVBT2_GETPRELDPCBERPARAM,UADP_SDT_P2N,FecType,spt_DVBT2_U16_VAL);
245*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPRELDPCBERP_PARAM[4]);
246*53ee8cc1Swenshuai.xi 
247*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETPACKETERRPARAM[0],sizeof(DVBT2_GETPACKETERRPARAM));
248*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPACKETERRPARAM[1],DVBT2_GETPACKETERRPARAM,UADP_SDT_P2N,pktErr,spt_DVBT2_U16_VAL);
249*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPACKETERRPARAM[2]);
250*53ee8cc1Swenshuai.xi 
251*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETL1INFO_PARAM[0],sizeof(DVBT2_GETL1INFO_PARAM));
252*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETL1INFO_PARAM[1],DVBT2_GETL1INFO_PARAM,UADP_SDT_P2N,u16Info,spt_DVBT2_U16_VAL);
253*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETL1INFO_PARAM[2]);
254*53ee8cc1Swenshuai.xi 
255*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[0],sizeof(DVBT2_GETFREQOFFSET_PARAM));
256*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[1],DVBT2_GETFREQOFFSET_PARAM,UADP_SDT_P2N,CfoTd_reg,spt_DVBT2_U32_VAL);
257*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[2],DVBT2_GETFREQOFFSET_PARAM,UADP_SDT_P2N,CfoFd_reg,spt_DVBT2_U32_VAL);
258*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[3],DVBT2_GETFREQOFFSET_PARAM,UADP_SDT_P2N,Icfo_reg,spt_DVBT2_U32_VAL);
259*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[4],DVBT2_GETFREQOFFSET_PARAM,UADP_SDT_P2N,fft_reg,spt_DVBT2_U8_VAL);
260*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DMD_DVBT2_GETFREQOFFSET_PARAM[5]);
261*53ee8cc1Swenshuai.xi 
262*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_SETPOWERSTATE_PARAM[0],sizeof(DVBT2_SETPOWERSTATE_PARAM));
263*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_SETPOWERSTATE_PARAM[1]);
264*53ee8cc1Swenshuai.xi 
265*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETPLPBITMAP_PARAM[0],sizeof(DVBT2_GETPLPBITMAP_PARAM));
266*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPLPBITMAP_PARAM[1],DVBT2_GETPLPBITMAP_PARAM,UADP_SDT_P2N,u8PlpBitMap,spt_DVBT2_8BYTE_PARAM);
267*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPLPBITMAP_PARAM[2]);
268*53ee8cc1Swenshuai.xi 
269*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DVBT2_GETPLPGROUPID_PARAM[0],sizeof(DVBT2_GETPLPGROUPID_PARAM));
270*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPLPGROUPID_PARAM[1],DVBT2_GETPLPGROUPID_PARAM,UADP_SDT_P2N,u8GroupID,spt_DVBT2_8BYTE_PARAM);
271*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPLPGROUPID_PARAM[2]);
272*53ee8cc1Swenshuai.xi 
273*53ee8cc1Swenshuai.xi      UADP_SPT_BGN(&spt_DVBT2_GETPLPGROUPID_PARAM[0],sizeof(DVBT2_GETPLPGROUPID_PARAM));
274*53ee8cc1Swenshuai.xi     UADP_SDT_KIND(&spt_DVBT2_GETPLPGROUPID_PARAM[1],DVBT2_GETPLPGROUPID_PARAM,UADP_SDT_P2N,u8GroupID,spt_DVBT2_8BYTE_PARAM);
275*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DVBT2_GETPLPGROUPID_PARAM[2]);
276*53ee8cc1Swenshuai.xi 
277*53ee8cc1Swenshuai.xi     UADP_SPT_BGN(&spt_DMD_DVBT2_SETPLPID_PARAM[0],sizeof(DMD_DVBT2_SETPLPID_PARAM));
278*53ee8cc1Swenshuai.xi     UADP_SPT_FIN(&spt_DMD_DVBT2_SETPLPID_PARAM[1]);
279*53ee8cc1Swenshuai.xi 
280*53ee8cc1Swenshuai.xi    *pIoctl= (FUtopiaIOctl)DVBT2_adp_Ioctl;
281*53ee8cc1Swenshuai.xi 
282*53ee8cc1Swenshuai.xi     return TRUE;
283*53ee8cc1Swenshuai.xi }