xref: /utopia/UTPA2-700.0.x/modules/security/utopia_adaption/cipher/CIPHER_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 #include <linux/uaccess.h>
5 
6 #include "MsTypes.h"
7 #include "utopia.h"
8 #include "drvAESDMA.h"
9 #include "drvAESDMA_v2.h"
10 #include "CIPHER_adp.h"
11 
12 
13 #include "utopia_adp.h"
14 //#include "MsOS.h"
15 
16 UADP_SDT_0_DEF(NULL);
17 //Top
18 UADP_STRUCT_POINTER_TABLE spt_AESDMA_INIT[10];
19 UADP_STRUCT_POINTER_TABLE spt_AESDMA_FILE_INOUT[10];
20 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SEL_ENG[10];
21 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SET_PS[10];
22 UADP_STRUCT_POINTER_TABLE spt_AESDMA_NOTIFY[10];
23 UADP_STRUCT_POINTER_TABLE spt_AESDMA_RAND[10];
24 UADP_STRUCT_POINTER_TABLE spt_SHA_CALCULATE[10];
25 UADP_STRUCT_POINTER_TABLE spt_SHA_CALCULATE_MANUAL[10];
26 UADP_STRUCT_POINTER_TABLE spt_RSA_CALCULATE[10];
27 UADP_STRUCT_POINTER_TABLE spt_RSA_OUTPUT[10];
28 
29 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SetKeyList[10];
30 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SetIvList[10];
31 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SetKeyExList[10];
32 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SetIvExList[10];
33 
34 //Bottom
35 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_RSASig[10];
36 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_RSAKey[10];
37 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_RSAOut[10];
38 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_HASHCFG[10];
39 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_SHADataInfo[10];
40 UADP_STRUCT_POINTER_TABLE spt_DrvAESDMA_SecureInfo[10];
41 
42 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserSetScrmbPattern[10];
43 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserPyPassPid[10];
44 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserSetPid[10];
45 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserEncrypt[10];
46 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserDecrypt[10];
47 UADP_STRUCT_POINTER_TABLE spt_AESDMA_ParserSetAddedScrmbPattern[10];
48 UADP_STRUCT_POINTER_TABLE spt_AESDMA_GetStatus[10];
49 //UADP_STRUCT_POINTER_TABLE spt_AESDMA_MDrvProcessCipher[10];
50 
51 UADP_STRUCT_POINTER_TABLE spt_AESDMA_START[10];
52 UADP_STRUCT_POINTER_TABLE spt_AESDMA_SetDefaultCAVid[10];
53 UADP_STRUCT_POINTER_TABLE spt_AESDMA_AllocKeySlot[10];
54 UADP_STRUCT_POINTER_TABLE spt_AESDMA_FreeKeySlot[10];
55 
AESDMA_adp_Init(FUtopiaIOctl * pIoctl)56 MS_U32 AESDMA_adp_Init(FUtopiaIOctl* pIoctl)
57 {
58 
59 //set table
60     printk("AESDMA_adp_Init\n");
61 
62     UADPBypassSetSPT(&spt_AESDMA_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(AESDMA_INIT));
63     UADPBypassSetSPT(&spt_AESDMA_INIT[1],UADP_SPT_END , 0, 0);
64 
65     UADPBypassSetSPT(&spt_AESDMA_FILE_INOUT[0],UADP_SPT_SELF_SIZE,0, sizeof(AESDMA_FILE_INOUT));
66     UADPBypassSetSPT(&spt_AESDMA_FILE_INOUT[1],UADP_SPT_END , 0, 0);
67 
68 
69     UADP_SPT_BGN(&spt_AESDMA_SEL_ENG[0], sizeof(AESDMA_SEL_ENG));
70     UADP_SPT_FIN(&spt_AESDMA_SEL_ENG[1]);
71 
72 
73 	UADP_SPT_BGN(&spt_AESDMA_SET_PS[0],sizeof(AESDMA_SET_PS));
74     UADP_SPT_FIN(&spt_AESDMA_SET_PS[1]);
75 
76 
77     UADP_SDT_BGN (&spt_AESDMA_NOTIFY[0], sizeof(AESDMA_NOTIFY));
78     UADP_SDT_KIND(&spt_AESDMA_NOTIFY[1], AESDMA_NOTIFY, UADP_SDT_AT, pfCallback,NULL);
79     UADP_SDT_FIN(&spt_AESDMA_NOTIFY[2]);
80 
81 
82     UADP_SDT_BGN (&spt_AESDMA_RAND[0], sizeof(AESDMA_RAND));
83     UADP_SDT_KIND(&spt_AESDMA_RAND[1], AESDMA_RAND, UADP_SDT_P2N, u32PABuf,NULL);
84     UADP_SDT_FIN(&spt_AESDMA_RAND[2]);
85 
86 
87     UADPBypassSetSPT(&spt_SHA_CALCULATE[0],UADP_SPT_SELF_SIZE,0, sizeof(SHA_CALCULATE));
88     UADPBypassSetSPT(&spt_SHA_CALCULATE[1],UADP_SPT_END , 0, 0);
89 
90 
91     UADP_SDT_BGN (&spt_SHA_CALCULATE_MANUAL[0], sizeof(SHA_CALCULATE_MANUAL));
92     UADP_SDT_KIND(&spt_SHA_CALCULATE_MANUAL[1], SHA_CALCULATE_MANUAL, UADP_SDT_P2N, pu8SetIV,NULL);
93     UADP_SDT_FIN(&spt_SHA_CALCULATE_MANUAL[2]);
94 
95 	//bottom
96 
97     UADP_SPT_BGN(&spt_DrvAESDMA_RSAKey[0],sizeof(DrvAESDMA_RSAKey));
98     UADP_SPT_FIN(&spt_DrvAESDMA_RSAKey[1]);
99 
100     UADP_SPT_BGN(&spt_DrvAESDMA_RSASig[0],sizeof(DrvAESDMA_RSASig));
101     UADP_SPT_FIN(&spt_DrvAESDMA_RSASig[1]);
102 
103     UADP_SPT_BGN(&spt_DrvAESDMA_RSAOut[0],sizeof(DrvAESDMA_RSAOut));
104     UADP_SPT_FIN(&spt_DrvAESDMA_RSAOut[1]);
105 
106     UADP_SPT_BGN(&spt_DrvAESDMA_SecureInfo[0],sizeof(DrvAESDMA_SecureInfo));
107     UADP_SPT_FIN(&spt_DrvAESDMA_SecureInfo[1]);
108 
109     UADP_SPT_BGN(&spt_DrvAESDMA_SHADataInfo[0], sizeof(DrvAESDMA_SHADataInfo));
110     UADP_SPT_FIN(&spt_DrvAESDMA_SHADataInfo[1]);
111 
112     UADP_SPT_BGN(&spt_DrvAESDMA_HASHCFG[0], sizeof(DrvAESDMA_HASHCFG));
113     UADP_SPT_FIN(&spt_DrvAESDMA_HASHCFG[3]);
114 
115     UADP_SPT_BGN(&spt_AESDMA_SetKeyList[0],sizeof(MS_U32)*4);
116     UADP_SPT_FIN(&spt_AESDMA_SetKeyList[1]);
117 
118     UADP_SPT_BGN(&spt_AESDMA_SetIvList[0],sizeof(MS_U32)*4);
119     UADP_SPT_FIN(&spt_AESDMA_SetIvList[1]);
120 
121     UADP_SPT_BGN(&spt_AESDMA_SetKeyExList[0],sizeof(AESDMA_SET_KEY_EX));
122     UADP_SDT_KIND(&spt_AESDMA_SetKeyExList[1], AESDMA_SET_KEY_EX, UADP_SDT_P2N, pu8Key,NULL);
123     UADP_SPT_FIN(&spt_AESDMA_SetKeyExList[2]);
124 
125     UADP_SPT_BGN(&spt_AESDMA_SetIvExList[0],sizeof(AESDMA_SET_IV_EX));
126     UADP_SDT_KIND(&spt_AESDMA_SetIvExList[1], AESDMA_SET_IV_EX, UADP_SDT_P2N, pu8IV,NULL);
127     UADP_SPT_FIN(&spt_AESDMA_SetIvExList[2]);
128 
129     UADP_SPT_BGN(&spt_AESDMA_ParserSetScrmbPattern[0], sizeof(AESDMA_PARSER_CONFIGURATIONS));
130     UADP_SPT_FIN(&spt_AESDMA_ParserSetScrmbPattern[1]);
131 
132     UADP_SPT_BGN(&spt_AESDMA_ParserPyPassPid[0], sizeof(AESDMA_PARSER_PID_CONFIGURATIONS));
133     UADP_SPT_FIN(&spt_AESDMA_ParserPyPassPid[1]);
134 
135     UADP_SPT_BGN(&spt_AESDMA_ParserSetPid[0], sizeof(AESDMA_PARSER_PID_CONFIGURATIONS));
136     UADP_SPT_FIN(&spt_AESDMA_ParserSetPid[1]);
137 
138     UADP_SPT_BGN(&spt_AESDMA_ParserEncrypt[0], sizeof(DrvAESDMA_ParserMode));
139     UADP_SPT_FIN(&spt_AESDMA_ParserEncrypt[1]);
140 
141     UADP_SPT_BGN(&spt_AESDMA_ParserDecrypt[0], sizeof(DrvAESDMA_ParserMode));
142     UADP_SPT_FIN(&spt_AESDMA_ParserDecrypt[1]);
143 
144     UADP_SPT_BGN(&spt_AESDMA_ParserSetAddedScrmbPattern[0], sizeof(AESDMA_PARSER_CONFIGURATIONS));
145     UADP_SPT_FIN(&spt_AESDMA_ParserSetAddedScrmbPattern[1]);
146 
147     UADP_SPT_BGN(&spt_AESDMA_GetStatus[0], sizeof(MS_U32));
148     UADP_SPT_FIN(&spt_AESDMA_GetStatus[1]);
149 
150 //    UADP_SPT_BGN(&spt_AESDMA_MDrvProcessCipher[0], sizeof(HDCP_CIPHER));
151 //    UADP_SPT_FIN(&spt_AESDMA_MDrvProcessCipher[1]);
152 
153     UADPBypassSetSPT(&spt_AESDMA_START[0],UADP_SPT_SELF_SIZE,0, sizeof(AESDMA_START));
154     UADPBypassSetSPT(&spt_AESDMA_START[1],UADP_SPT_END , 0, 0);
155 
156     UADP_SPT_BGN(&spt_AESDMA_SetDefaultCAVid[0], sizeof(AESDMA_CAVID));
157     UADP_SPT_FIN(&spt_AESDMA_SetDefaultCAVid[1]);
158 
159     UADP_SDT_BGN (&spt_AESDMA_AllocKeySlot[0], sizeof(AESDMA_ALLOC_KEY_SLOT));
160     UADP_SDT_KIND(&spt_AESDMA_AllocKeySlot[1], AESDMA_ALLOC_KEY_SLOT, UADP_SDT_P2N, pu32KeyIndex,NULL);
161     UADP_SDT_FIN(&spt_AESDMA_AllocKeySlot[2]);
162 
163     UADP_SPT_BGN(&spt_AESDMA_FreeKeySlot[0], sizeof(AESDMA_KEY_INDEX));
164     UADP_SPT_FIN(&spt_AESDMA_FreeKeySlot[1]);
165 
166     UADP_SDT_NAME2(RSA_CALCULATE,RSA_CALCULATE,UADP_SDT_P2N,pstSign,DrvAESDMA_RSASig,UADP_SDT_P2N,pstKey,DrvAESDMA_RSAKey);
167     UADP_SDT_NAME1(RSA_OUTPUT,RSA_OUTPUT,UADP_SDT_P2N,pstRSAOut,DrvAESDMA_RSAOut);
168 
169 	*pIoctl= (FUtopiaIOctl)AESDMA_adp_Ioctl;
170 	return 0;
171 
172 }
173 
174 /*
175 MS_U32 AESDMA_DDI_Open(void* pInstant,const void* const pAttribute)
176 {
177     return UtopiaOpen(MODULE_AESDMA,pInstant,0,pAttribute);
178 }
179 */
AESDMA_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)180 MS_U32 AESDMA_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
181 {
182     MS_U32 u32Ret = UTOPIA_STATUS_FAIL;
183     char buffer_arg[2048];
184 
185     switch(u32Cmd)
186     {
187         case MDrv_CMD_AESDMA_Init :
188             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_INIT,NULL,buffer_arg,sizeof(buffer_arg));
189             break;
190         case MDrv_CMD_AESDMA_SetIV:
191             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetIvList,NULL,buffer_arg,sizeof(buffer_arg));
192             break;
193         case MDrv_CMD_AESDMA_Reset:
194             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
195             break;
196         case MDrv_CMD_AESDMA_SetFileInOut:
197             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_FILE_INOUT, NULL, buffer_arg, sizeof(buffer_arg));
198             break;
199         case MDrv_CMD_AESDMA_SetKey:
200             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetKeyList,NULL,buffer_arg,sizeof(buffer_arg));
201             break;
202         case MDrv_CMD_AESDMA_SelEng:
203             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SEL_ENG,NULL,buffer_arg,sizeof(buffer_arg));
204             break;
205         case MDrv_CMD_AESDMA_Start:
206             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_INIT, NULL,buffer_arg,sizeof(buffer_arg));
207             break;
208         case MDrv_CMD_AESDMA_GetStatus:
209             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_GetStatus,spt_AESDMA_GetStatus,buffer_arg,sizeof(buffer_arg));
210             break;
211         case MDrv_CMD_AESDMA_IsFinished:
212             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
213             break;
214         case MDrv_CMD_AESDMA_SetClk:
215             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
216             break;
217         case MDrv_CMD_AESDMA_SetSecureKey:
218             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
219             break;
220         case MDrv_CMD_AESDMA_SetPS:
221             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SET_PS,NULL,buffer_arg,sizeof(buffer_arg));
222             break;
223         case MDrv_CMD_AESDMA_PSRelease:
224             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
225             break;
226         case MDrv_CMD_AESDMA_GetPSMatchedByteCNT:
227             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
228             break;
229         case MDrv_CMD_AESDMA_GetPSMatchedPTN:
230             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
231             break;
232         case MDrv_CMD_AESDMA_Notify:
233             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_NOTIFY,NULL,buffer_arg,sizeof(buffer_arg));
234             break;
235         case MDrv_CMD_AESDMA_Rand:
236             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
237 		    break;
238         case MDrv_CMD_RSA_Calculate:
239             {
240 //                void* pDatatmp_RSASig;
241 //                void* pDatatmp_RSAKey;
242 //                RSA_CALCULATE tmp_RSA;
243 //
244 //                pDatatmp_RSASig = kmalloc(sizeof (DrvAESDMA_RSASig),GFP_KERNEL);
245 //                pDatatmp_RSAKey = kmalloc(sizeof (DrvAESDMA_RSAKey),GFP_KERNEL);
246 //
247 //                copy_from_user(&tmp_RSA,pArgs,sizeof (RSA_CALCULATE));
248 //                copy_from_user(pDatatmp_RSASig, tmp_RSA.pstSign, sizeof (DrvAESDMA_RSASig));
249 //                copy_from_user(pDatatmp_RSAKey, tmp_RSA.pstKey, sizeof (DrvAESDMA_RSAKey));
250 //
251 //                tmp_RSA.pstSign = pDatatmp_RSASig;
252 //                tmp_RSA.pstKey  = pDatatmp_RSAKey;
253 //
254 //                u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,&tmp_RSA);
255 //                free(pDatatmp_RSASig);
256 //                free(pDatatmp_RSAKey);
257 
258                 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_RSA_CALCULATE,spt_RSA_CALCULATE,buffer_arg,sizeof(buffer_arg));
259             }
260             break;
261         case MDrv_CMD_RSA_IsFinished:
262             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
263             break;
264         case MDrv_CMD_RSA_Output:
265             {
266 //                void* pDatatmp_RSAOut;
267 //                void* pDatatmp_RSAUserOut;
268 //                RSA_OUTPUT tmp_RSA;
269 //
270 //                pDatatmp_RSAOut = kmalloc(sizeof (DrvAESDMA_RSAOut),GFP_KERNEL);
271 //
272 //                copy_from_user(&tmp_RSA,pArgs,sizeof (RSA_OUTPUT));
273 //                copy_from_user(pDatatmp_RSAOut, tmp_RSA.pstRSAOut, sizeof (RSA_OUTPUT));
274 //
275 //                pDatatmp_RSAUserOut = tmp_RSA.pstRSAOut;
276 //                tmp_RSA.pstRSAOut = pDatatmp_RSAOut;
277 //
278 //                u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,&tmp_RSA);
279 //
280 //                copy_to_user(pDatatmp_RSAUserOut, tmp_RSA.pstRSAOut, sizeof(DrvAESDMA_RSAOut));
281 //                free(pDatatmp_RSAOut);
282                 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_RSA_OUTPUT,spt_RSA_OUTPUT,buffer_arg,sizeof(buffer_arg));
283             }
284 		    break;
285         case MDrv_CMD_SHA_Calculate:
286             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_SHA_CALCULATE,spt_SHA_CALCULATE,buffer_arg,sizeof(buffer_arg));
287             break;
288         case MDrv_CMD_AESDMA_Memcpy:
289             u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
290             break;
291         case MDrv_CMD_SHA_CalculateManual:
292             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_SHA_CALCULATE_MANUAL,spt_SHA_CALCULATE_MANUAL,buffer_arg,sizeof(buffer_arg));
293             break;
294         case MDrv_CMD_AESDMA_PARSER_MASKSCRMB:
295             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
296             break;
297         case MDrv_CMD_AESDMA_PARSER_SETSCRMBPATTERN:
298             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserSetScrmbPattern,NULL,buffer_arg,sizeof(buffer_arg));
299             break;
300         case MDrv_CMD_AESDMA_PARSER_BYPASSPID:
301             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserPyPassPid,NULL,buffer_arg,sizeof(buffer_arg));
302             break;
303         case MDrv_CMD_AESDMA_PARSER_SETPID:
304             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserSetPid,NULL,buffer_arg,sizeof(buffer_arg));
305             break;
306         case MDrv_CMD_AESDMA_PARSER_ENCRYPT:
307             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserEncrypt,NULL,buffer_arg,sizeof(buffer_arg));
308             break;
309         case MDrv_CMD_AESDMA_PARSER_DECRYPT:
310             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserDecrypt,NULL,buffer_arg,sizeof(buffer_arg));
311             break;
312         case MDrv_CMD_AESDMA_PARSER_Start:
313             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
314             break;
315         case MDrv_CMD_AESDMA_PARSER_SETADDEDSCRMBPATTERN:
316             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_ParserSetAddedScrmbPattern,NULL,buffer_arg,sizeof(buffer_arg));
317             break;
318         case MDrv_CMD_AESDMA_PARSER_QUERYPIDCOUNT:
319             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
320             break;
321         case MDrv_CMD_AESDMA_ENABLE_Two_Key:
322             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
323             break;
324         case MDrv_CMD_AESDMA_SetOddKey:
325             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetKeyList,NULL,buffer_arg,sizeof(buffer_arg));
326             break;
327         case MDrv_CMD_AESDMA_SetOddIV:
328             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetIvList,NULL,buffer_arg,sizeof(buffer_arg));
329             break;
330         case MDrv_CMD_IS_SECRETKEY_IN_NORMAL_BLANK:
331             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
332             break;
333         case MDrv_CMD_AESDMA_SetKey_Ex:
334             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetKeyExList,NULL,buffer_arg,sizeof(buffer_arg));
335             break;
336         case MDrv_CMD_AESDMA_SetIV_Ex:
337             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetIvExList,NULL,buffer_arg,sizeof(buffer_arg));
338             break;
339         case MDrv_CMD_AESDMA_SetDefaultCAVid:
340             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_SetDefaultCAVid,NULL,buffer_arg,sizeof(buffer_arg));
341             break;
342         case MDrv_CMD_HDCP_MDrv_PROCESSCIPHER:
343 //            u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_MDrvProcessCipher,NULL,buffer_arg,sizeof(buffer_arg));
344             break;
345         case MDrv_CMD_AESDMA_AllocKeySlot:
346             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_AllocKeySlot,NULL,buffer_arg,sizeof(buffer_arg));
347             break;
348         case MDrv_CMD_AESDMA_FreeKeySlot:
349             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_AESDMA_FreeKeySlot,NULL,buffer_arg,sizeof(buffer_arg));
350             break;
351 
352 
353 		//case MDrv_CMD_Event_Poll:
354 		//	UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
355 		default:
356 			break;
357 
358     }
359 
360 
361     return u32Ret;
362    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
363 }
364 
365 
366 
367 
368