xref: /utopia/UTPA2-700.0.x/modules/demodulator/utopia_adaption/demod/DVBT_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 
5 #include "MsTypes.h"
6 #include "utopia.h"
7 #include "utopia_adp.h"
8 
9 #include "drvDMD_INTERN_DVBT_v2.h"
10 
11 //#include "MsOS.h"
12 
13 //#include <linux/kernel.h>
14 
15 //Top
16 UADP_STRUCT_POINTER_TABLE spt_DVBT_BOOL_VAL[5];
17 UADP_STRUCT_POINTER_TABLE spt_DVBT_U8_VAL[5];
18 UADP_STRUCT_POINTER_TABLE spt_DVBT_U16_VAL[5];
19 UADP_STRUCT_POINTER_TABLE spt_DVBT_U32_VAL[5];
20 //UADP_STRUCT_POINTER_TABLE spt_DVBT_FLOAT_VAL[5];
21 
22 UADP_STRUCT_POINTER_TABLE spt_DVBT_DBG_LEVEL_PARAM[5];
23 UADP_STRUCT_POINTER_TABLE spt_DVBT_EXIT_PARAM[5];
24 UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT_InitData[5];
25 UADP_STRUCT_POINTER_TABLE spt_DVBT_INIT_PARAM[5];
26 UADP_STRUCT_POINTER_TABLE spt_DVBT_GETINFO_PARAM[5];
27 UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT_Info[5];
28 UADP_STRUCT_POINTER_TABLE spt_DVBT_GETINFO_RETURN_PARAM[5];
29 UADP_STRUCT_POINTER_TABLE spt_DVBT_GETREG_PARAM[5];
30 UADP_STRUCT_POINTER_TABLE spt_DVBT_SETREG_PARAM[5];
31 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetSerialControl_PARAM[5];
32 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetConfig_PARAM[5];
33 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetConfigHPLP_PARAM[5];
34 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetConfigHPLPSetIF_PARAM[5];
35 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetActive_PARAM[5];
36 UADP_STRUCT_POINTER_TABLE spt_DMD_LOCK_STATUS[5];
37 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetLock_PARAM[5];
38 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetSignalStrength_PARAM[5];
39 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetSignalStrengthWithRFPower_PARAM[5];
40 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetSignalQuality_PARAM[5];
41 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetSignalQualityWithRFPower_PARAM[5];
42 
43 /******bryan add******/
44 UADP_STRUCT_POINTER_TABLE spt_DVBT_GETLIBVER_PARAM[5];
45 UADP_STRUCT_POINTER_TABLE spt_DVBT_MSIF_Version[5];
46 
47 UADP_STRUCT_POINTER_TABLE spt_DVBT_GETFWVER_PARAM[5];
48 UADP_STRUCT_POINTER_TABLE spt_U16_Val[5];
49 
50 
51 UADP_STRUCT_POINTER_TABLE spt_PDVBT_GetFreqOffset_PARAM[5];
52 UADP_STRUCT_POINTER_TABLE spt_DMD_DVBT_InitData_Transform[5];
53 /***** end of bryan add*****/
54 
55 //arthur
56 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetIFAGC_PARAM[5];
57 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetSNR_PARAM[5];
58 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetPostViterbiBer_PARAM[5];
59 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetPacketErr_PARAM[5];
60 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetTPSInfo_PARAM[5];
61 UADP_STRUCT_POINTER_TABLE spt_DVBT_GetCellID_PARAM[5];
62 UADP_STRUCT_POINTER_TABLE spt_DVBT_SetPowerState_PARAM[5];
63 
64 UADP_STRUCT_POINTER_TABLE spt_DVBT_8BYTE_PARAM[5];
65 //UADP_STRUCT_POINTER_TABLE spt_DVBC_8BYTE_PARAM[5];
66 
DVBT_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)67 MS_U32 DVBT_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
68 {
69     MS_U32 u32Ret = 0;
70     char buffer_arg[2048];
71 
72     switch(u32Cmd)
73     {
74         case DMD_DVBT_DRV_CMD_Init:
75         		#ifdef MS_DEBUG
76             printf("kernal mode DVBTIoctl - MDrv_DMD_DVBT_Init\n");
77             #endif
78             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_INIT_PARAM, spt_DVBT_INIT_PARAM, buffer_arg, sizeof(buffer_arg));
79         break;
80         case DMD_DVBT_DRV_CMD_Exit:
81         		#ifdef MS_DEBUG
82             printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_Exit\n");
83             #endif
84             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_EXIT_PARAM, spt_DVBT_EXIT_PARAM, buffer_arg, sizeof(buffer_arg));
85         break;
86         case DMD_DVBT_DRV_CMD_SetDbgLeve :
87         		#ifdef MS_DEBUG
88             printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetDbgLevel\n");
89             #endif
90             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_DBG_LEVEL_PARAM, spt_DVBT_DBG_LEVEL_PARAM, buffer_arg, sizeof(buffer_arg));
91         break;
92 
93         /*bryan temp mark*/
94         /*
95         case DMD_DVBT_DRV_CMD_GetInfo:
96             printk("bryan kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetInfo\n");
97             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GETREG_PARAM, spt_DVBT_GETREG_PARAM, buffer_arg, sizeof(buffer_arg));
98         break;
99         */
100 	 case DMD_DVBT_DRV_CMD_GetLibVer:
101 	 			#ifdef MS_DEBUG
102 	      printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetLibVer\n");
103 	      #endif
104 	     u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GETLIBVER_PARAM, spt_DVBT_GETLIBVER_PARAM, buffer_arg, sizeof(buffer_arg));
105 	 break;
106 	case DMD_DVBT_DRV_CMD_GetFWVer:
107 		 #ifdef MS_DEBUG
108 		 printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetFWVer\n");
109 		 #endif
110 	     u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GETFWVER_PARAM, spt_DVBT_GETFWVER_PARAM, buffer_arg, sizeof(buffer_arg));
111 	break;
112 	case DMD_DVBT_DRV_CMD_GetReg:
113 		#ifdef MS_DEBUG
114 		printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetReg\n");
115 		#endif
116 		 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GETREG_PARAM, spt_DVBT_GETREG_PARAM, buffer_arg, sizeof(buffer_arg));
117 	break;
118 	case DMD_DVBT_DRV_CMD_SetReg:
119 		#ifdef MS_DEBUG
120 		printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetReg\n");
121 		#endif
122 		 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_SETREG_PARAM, spt_DVBT_SETREG_PARAM, buffer_arg, sizeof(buffer_arg));
123 	break;
124 	case DMD_DVBT_DRV_CMD_SetSerialControl:
125 		#ifdef MS_DEBUG
126 		printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetSerialControl\n");
127 		#endif
128 		u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_SetSerialControl_PARAM, spt_DVBT_SetSerialControl_PARAM, buffer_arg, sizeof(buffer_arg));
129 	break;
130 	case DMD_DVBT_DRV_CMD_SetConfigHPLPSetIF:
131 		#ifdef MS_DEBUG
132 		printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetConfigHPLPSetIF\n");
133 		#endif
134 		u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_SetConfigHPLPSetIF_PARAM, spt_DVBT_SetConfigHPLPSetIF_PARAM, buffer_arg, sizeof(buffer_arg));
135 	break;
136 	 case DMD_DVBT_DRV_CMD_SetActive:
137 	 	#ifdef MS_DEBUG
138 	 	printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetSetActive\n");
139 	 	#endif
140 	 	u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_SetActive_PARAM, spt_DVBT_SetActive_PARAM, buffer_arg, sizeof(buffer_arg));
141 	 break;
142 	 case DMD_DVBT_DRV_CMD_GetLock:
143 	 	#ifdef MS_DEBUG
144 	 	//printf("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetLock\n");
145 	 	#endif
146 	 	u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetLock_PARAM, spt_DVBT_GetLock_PARAM, buffer_arg, sizeof(buffer_arg));
147 	 break;
148 
149 	 /*bryan temp mark*/
150 	 #if(0)
151 	  case DMD_DVBT_DRV_CMD_GetSignalStrengthWithRFPower:
152 	 #ifdef MS_DEBUG
153 	 printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetSignalStrengthWithRFPower:\n");
154 	 #endif
155 	 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetSignalStrengthWithRFPower_PARAM, spt_DVBT_GetSignalStrengthWithRFPower_PARAM, buffer_arg, sizeof(buffer_arg));
156 	 break;
157 	 case DMD_DVBT_DRV_CMD_GetSignalQualityWithRFPower:
158 	 #ifdef MS_DEBUG
159 	 printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetSignalQualityWithRFPower:\n");
160 	 #endif
161 	 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetSignalQualityWithRFPower_PARAM, spt_DVBT_GetSignalQualityWithRFPower_PARAM, buffer_arg, sizeof(buffer_arg));
162 	 break;
163 	 #endif
164 	 /* bryan temp mark */
165 	 #if(1)
166 	case DMD_DVBT_DRV_CMD_GetSNR:
167 	#ifdef MS_DEBUG
168 	printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetSNR:\n");
169 	#endif
170 	u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetSNR_PARAM, spt_DVBT_GetSNR_PARAM, buffer_arg, sizeof(buffer_arg));
171 	break;
172 	#endif
173 
174 	 case DMD_DVBT_DRV_CMD_GetPacketErr:
175 	 #ifdef MS_DEBUG
176 	 printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetSignalQualityWithRFPower:\n");
177 	 #endif
178 	 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_U16_VAL, spt_DVBT_U16_VAL, buffer_arg, sizeof(buffer_arg));
179 	 break;
180 
181 	case DMD_DVBT_DRV_CMD_GetTPSInfo:
182 	 #ifdef MS_DEBUG
183 	 printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetSignalQualityWithRFPower:\n");
184 	 #endif
185 	 u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetTPSInfo_PARAM, spt_DVBT_GetTPSInfo_PARAM, buffer_arg, sizeof(buffer_arg));
186 	 break;
187 
188 
189 	case DMD_DVBT_DRV_CMD_GetCellID:
190 	#ifdef MS_DEBUG
191 	printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetCellID:\n");
192 	#endif
193 	u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_GetCellID_PARAM, spt_DVBT_GetCellID_PARAM, buffer_arg, sizeof(buffer_arg));
194 	break;
195 
196 
197 	/*bryan temp mark*/
198 	#if(0)
199 	case DMD_DVBT_DRV_CMD_GetFreqOffset:
200 	#ifdef MS_DEBUG
201 	printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_GetCellID:\n");
202 	#endif
203 	u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_PDVBT_GetFreqOffset_PARAM, spt_PDVBT_GetFreqOffset_PARAM, buffer_arg, sizeof(buffer_arg));
204 	break;
205 	#endif
206 
207 	#if(0)
208 	  case DMD_DVBT_DRV_CMD_NORDIGSSITableWrite:
209 
210          break;
211 
212          case DMD_DVBT_DRV_CMD_NORDIGSSITableRead:
213 
214          break;
215 	#endif
216 
217          case DMD_DVBT_DRV_CMD_SetPowerState:
218     #ifdef MS_DEBUG
219 	  printk("kernal mode DVBTIoctl - MDrv_DMD_DVBT_SetPowerState:\n");
220 	  #endif
221 	  u32Ret =UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_DVBT_SetPowerState_PARAM, spt_DVBT_SetPowerState_PARAM, buffer_arg, sizeof(buffer_arg));
222          break;
223 
224        //arthur
225 	     case DMD_DVBT_DRV_CMD_GetPostViterbiBer:
226 		     #ifdef MS_DEBUG
227 		     printf("kernal mode DVBTIoctl - DMD_DVBT_DRV_CMD_GetPostViterbiBer\n");
228 		     #endif
229 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_DVBT_GetPostViterbiBer_PARAM,spt_DVBT_GetPostViterbiBer_PARAM, buffer_arg, sizeof(buffer_arg));
230 	     break;
231 
232 	     case DMD_DVBT_DRV_CMD_GetIFAGC:
233 		     #ifdef MS_DEBUG
234 		     printf("kernal mode DVBTIoctl - DMD_DVBT_DRV_CMD_GetIFAGC\n");
235 		     #endif
236 		u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_DVBT_GetIFAGC_PARAM,spt_DVBT_GetIFAGC_PARAM, buffer_arg, sizeof(buffer_arg));
237 	     break;
238 
239         default:
240         break;
241 
242     }
243 
244     return u32Ret;
245    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
246 }
247 
DVBT_adp_Init(FUtopiaIOctl * pIoctl)248 MS_U32 DVBT_adp_Init(FUtopiaIOctl* pIoctl)
249 {
250 
251 //set table
252     UADP_SPT_BGN(&spt_DVBT_DBG_LEVEL_PARAM[0], sizeof(DVBT_SETDBG_LEVEL_PARAM));
253     UADP_SPT_FIN(&spt_DVBT_DBG_LEVEL_PARAM[1]);
254 
255     UADP_SPT_BGN(&spt_DVBT_EXIT_PARAM[0],sizeof(DVBT_EXIT_PARAM));
256     UADP_SPT_FIN(&spt_DVBT_EXIT_PARAM[1]);
257 
258 //    UADP_SPT_BGN(&spt_DMD_DVBT_InitData[0], sizeof(DMD_DVBT_InitData_Transform));
259 //    UADP_SPT_FIN(&spt_DMD_DVBT_InitData[1]);
260 
261 
262 	  UADP_SPT_BGN(&spt_DVBT_8BYTE_PARAM[0],8);
263     UADP_SPT_FIN(&spt_DVBT_8BYTE_PARAM[1]);
264 
265     //bryan test
266     #if(0)
267     UADP_SPT_BGN(&spt_DVBT_INIT_PARAM[0], sizeof(DVBT_INIT_PARAM));
268     UADP_SPT_FIN(&spt_DVBT_INIT_PARAM[1]);  //UADP_SPT_NXT(&spt_DVBT_INIT_PARAM[1], DVBT_INIT_PARAM, pDMD_DVBT_InitData, spt_DMD_DVBT_InitData);
269     #else
270 
271     #if(0)
272     UADP_SPT_BGN(&spt_DVBT_INIT_PARAM[0], sizeof(DVBT_INIT_PARAM));
273     UADP_SPT_NXT(&spt_DVBT_INIT_PARAM[1], DVBT_INIT_PARAM, DMD_DVBT_InitData, spt_DMD_DVBT_InitData);
274     UADP_SPT_FIN(&spt_DVBT_INIT_PARAM[2]);  //UADP_SPT_NXT(&spt_DVBT_INIT_PARAM[1], DVBT_INIT_PARAM, pDMD_DVBT_InitData, spt_DMD_DVBT_InitData);
275     #else
276     UADP_SPT_BGN(&spt_DMD_DVBT_InitData_Transform[0], sizeof(DMD_DVBT_InitData_Transform));
277     UADP_SDT_KIND(&spt_DMD_DVBT_InitData_Transform[1], DMD_DVBT_InitData_Transform, UADP_SDT_P2N, u8DMD_DVBT_DSPRegInitExt, spt_DVBT_8BYTE_PARAM);
278     UADP_SDT_KIND(&spt_DMD_DVBT_InitData_Transform[2], DMD_DVBT_InitData_Transform, UADP_SDT_P2N, u8DMD_DVBT_InitExt, spt_DVBT_8BYTE_PARAM);
279     UADP_SPT_FIN(&spt_DMD_DVBT_InitData_Transform[3]);
280 
281     UADP_SPT_BGN(&spt_DVBT_INIT_PARAM[0], sizeof(DVBT_INIT_PARAM));
282     UADP_SDT_KIND(&spt_DVBT_INIT_PARAM[1], DVBT_INIT_PARAM, UADP_SDT_P2N,DMD_DVBT_InitData, spt_DMD_DVBT_InitData_Transform);
283     UADP_SPT_FIN(&spt_DVBT_INIT_PARAM[2]);  //UADP_SPT_NXT(&spt_DVBT_INIT_PARAM[1], DVBT_INIT_PARAM, pDMD_DVBT_InitData, spt_DMD_DVBT_InitData);
284 
285     #endif
286 
287     #endif
288 /*
289     UADP_SPT_BGN(&spt_DVBT_GETINFO_PARAM[0], sizeof(DVBT_GETINFO_PARAM));
290     UADP_SPT_FIN(&spt_DVBT_GETINFO_PARAM[1]);
291 */
292 
293 //bryan add
294     UADP_SPT_BGN(&spt_DVBT_GETLIBVER_PARAM[0], sizeof(DVBT_GETLIBVER_PARAM));
295     UADP_SPT_NXT(&spt_DVBT_GETLIBVER_PARAM[1], DVBT_GETLIBVER_PARAM, ppVersion, spt_DVBT_MSIF_Version);
296     UADP_SPT_FIN(&spt_DVBT_GETLIBVER_PARAM[2]);
297 
298     UADP_SPT_BGN(&spt_DVBT_GETFWVER_PARAM[0],sizeof(DVBT_GETFWVER_PARAM));
299     UADP_SPT_NXT(&spt_DVBT_GETFWVER_PARAM[1], DVBT_GETFWVER_PARAM, ver, spt_U16_Val);
300     UADP_SPT_FIN(&spt_DVBT_GETFWVER_PARAM[2]);
301 
302 /*bryam temp mark*/
303     #if(0)
304     UADP_SPT_BGN(&spt_PDVBT_GetFreqOffset_PARAM[0], sizeof(DVBT_GetFreqOffset_PARAM));
305     UADP_SPT_NXT(&spt_PDVBT_GetFreqOffset_PARAM[1], DVBT_GetFreqOffset_PARAM,pFreqOff,spt_DVBT_U16_VAL);
306     UADP_SPT_FIN(&spt_PDVBT_GetFreqOffset_PARAM[2]);
307     #endif
308 
309 //end of bryan add
310 
311 /*bryan temp mark*/
312 #if(0)
313     UADP_SPT_BGN(&spt_DMD_DVBT_Info[0], sizeof(DMD_DVBT_Info));
314     UADP_SPT_FIN(&spt_DMD_DVBT_Info[1]);
315 #endif
316     /*UADP_SPT_BGN(&spt_DVBT_GETINFO_RETURN_PARAM[0], sizeof(DVBT_GETINFO_RETURN_PARAM));
317     UADP_SPT_NXT(&spt_DVBT_GETINFO_RETURN_PARAM[1], DVBT_GETINFO_RETURN_PARAM, pInfo, spt_DMD_DVBT_Info);
318     UADP_SPT_FIN(&spt_DVBT_GETINFO_RETURN_PARAM[2]);
319     */
320     UADP_SPT_BGN(&spt_DVBT_U8_VAL[0], sizeof(MS_U8));
321     UADP_SPT_FIN(&spt_DVBT_U8_VAL[1]);
322     UADP_SPT_BGN(&spt_DVBT_GETREG_PARAM[0], sizeof(DVBT_GETREG_PARAM));
323     UADP_SPT_NXT(&spt_DVBT_GETREG_PARAM[1], DVBT_GETREG_PARAM, pu8Data, spt_DVBT_U8_VAL);
324     UADP_SPT_FIN(&spt_DVBT_GETREG_PARAM[2]);
325 
326     UADP_SPT_BGN(&spt_DVBT_SETREG_PARAM[0], sizeof(DVBT_SETREG_PARAM));
327     UADP_SPT_FIN(&spt_DVBT_SETREG_PARAM[1]);
328 
329     UADP_SPT_BGN(&spt_DVBT_SetSerialControl_PARAM[0], sizeof(DVBT_SetSerialControl_PARAM));
330     UADP_SPT_FIN(&spt_DVBT_SetSerialControl_PARAM[1]);
331 
332     UADP_SPT_BGN(&spt_DVBT_SetConfig_PARAM[0], sizeof(DVBT_SetConfig_PARAM));
333     UADP_SPT_FIN(&spt_DVBT_SetConfig_PARAM[1]);
334 
335     UADP_SPT_BGN(&spt_DVBT_SetConfigHPLP_PARAM[0], sizeof(DVBT_SetConfigHPLP_PARAM));
336     UADP_SPT_FIN(&spt_DVBT_SetConfigHPLP_PARAM[1]);
337 
338     UADP_SPT_BGN(&spt_DVBT_SetConfigHPLPSetIF_PARAM[0], sizeof(DVBT_SetConfigHPLPSetIF_PARAM));
339     UADP_SPT_FIN(&spt_DVBT_SetConfigHPLPSetIF_PARAM[1]);
340 
341     UADP_SPT_BGN(&spt_DVBT_SetActive_PARAM[0], sizeof(DVBT_SetActive_PARAM));
342     UADP_SPT_FIN(&spt_DVBT_SetActive_PARAM[1]);
343 
344     UADP_SPT_BGN(&spt_DMD_LOCK_STATUS[0], sizeof(DMD_LOCK_STATUS));
345     UADP_SPT_FIN(&spt_DMD_LOCK_STATUS[1]);
346 
347     UADP_SPT_BGN(&spt_DVBT_GetLock_PARAM[0], sizeof(DVBT_GetLock_PARAM));
348     UADP_SPT_NXT(&spt_DVBT_GetLock_PARAM[1], DVBT_GetLock_PARAM, eLockStatus, spt_DMD_LOCK_STATUS);
349     UADP_SPT_FIN(&spt_DVBT_GetLock_PARAM[2]);
350 
351     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
352     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
353 
354     /*bryan temp mark*/
355     #if(0)
356     UADP_SPT_BGN(&spt_DVBT_GetSignalStrength_PARAM[0], sizeof(DVBT_GetSignalStrength_PARAM));
357     UADP_SPT_NXT(&spt_DVBT_GetSignalStrength_PARAM[1], DVBT_GetSignalStrength_PARAM, u16Strength, spt_DVBT_U16_VAL);
358     UADP_SPT_FIN(&spt_DVBT_GetSignalStrength_PARAM[2]);
359     #endif
360 
361 
362     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
363     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
364 
365     /*bryan temp mark*/
366     #if(0)
367     UADP_SPT_BGN(&spt_DVBT_GetSignalStrengthWithRFPower_PARAM[0], sizeof(DVBT_GetSignalStrengthWithRFPower_PARAM));
368     UADP_SPT_NXT(&spt_DVBT_GetSignalStrengthWithRFPower_PARAM[1], DVBT_GetSignalStrengthWithRFPower_PARAM, u16Strength, spt_DVBT_U16_VAL);
369     UADP_SPT_FIN(&spt_DVBT_GetSignalStrengthWithRFPower_PARAM[2]);
370     #endif
371 
372     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
373     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
374 
375     /*bryan temp mark*/
376     #if(0)
377     UADP_SPT_BGN(&spt_DVBT_GetSignalQuality_PARAM[0], sizeof(DVBT_GetSignalQuality_PARAM));
378     UADP_SPT_NXT(&spt_DVBT_GetSignalQuality_PARAM[1], DVBT_GetSignalQuality_PARAM, u16Quality, spt_DVBT_U16_VAL);
379     UADP_SPT_FIN(&spt_DVBT_GetSignalQuality_PARAM[2]);
380     #endif
381 
382     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
383     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
384 
385     /*bryan temp mark*/
386     #if(0)
387     UADP_SPT_BGN(&spt_DVBT_GetSignalQualityWithRFPower_PARAM[0], sizeof(DVBT_GetSignalQualityWithRFPower_PARAM));
388     UADP_SPT_NXT(&spt_DVBT_GetSignalQualityWithRFPower_PARAM[1], DVBT_GetSignalQualityWithRFPower_PARAM, u16Quality, spt_DVBT_U16_VAL);
389     UADP_SPT_FIN(&spt_DVBT_GetSignalQualityWithRFPower_PARAM[2]);
390     #endif
391 
392 #if 0
393     UADP_SPT_BGN(&spt_DVBT_FLOAT_VAL[0], sizeof(float));
394     UADP_SPT_FIN(&spt_DVBT_FLOAT_VAL[1]);
395 #endif
396     //arthur
397     UADP_SPT_BGN(&spt_DVBT_GetSNR_PARAM[0], sizeof(DVBT_GetSNR_PARAM));
398     UADP_SPT_NXT(&spt_DVBT_GetSNR_PARAM[1], DVBT_GetSNR_PARAM, noise_power_reg, spt_DVBT_U32_VAL);
399     UADP_SPT_FIN(&spt_DVBT_GetSNR_PARAM[2]);
400 
401 
402     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
403     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
404     UADP_SPT_BGN(&spt_DVBT_GetPacketErr_PARAM[0], sizeof(DVBT_GetPacketErr_PARAM));
405     UADP_SPT_NXT(&spt_DVBT_GetPacketErr_PARAM[1], DVBT_GetPacketErr_PARAM, pktErr, spt_DVBT_U16_VAL);
406     UADP_SPT_FIN(&spt_DVBT_GetPacketErr_PARAM[2]);
407 
408     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
409     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
410     UADP_SPT_BGN(&spt_DVBT_GetTPSInfo_PARAM[0], sizeof(DVBT_GetTPSInfo_PARAM));
411     UADP_SPT_NXT(&spt_DVBT_GetTPSInfo_PARAM[1], DVBT_GetTPSInfo_PARAM, u16Info, spt_DVBT_U16_VAL);
412     UADP_SPT_FIN(&spt_DVBT_GetTPSInfo_PARAM[2]);
413 
414     UADP_SPT_BGN(&spt_DVBT_U16_VAL[0], sizeof(MS_U16));
415     UADP_SPT_FIN(&spt_DVBT_U16_VAL[1]);
416 
417     UADP_SPT_BGN(&spt_DVBT_GetCellID_PARAM[0], sizeof(DVBT_GetCellID_PARAM));
418     UADP_SPT_NXT(&spt_DVBT_GetCellID_PARAM[1], DVBT_GetCellID_PARAM, u16CellID, spt_DVBT_U16_VAL);
419     UADP_SPT_FIN(&spt_DVBT_GetCellID_PARAM[2]);
420 
421     UADP_SPT_BGN(&spt_DVBT_SetPowerState_PARAM[0], sizeof(DVBT_SetPowerState_PARAM));
422     UADP_SPT_FIN(&spt_DVBT_SetPowerState_PARAM[1]);
423 
424     //arthur
425     UADP_SPT_BGN(&spt_DVBT_GetPostViterbiBer_PARAM[0],sizeof(DVBT_GetPostViterbiBer_PARAM));
426     UADP_SDT_KIND(&spt_DVBT_GetPostViterbiBer_PARAM[1],DVBT_GetPostViterbiBer_PARAM,UADP_SDT_P2N,BitErr_reg,spt_DVBT_U32_VAL);
427     UADP_SDT_KIND(&spt_DVBT_GetPostViterbiBer_PARAM[2],DVBT_GetPostViterbiBer_PARAM,UADP_SDT_P2N,BitErrPeriod_reg,spt_DVBT_U16_VAL);
428     UADP_SDT_KIND(&spt_DVBT_GetPostViterbiBer_PARAM[3],DVBT_GetPostViterbiBer_PARAM,UADP_SDT_P2N,PktErr_reg,spt_DVBT_U16_VAL);
429     UADP_SPT_FIN(&spt_DVBT_GetPostViterbiBer_PARAM[4]);
430 
431     UADP_SPT_BGN(&spt_DVBT_GetIFAGC_PARAM[0],sizeof(DVBT_GetIFAGC_PARAM));
432     UADP_SDT_KIND(&spt_DVBT_GetIFAGC_PARAM[1],DVBT_GetIFAGC_PARAM,UADP_SDT_P2N,ifagc_reg,spt_DVBT_U16_VAL);
433     UADP_SDT_KIND(&spt_DVBT_GetIFAGC_PARAM[2],DVBT_GetIFAGC_PARAM,UADP_SDT_P2N,ifagc_reg_lsb,spt_DVBT_U16_VAL);
434     UADP_SDT_KIND(&spt_DVBT_GetIFAGC_PARAM[3],DVBT_GetIFAGC_PARAM,UADP_SDT_P2N,ifagc_err_reg,spt_DVBT_U16_VAL);
435     UADP_SPT_FIN(&spt_DVBT_GetIFAGC_PARAM[4]);
436 
437    *pIoctl= (FUtopiaIOctl)DVBT_adp_Ioctl;
438 
439     return TRUE;
440 }
441 
442 
443 
444 
445 
446 
447