xref: /utopia/UTPA2-700.0.x/modules/dlc/api/dlc/apiXC_Dlc_v2.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include "MsTypes.h"
2 #include "MsCommon.h"
3 #ifndef MSOS_TYPE_LINUX_KERNEL
4 #include <stdio.h>
5 #include <string.h>
6 #endif
7 
8 #include "utopia_dapi.h"
9 #include "apiXC_Dlc.h"
10 #include "apiXC_DBC.h"
11 #include "apiXC_DLC_private.h"
12 #include "apiXC_Dlc_v2.h"
13 #include "utopia.h"
14 
15 
16 
17 // ========== Global definition ==========
18 void* pModuleDLC = NULL;
19 #ifdef MSOS_TYPE_LINUX_KERNEL
20 void* pInstanceDLCStr = NULL;
DLCStr(MS_U32 u32PowerState,void * pModule)21 MS_U32 DLCStr(MS_U32 u32PowerState, void* pModule)
22 {
23     MS_U32 u32Return=UTOPIA_STATUS_FAIL;
24     stDLC_SetPowerState DBCArgs;
25 
26     switch(u32PowerState)
27     {
28         case E_POWER_SUSPEND:
29             if (pInstanceDLCStr == NULL)
30             {
31                 if(UtopiaOpen(MODULE_DLC, &pInstanceDLCStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
32                 {
33                     printf("UtopiaOpen DBC failed\n");
34                     return UTOPIA_STATUS_FAIL;
35                 }
36             }
37             DBCArgs.enPowerState = u32PowerState;
38             DBCArgs.u32Return = UTOPIA_STATUS_FAIL;
39             if(UtopiaIoctl(pInstanceDLCStr, E_DLC_CMD_SET_POWERSTATE, (void*)&DBCArgs) != UTOPIA_STATUS_SUCCESS)
40             {
41                 printf("Obtain DBC engine fail\n");
42                 return UTOPIA_STATUS_FAIL;
43             }
44             u32Return=DBCArgs.u32Return;
45             break;
46         case E_POWER_RESUME:
47             if (pInstanceDLCStr == NULL)
48             {
49                 if(UtopiaOpen(MODULE_DLC, &pInstanceDLCStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
50                 {
51                     printf("UtopiaOpen DBC failed\n");
52                     return UTOPIA_STATUS_FAIL;
53                 }
54             }
55             DBCArgs.enPowerState = u32PowerState;
56             DBCArgs.u32Return = UTOPIA_STATUS_FAIL;
57             if(UtopiaIoctl(pInstanceDLCStr, E_DLC_CMD_SET_POWERSTATE, (void*)&DBCArgs) != UTOPIA_STATUS_SUCCESS)
58             {
59                 printf("Obtain DBC engine fail\n");
60                 return UTOPIA_STATUS_FAIL;
61             }
62             u32Return=DBCArgs.u32Return;
63             break;
64         default:
65             printf("[%s][%d] PowerState:%lx not Implement now!!!\n",__FUNCTION__,__LINE__,u32PowerState);
66             break;
67     }
68     return u32Return;
69 }
70 #endif
DLCRegisterToUtopia(FUtopiaOpen ModuleType)71 void DLCRegisterToUtopia(FUtopiaOpen ModuleType)
72 {
73     // 1. deal with module
74     UtopiaModuleCreate(MODULE_DLC, 0, &pModuleDLC);
75     UtopiaModuleRegister(pModuleDLC);
76     // register func for module, after register here, then ap call UtopiaOpen/UtopiaIoctl/UtopiaClose can call to these registered standard func
77     UtopiaModuleSetupFunctionPtr(pModuleDLC, (FUtopiaOpen)DLCOpen, (FUtopiaClose)DLCClose, (FUtopiaIOctl)DLCIoctl);
78 
79     // 2. deal with resource  , XCݥiݭnresourceA䤤@ӬOreadonlyAt~@ӬOXCӥ]resource
80     void* psResource = NULL;
81 #if defined(MSOS_TYPE_LINUX_KERNEL)
82     UtopiaModuleSetupSTRFunctionPtr(pModuleDLC, (FUtopiaSTR)DLCStr);
83     UtopiaModuleSetSTRPrivate(pModuleDLC, sizeof(DLC_REGS_SAVE_AREA));
84 #endif
85     // 3. resource can allocate private for internal use
86     UtopiaModuleAddResourceStart(pModuleDLC, E_DLC_POOL_ID_INTERNAL);
87     UtopiaResourceCreate("DLC", sizeof(DLC_RESOURCE_PRIVATE), &psResource);
88     UtopiaResourceRegister(pModuleDLC, psResource, E_DLC_POOL_ID_INTERNAL);
89     UtopiaModuleAddResourceEnd(pModuleDLC, E_DLC_POOL_ID_INTERNAL);
90 
91     // shall we init first?
92 }
93 
94 
DLCOpen(void ** ppInstance,const void * const pAttribute)95 MS_U32 DLCOpen(void** ppInstance, const void* const pAttribute)
96 {
97     DLC_INSTANCE_PRIVATE *psDLCInstPri = NULL;
98     UtopiaInstanceCreate(sizeof(DLC_INSTANCE_PRIVATE), ppInstance);
99     UtopiaInstanceGetPrivate(*ppInstance, (void**)&psDLCInstPri);
100 
101     psDLCInstPri->fpDLC_Init_Ex = MApi_XC_DLC_Init_Ex_U2;
102     psDLCInstPri->fpDLC_SetSetting_Ex = MApi_XC_DLC_SetSetting_Ex_U2;
103     psDLCInstPri->fpDLC_SetCurve = MApi_XC_DLC_SetCurve_U2;
104     psDLCInstPri->fpDLC_SetBleSlopPoint = MApi_XC_DLC_SetBleSlopPoint_U2;
105     psDLCInstPri->fpDLC_SetHDRInit = MApi_XC_DLC_SetHDRInit_U2;
106 #ifdef UFO_XC_HDR
107 #if (UFO_XC_HDR_VERSION == 2)
108 //MApi_XC_DLC_SetTMOInfo_U2 is defined by (UFO_XC_HDR_VERSION == 2)
109     psDLCInstPri->fpDLC_SetTMOInfo = MApi_XC_DLC_SetTMOInfo_U2;
110 #endif
111 #endif
112     psDLCInstPri->fpDLC_Exit = MApi_XC_DLC_Exit_U2;
113     psDLCInstPri->fpDLC_SetOnOff = MApi_XC_DLC_SetOnOff_U2;
114     psDLCInstPri->fpDLC_SetDlcHandlerOnOff = MApi_XC_DLC_SetDlcHandlerOnOff_U2;
115     psDLCInstPri->fpDLC_SetBleOnOff = MApi_XC_DLC_SetBleOnOff_U2;
116     psDLCInstPri->fpDLC_EnableMainSubCurveSynchronization = MApi_XC_DLC_EnableMainSubCurveSynchronization_U2;
117     psDLCInstPri->fpDLC_Handler = MApi_XC_DLC_Handler_U2;
118     psDLCInstPri->fpDLC_GetHistogramHandler = MApi_XC_DLC_GetHistogramHandler_U2;
119     psDLCInstPri->fpDLC_GetAverageValue = MApi_XC_DLC_GetAverageValue_U2;
120     psDLCInstPri->fpDLC_GetAverageValue_Ex = MApi_XC_DLC_GetAverageValue_Ex_U2;
121     psDLCInstPri->fpDLC_InitCurve = MApi_XC_DLC_InitCurve_U2;
122     psDLCInstPri->fpDLC_SpeedupTrigger = MApi_XC_DLC_SpeedupTrigger_U2;
123     psDLCInstPri->fpDLC_GetLumaCurveStatus = MApi_XC_DLC_GetLumaCurveStatus_U2;
124     psDLCInstPri->fpDLC_CGC_ResetCGain = MApi_XC_DLC_CGC_ResetCGain_U2;
125     psDLCInstPri->fpDLC_CGC_CheckCGainInPQCom = MApi_XC_DLC_CGC_CheckCGainInPQCom_U2;
126     psDLCInstPri->fpDLC_CGC_ResetYGain = MApi_XC_DLC_CGC_ResetYGain_U2;
127     psDLCInstPri->fpDLC_CGC_CheckYGainInPQCom = MApi_XC_DLC_CGC_CheckYGainInPQCom_U2;
128     psDLCInstPri->fpDLC_CGC_Reset = MApi_XC_DLC_CGC_Reset_U2;
129     psDLCInstPri->fpDLC_CGC_Init = MApi_XC_DLC_CGC_Init_U2;
130     psDLCInstPri->fpDLC_CGC_ReInit = MApi_XC_DLC_CGC_ReInit_U2;
131     psDLCInstPri->fpDLC_CGC_Handler = MApi_XC_DLC_CGC_Handler_U2;
132     psDLCInstPri->fpDLC_GetLibVer = MApi_XC_DLC_GetLibVer_U2;
133     psDLCInstPri->fpDLC_GetInfo = MApi_XC_DLC_GetInfo_U2;
134     psDLCInstPri->fpDLC_GetStatus_Ex = MApi_XC_DLC_GetStatus_Ex_U2;
135     psDLCInstPri->fpDLC_SetDbgLevel = MApi_XC_DLC_SetDbgLevel_U2;
136     psDLCInstPri->fpDLC_WriteCurve = MApi_XC_DLC_WriteCurve_U2;
137     psDLCInstPri->fpDLC_WriteCurve_Sub = MApi_XC_DLC_WriteCurve_Sub_U2;
138     psDLCInstPri->fpDLC_GetHistogram = MApi_XC_DLC_GetHistogram_U2;
139     psDLCInstPri->fpDLC_DecodeExtCmd = MApi_XC_DLC_DecodeExtCmd_U2;
140     psDLCInstPri->fpDLC_SetCaptureRange = MApi_XC_DLC_SetCaptureRange_U2;
141     psDLCInstPri->fpDLC_SetSetting = MApi_XC_DLC_SetSetting_U2;
142     psDLCInstPri->fpDLC_Init = MApi_XC_DLC_Init_U2;
143     psDLCInstPri->fpDLC_GetStatus = MApi_XC_DLC_GetStatus_U2;
144     psDLCInstPri->fpDLC_SetPowerState = MApi_XC_DLC_SetPowerState_U2;
145     psDLCInstPri->fpDBC_DLC_Init =MApi_XC_DLC_DBC_Init_U2 ;
146     psDLCInstPri->fpDBC_Init =MApi_XC_DBC_Init_U2 ;
147     psDLCInstPri->fpDBC_Setstatus= MApi_XC_DLC_DBC_Setstatus_U2;
148     psDLCInstPri->fpDBC_Getstatus =MApi_XC_DLC_DBC_Getstatus_U2 ;
149     psDLCInstPri->fpDBC_SetReady = MApi_XC_DLC_DBC_SetReady_U2;
150     psDLCInstPri->fpDBC_SetDebugMode =MApi_XC_DLC_DBC_SetDebugMode_U2 ;
151     psDLCInstPri->fpDBC_GetDebugMode = MApi_XC_DLC_DBC_GetDebugMode_U2;
152     psDLCInstPri->fpDBC_UpdatePWM =MApi_XC_DLC_DBC_UpdatePWM_U2 ;
153     psDLCInstPri->fpDBC_Handler =MApi_XC_DLC_DBC_Handler_U2 ;
154     psDLCInstPri->fpDBC_AdjustYCGain = MApi_XC_DLC_DBC_AdjustYCGain_U2;
155     psDLCInstPri->fpDBC_YCGainInit = MApi_XC_DLC_DBC_YCGainInit_U2;
156     psDLCInstPri->fpDBC_Reset = MApi_XC_DLC_DBC_Reset_U2;
157     psDLCInstPri->fpDBC_DecodeExtCmd = MApi_XC_DBC_DecodeExtCmd_U2;
158     return UTOPIA_STATUS_SUCCESS;
159 }
160 
161 
DLCIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)162 MS_U32 DLCIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs)
163 {
164     void* pModule = NULL;
165     void* pResource = NULL;
166     DLC_INSTANCE_PRIVATE* psDLCInstPri = NULL;
167     UtopiaInstanceGetPrivate(pInstance, (void*)&psDLCInstPri);
168     UtopiaInstanceGetModule(pInstance, &pModule);
169     //printf("[%s,%5d] u32Cmd type = %ld\n",__FUNCTION__,__LINE__,u32Cmd);
170 
171 
172     switch(u32Cmd)
173     {
174         case E_DLC_CMD_INIT_EX:
175         {
176             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
177             {
178                 printf("UtopiaDlcResourceObtain fail\n");
179                 return UTOPIA_STATUS_ERR_RESOURCE;
180             }
181 
182             pstDLC_Init_Ex pDLCArgs = (pstDLC_Init_Ex)pArgs;
183             pDLCArgs->bReturn = psDLCInstPri->fpDLC_Init_Ex(pInstance, pDLCArgs->pstXC_DLC_InitData ,pDLCArgs->u32InitDataLen);
184 
185             UtopiaResourceRelease(pResource);
186             return UTOPIA_STATUS_SUCCESS;
187             break;
188         }
189         case E_DLC_CMD_SET_SETTING_EX:
190         {
191             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
192             {
193                 printf("UtopiaDlcResourceObtain fail\n");
194                 return UTOPIA_STATUS_ERR_RESOURCE;
195             }
196 
197             pstDLC_SetSetting_Ex pDLCArgs = (pstDLC_SetSetting_Ex)pArgs;
198             psDLCInstPri->fpDLC_SetSetting_Ex(pInstance, pDLCArgs->DLC_MFinit_Ex);
199 
200             UtopiaResourceRelease(pResource);
201             return UTOPIA_STATUS_SUCCESS;
202             break;
203         }
204         case E_DLC_CMD_SET_CURVE:
205         {
206             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
207             {
208                 printf("UtopiaDlcResourceObtain fail\n");
209                 return UTOPIA_STATUS_ERR_RESOURCE;
210             }
211 
212             pstDLC_SetCurve pDLCArgs = (pstDLC_SetCurve)pArgs;
213             psDLCInstPri->fpDLC_SetCurve(pInstance, pDLCArgs->pNormal ,pDLCArgs->pLight ,pDLCArgs->pDark);
214 
215             UtopiaResourceRelease(pResource);
216             return UTOPIA_STATUS_SUCCESS;
217             break;
218         }
219         case E_DLC_CMD_SET_BLE_SLOP_POINT:
220         {
221             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
222             {
223                 printf("UtopiaDlcResourceObtain fail\n");
224                 return UTOPIA_STATUS_ERR_RESOURCE;
225             }
226 
227             pstDLC_SetBleSlopPoint pDLCArgs = (pstDLC_SetBleSlopPoint)pArgs;
228             psDLCInstPri->fpDLC_SetBleSlopPoint(pInstance, pDLCArgs->pBLESlopPoint );
229 
230             UtopiaResourceRelease(pResource);
231             return UTOPIA_STATUS_SUCCESS;
232             break;
233         }
234         case E_DLC_CMD_SET_HDR_INFO:
235         {
236             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
237             {
238                 printf("UtopiaDlcResourceObtain fail\n");
239                 return UTOPIA_STATUS_ERR_RESOURCE;
240             }
241 
242             pstDLC_HDRInitData pDLCArgs = (pstDLC_HDRInitData)pArgs;
243             pDLCArgs->bReturn = psDLCInstPri->fpDLC_SetHDRInit(pInstance, pDLCArgs->pstDLC_HDRInitData );
244 
245             UtopiaResourceRelease(pResource);
246             return UTOPIA_STATUS_SUCCESS;
247             break;
248         }
249 
250         case E_DLC_CMD_SET_TMOINFO:
251         {
252             #if defined(UFO_XC_HDR_VERSION) && (UFO_XC_HDR_VERSION == 2)
253                 if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
254                 {
255                     printf("UtopiaDlcResourceObtain fail\n");
256                     return UTOPIA_STATUS_ERR_RESOURCE;
257                 }
258 
259                 pstDLC_SetTMOInfo pDLCArgs = (pstDLC_SetTMOInfo)pArgs;
260                 pDLCArgs->bReturn = psDLCInstPri->fpDLC_SetTMOInfo(pInstance, pDLCArgs->pstDLC_TMOInfo );
261 
262                 UtopiaResourceRelease(pResource);
263             #endif
264             return UTOPIA_STATUS_SUCCESS;
265             break;
266         }
267 
268         case E_DLC_CMD_EXIT:
269         {
270             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
271             {
272                 printf("UtopiaDlcResourceObtain fail\n");
273                 return UTOPIA_STATUS_ERR_RESOURCE;
274             }
275 
276             pstDLC_Exit pDLCArgs = (pstDLC_Exit)pArgs;
277             pDLCArgs->bReturn = psDLCInstPri->fpDLC_Exit(pInstance);
278 
279             UtopiaResourceRelease(pResource);
280             return UTOPIA_STATUS_SUCCESS;
281             break;
282         }
283         case E_DLC_CMD_SET_ON_OFF:
284         {
285             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
286             {
287                 printf("UtopiaDlcResourceObtain fail\n");
288                 return UTOPIA_STATUS_ERR_RESOURCE;
289             }
290 
291             pstDLC_SetOnOff pDLCArgs = (pstDLC_SetOnOff)pArgs;
292             psDLCInstPri->fpDLC_SetOnOff(pInstance, pDLCArgs->bSwitch ,pDLCArgs->bWindow);
293 
294             UtopiaResourceRelease(pResource);
295             return UTOPIA_STATUS_SUCCESS;
296             break;
297         }
298         case E_DLC_CMD_SET_HANDLER_ON_OFF:
299         {
300             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
301             {
302                 printf("UtopiaDlcResourceObtain fail\n");
303                 return UTOPIA_STATUS_ERR_RESOURCE;
304             }
305 
306             pstDLC_SetDlcHandlerOnOff pDLCArgs = (pstDLC_SetDlcHandlerOnOff)pArgs;
307             psDLCInstPri->fpDLC_SetDlcHandlerOnOff(pInstance, pDLCArgs->bDlcEnable );
308 
309             UtopiaResourceRelease(pResource);
310             return UTOPIA_STATUS_SUCCESS;
311             break;
312         }
313         case E_DLC_CMD_SET_BLE_ON_OFF:
314         {
315             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
316             {
317                 printf("UtopiaDlcResourceObtain fail\n");
318                 return UTOPIA_STATUS_ERR_RESOURCE;
319             }
320 
321             pstDLC_SetBleOnOff pDLCArgs = (pstDLC_SetBleOnOff)pArgs;
322             pDLCArgs->bReturn = psDLCInstPri->fpDLC_SetBleOnOff(pInstance, pDLCArgs->bSwitch );
323 
324             UtopiaResourceRelease(pResource);
325             return UTOPIA_STATUS_SUCCESS;
326             break;
327         }
328         case E_DLC_CMD_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION:
329         {
330             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
331             {
332                 printf("UtopiaDlcResourceObtain fail\n");
333                 return UTOPIA_STATUS_ERR_RESOURCE;
334             }
335 
336              pstDLC_EnableMainSubCurveSynchronization pDLCArgs = (pstDLC_EnableMainSubCurveSynchronization)pArgs;
337              psDLCInstPri->fpDLC_EnableMainSubCurveSynchronization(pInstance, pDLCArgs->bEnable );
338 
339             UtopiaResourceRelease(pResource);
340             return UTOPIA_STATUS_SUCCESS;
341             break;
342         }
343         case E_DLC_CMD_HANDLER:
344         {
345             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
346             {
347                 printf("UtopiaDlcResourceObtain fail\n");
348                 return UTOPIA_STATUS_ERR_RESOURCE;
349             }
350 
351             pstDLC_Handler pDLCArgs = (pstDLC_Handler)pArgs;
352             psDLCInstPri->fpDLC_Handler(pInstance, pDLCArgs->bWindow);
353 
354             UtopiaResourceRelease(pResource);
355             return UTOPIA_STATUS_SUCCESS;
356             break;
357         }
358         case E_DLC_CMD_GET_HISTOGRAM_HANDLER:
359         {
360             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
361             {
362                 printf("UtopiaDlcResourceObtain fail\n");
363                 return UTOPIA_STATUS_ERR_RESOURCE;
364             }
365 
366             pstDLC_GetHistogramHandler pDLCArgs = (pstDLC_GetHistogramHandler)pArgs;
367             pDLCArgs->bReturn = psDLCInstPri->fpDLC_GetHistogramHandler(pInstance, pDLCArgs->bWindow );
368 
369             UtopiaResourceRelease(pResource);
370             return UTOPIA_STATUS_SUCCESS;
371             break;
372         }
373         case E_DLC_CMD_GET_AVERAGE_VALUE:
374         {
375             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
376             {
377                 printf("UtopiaDlcResourceObtain fail\n");
378                 return UTOPIA_STATUS_ERR_RESOURCE;
379             }
380 
381             pstDLC_GetAverageValue pDLCArgs = (pstDLC_GetAverageValue)pArgs;
382             pDLCArgs->u8Return = psDLCInstPri->fpDLC_GetAverageValue(pInstance);
383 
384             UtopiaResourceRelease(pResource);
385             return UTOPIA_STATUS_SUCCESS;
386             break;
387         }
388         case E_DLC_CMD_GET_AVERAGE_VALUE_EX:
389         {
390             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
391             {
392                 printf("UtopiaDlcResourceObtain fail\n");
393                 return UTOPIA_STATUS_ERR_RESOURCE;
394             }
395 
396             pstDLC_GetAverageValue_Ex pDLCArgs = (pstDLC_GetAverageValue_Ex)pArgs;
397             pDLCArgs->u16Return = psDLCInstPri->fpDLC_GetAverageValue_Ex(pInstance);
398 
399             UtopiaResourceRelease(pResource);
400             return UTOPIA_STATUS_SUCCESS;
401             break;
402         }
403         case E_DLC_CMD_INIT_CURVE:
404         {
405             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
406             {
407                 printf("UtopiaDlcResourceObtain fail\n");
408                 return UTOPIA_STATUS_ERR_RESOURCE;
409             }
410 
411 
412              pstDLC_InitCurve pDLCArgs = (pstDLC_InitCurve)pArgs;
413              psDLCInstPri->fpDLC_InitCurve(pInstance, pDLCArgs->u16HStart , pDLCArgs->u16HEnd , pDLCArgs->u16VStart , pDLCArgs->u16VEnd );
414 
415             UtopiaResourceRelease(pResource);
416             return UTOPIA_STATUS_SUCCESS;
417             break;
418         }
419         case E_DLC_CMD_SPEEDUP_TRIGGER:
420         {
421             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
422             {
423                 printf("UtopiaDlcResourceObtain fail\n");
424                 return UTOPIA_STATUS_ERR_RESOURCE;
425             }
426 
427             pstDLC_SpeedupTrigger pDLCArgs = (pstDLC_SpeedupTrigger)pArgs;
428             psDLCInstPri->fpDLC_SpeedupTrigger(pInstance, pDLCArgs->u8Loop );
429 
430             UtopiaResourceRelease(pResource);
431             return UTOPIA_STATUS_SUCCESS;
432             break;
433         }
434         case E_DLC_CMD_GET_LUMA_CURVE_STATUS:
435         {
436             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
437             {
438                 printf("UtopiaDlcResourceObtain fail\n");
439                 return UTOPIA_STATUS_ERR_RESOURCE;
440             }
441 
442             pstDLC_GetLumaCurveStatus pDLCArgs = (pstDLC_GetLumaCurveStatus)pArgs;
443             pDLCArgs->bReturn = psDLCInstPri->fpDLC_GetLumaCurveStatus(pInstance);
444 
445             UtopiaResourceRelease(pResource);
446             return UTOPIA_STATUS_SUCCESS;
447             break;
448         }
449         case E_DLC_CMD_CGC_RESET_C_GAIN:
450         {
451             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
452             {
453                 printf("UtopiaDlcResourceObtain fail\n");
454                 return UTOPIA_STATUS_ERR_RESOURCE;
455             }
456 
457             psDLCInstPri->fpDLC_CGC_ResetCGain(pInstance);
458 
459             UtopiaResourceRelease(pResource);
460             return UTOPIA_STATUS_SUCCESS;
461             break;
462         }
463         case E_DLC_CMD_CGC_CHECK_C_GAIN_IN_PQ_COM:
464         {
465             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
466             {
467                 printf("UtopiaDlcResourceObtain fail\n");
468                 return UTOPIA_STATUS_ERR_RESOURCE;
469             }
470 
471             psDLCInstPri->fpDLC_CGC_CheckCGainInPQCom(pInstance);
472 
473             UtopiaResourceRelease(pResource);
474             return UTOPIA_STATUS_SUCCESS;
475             break;
476         }
477         case E_DLC_CMD_CGC_RESET_Y_GAIN:
478         {
479             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
480             {
481                 printf("UtopiaDlcResourceObtain fail\n");
482                 return UTOPIA_STATUS_ERR_RESOURCE;
483             }
484 
485             psDLCInstPri->fpDLC_CGC_ResetYGain(pInstance);
486 
487             UtopiaResourceRelease(pResource);
488             return UTOPIA_STATUS_SUCCESS;
489             break;
490         }
491         case E_DLC_CMD_CGC_CHECK_Y_GAIN_IN_PQ_COM:
492         {
493             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
494             {
495                 printf("UtopiaDlcResourceObtain fail\n");
496                 return UTOPIA_STATUS_ERR_RESOURCE;
497             }
498 
499             psDLCInstPri->fpDLC_CGC_CheckYGainInPQCom(pInstance);
500 
501             UtopiaResourceRelease(pResource);
502             return UTOPIA_STATUS_SUCCESS;
503             break;
504         }
505         case E_DLC_CMD_CGC_RESET:
506         {
507             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
508             {
509                 printf("UtopiaDlcResourceObtain fail\n");
510                 return UTOPIA_STATUS_ERR_RESOURCE;
511             }
512 
513             psDLCInstPri->fpDLC_CGC_Reset(pInstance);
514 
515             UtopiaResourceRelease(pResource);
516             return UTOPIA_STATUS_SUCCESS;
517             break;
518         }
519         case E_DLC_CMD_CGC_INIT:
520         {
521             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
522             {
523                 printf("UtopiaDlcResourceObtain fail\n");
524                 return UTOPIA_STATUS_ERR_RESOURCE;
525             }
526 
527             psDLCInstPri->fpDLC_CGC_Init(pInstance);
528 
529             UtopiaResourceRelease(pResource);
530             return UTOPIA_STATUS_SUCCESS;
531             break;
532         }
533         case E_DLC_CMD_CGC_REINIT:
534         {
535             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
536             {
537                 printf("UtopiaDlcResourceObtain fail\n");
538                 return UTOPIA_STATUS_ERR_RESOURCE;
539             }
540 
541             psDLCInstPri->fpDLC_CGC_ReInit(pInstance);
542 
543             UtopiaResourceRelease(pResource);
544             return UTOPIA_STATUS_SUCCESS;
545             break;
546         }
547         case E_DLC_CMD_CGC_HANDLER:
548         {
549             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
550             {
551                 printf("UtopiaDlcResourceObtain fail\n");
552                 return UTOPIA_STATUS_ERR_RESOURCE;
553             }
554 
555             psDLCInstPri->fpDLC_CGC_Handler(pInstance);
556 
557             UtopiaResourceRelease(pResource);
558             return UTOPIA_STATUS_SUCCESS;
559             break;
560         }
561         case E_DLC_CMD_GET_LIB_VER:
562         {
563             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
564             {
565                 printf("UtopiaDlcResourceObtain fail\n");
566                 return UTOPIA_STATUS_ERR_RESOURCE;
567             }
568 
569             pstDLC_GetLibVer pDLCArgs = (pstDLC_GetLibVer)pArgs;
570             pDLCArgs->eResult = psDLCInstPri->fpDLC_GetLibVer(pInstance, pDLCArgs->ppVersion);
571 
572             UtopiaResourceRelease(pResource);
573             return UTOPIA_STATUS_SUCCESS;
574             break;
575         }
576         case E_DLC_CMD_GET_INFO:
577         {
578             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
579             {
580                 printf("UtopiaDlcResourceObtain fail\n");
581                 return UTOPIA_STATUS_ERR_RESOURCE;
582             }
583 
584             pstDLC_GetInfo pDLCArgs = (pstDLC_GetInfo)pArgs;
585             pDLCArgs->eResult = psDLCInstPri->fpDLC_GetInfo(pInstance);
586 
587             UtopiaResourceRelease(pResource);
588             return UTOPIA_STATUS_SUCCESS;
589             break;
590         }
591         case E_DLC_CMD_GET_STATUS_EX:
592         {
593             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
594             {
595                 printf("UtopiaDlcResourceObtain fail\n");
596                 return UTOPIA_STATUS_ERR_RESOURCE;
597             }
598 
599             pstDLC_GetStatus_Ex pDLCArgs = (pstDLC_GetStatus_Ex)pArgs;
600             pDLCArgs->bReturn = psDLCInstPri->fpDLC_GetStatus_Ex(pInstance, pDLCArgs->pDrvStatus ,pDLCArgs->bWindow);
601 
602             UtopiaResourceRelease(pResource);
603             return UTOPIA_STATUS_SUCCESS;
604             break;
605         }
606         case E_DLC_CMD_SET_DBG_LEVEL:
607         {
608             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
609             {
610                 printf("UtopiaDlcResourceObtain fail\n");
611                 return UTOPIA_STATUS_ERR_RESOURCE;
612             }
613 
614             pstDLC_SetDbgLevel pDLCArgs = (pstDLC_SetDbgLevel)pArgs;
615             pDLCArgs->bReturn = psDLCInstPri->fpDLC_SetDbgLevel(pInstance, pDLCArgs->u16DbgSwitch);
616 
617             UtopiaResourceRelease(pResource);
618             return UTOPIA_STATUS_SUCCESS;
619             break;
620         }
621         case E_DLC_CMD_WRITE_CURVE:
622         {
623             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
624             {
625                 printf("UtopiaDlcResourceObtain fail\n");
626                 return UTOPIA_STATUS_ERR_RESOURCE;
627             }
628 
629             pstDLC_WriteCurve pDLCArgs = (pstDLC_WriteCurve)pArgs;
630             pDLCArgs->bReturn = psDLCInstPri->fpDLC_WriteCurve(pInstance, pDLCArgs->pu8Table );
631 
632             UtopiaResourceRelease(pResource);
633             return UTOPIA_STATUS_SUCCESS;
634             break;
635         }
636         case E_DLC_CMD_WRITE_CURVE_SUB:
637         {
638             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
639             {
640                 printf("UtopiaDlcResourceObtain fail\n");
641                 return UTOPIA_STATUS_ERR_RESOURCE;
642             }
643 
644             pstDLC_WriteCurve_Sub pDLCArgs = (pstDLC_WriteCurve_Sub)pArgs;
645             pDLCArgs->bReturn = psDLCInstPri->fpDLC_WriteCurve_Sub(pInstance, pDLCArgs->pu8Table );
646 
647             UtopiaResourceRelease(pResource);
648             return UTOPIA_STATUS_SUCCESS;
649             break;
650         }
651         case E_DLC_CMD_GET_HISTOGRAM:
652         {
653             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
654             {
655                 printf("UtopiaDlcResourceObtain fail\n");
656                 return UTOPIA_STATUS_ERR_RESOURCE;
657             }
658 
659             pstDLC_GetHistogram pDLCArgs = (pstDLC_GetHistogram)pArgs;
660             pDLCArgs->bReturn = psDLCInstPri->fpDLC_GetHistogram(pInstance, pDLCArgs->pu16Histogram ,pDLCArgs->enHistogramType);
661 
662             UtopiaResourceRelease(pResource);
663             return UTOPIA_STATUS_SUCCESS;
664             break;
665         }
666         case E_DLC_CMD_DECODE_EXT_CMD:
667         {
668             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
669             {
670                 printf("UtopiaDlcResourceObtain fail\n");
671                 return UTOPIA_STATUS_ERR_RESOURCE;
672             }
673 
674             pstDLC_DecodeExtCmd pDLCArgs = (pstDLC_DecodeExtCmd)pArgs;
675             psDLCInstPri->fpDLC_DecodeExtCmd(pInstance, pDLCArgs->params );
676 
677             UtopiaResourceRelease(pResource);
678             return UTOPIA_STATUS_SUCCESS;
679             break;
680         }
681         case E_DLC_CMD_SET_CAPTURE_RANGE:
682         {
683             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
684             {
685                 printf("UtopiaDlcResourceObtain fail\n");
686                 return UTOPIA_STATUS_ERR_RESOURCE;
687             }
688 
689             pstDLC_SetCaptureRange pDLCArgs = (pstDLC_SetCaptureRange)pArgs;
690             psDLCInstPri->fpDLC_SetCaptureRange(pInstance, pDLCArgs->pu16_Range );
691 
692             UtopiaResourceRelease(pResource);
693             return UTOPIA_STATUS_SUCCESS;
694             break;
695         }
696         case E_DLC_CMD_SET_SETTING:
697         {
698             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
699             {
700                 printf("UtopiaDlcResourceObtain fail\n");
701                 return UTOPIA_STATUS_ERR_RESOURCE;
702             }
703 
704             pstDLC_SetSetting pDLCArgs = (pstDLC_SetSetting)pArgs;
705             psDLCInstPri->fpDLC_SetSetting(pInstance, pDLCArgs->DLC_MFinit);
706 
707             UtopiaResourceRelease(pResource);
708             return UTOPIA_STATUS_SUCCESS;
709             break;
710         }
711         case E_DLC_CMD_INIT:
712         {
713             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
714             {
715                 printf("UtopiaDlcResourceObtain fail\n");
716                 return UTOPIA_STATUS_ERR_RESOURCE;
717             }
718 
719             pstDLC_Init pDLCArgs = (pstDLC_Init)pArgs;
720             pDLCArgs->bReturn = psDLCInstPri->fpDLC_Init(pInstance, pDLCArgs->pstXC_DLC_InitData ,pDLCArgs->u32InitDataLen);
721 
722             UtopiaResourceRelease(pResource);
723             return UTOPIA_STATUS_SUCCESS;
724             break;
725         }
726         case E_DLC_CMD_GET_STATUS:
727         {
728             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
729             {
730                 printf("UtopiaDlcResourceObtain fail\n");
731                 return UTOPIA_STATUS_ERR_RESOURCE;
732             }
733 
734             pstDLC_GetStatus pDLCArgs = (pstDLC_GetStatus)pArgs;
735             pDLCArgs->bReturn = psDLCInstPri->fpDLC_GetStatus(pInstance, pDLCArgs->pDrvStatus ,pDLCArgs->bWindow);
736 
737             UtopiaResourceRelease(pResource);
738             return UTOPIA_STATUS_SUCCESS;
739             break;
740         }
741 
742         case E_DLC_CMD_SET_POWERSTATE:
743         {
744             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
745             {
746                 printf("UtopiaDlcResourceObtain fail\n");
747                 return UTOPIA_STATUS_ERR_RESOURCE;
748             }
749 
750             pstDLC_SetPowerState pDLCArgs = (pstDLC_SetPowerState)pArgs;
751             pDLCArgs->u32Return = psDLCInstPri->fpDLC_SetPowerState(pInstance, pDLCArgs->enPowerState);
752 
753             UtopiaResourceRelease(pResource);
754             return UTOPIA_STATUS_SUCCESS;
755             break;
756         }
757 
758         case E_DBC_CMD_DLC_INIT:
759         {
760             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
761             {
762                 printf("UtopiaDlcResourceObtain fail\n");
763                 return UTOPIA_STATUS_ERR_RESOURCE;
764             }
765 
766             pstDBC_DLC_Init pDLCArgs = (pstDBC_DLC_Init)pArgs;
767             psDLCInstPri->fpDBC_DLC_Init(pInstance, pDLCArgs->DLC_DBC_MFinit );
768 
769             UtopiaResourceRelease(pResource);
770             return UTOPIA_STATUS_SUCCESS;
771             break;
772         }
773         case E_DBC_CMD_INIT:
774         {
775             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
776             {
777                 printf("UtopiaDlcResourceObtain fail\n");
778                 return UTOPIA_STATUS_ERR_RESOURCE;
779             }
780 
781             psDLCInstPri->fpDBC_Init(pInstance );
782 
783             UtopiaResourceRelease(pResource);
784             return UTOPIA_STATUS_SUCCESS;
785             break;
786         }
787         case E_DBC_CMD_SET_STATUS:
788         {
789             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
790             {
791                 printf("UtopiaDlcResourceObtain fail\n");
792                 return UTOPIA_STATUS_ERR_RESOURCE;
793             }
794 
795             pstDBC_Setstatus pDLCArgs = (pstDBC_Setstatus)pArgs;
796             psDLCInstPri->fpDBC_Setstatus(pInstance,  pDLCArgs->bDBCEnable );
797 
798             UtopiaResourceRelease(pResource);
799             return UTOPIA_STATUS_SUCCESS;
800             break;
801         }
802         case E_DBC_CMD_GET_STATUS:
803         {
804             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
805             {
806                 printf("UtopiaDlcResourceObtain fail\n");
807                 return UTOPIA_STATUS_ERR_RESOURCE;
808             }
809 
810             pstDBC_Getstatus pDLCArgs = (pstDBC_Getstatus)pArgs;
811             pDLCArgs->bReturn = psDLCInstPri->fpDBC_Getstatus(pInstance);
812 
813             UtopiaResourceRelease(pResource);
814             return UTOPIA_STATUS_SUCCESS;
815             break;
816         }
817         case E_DBC_CMD_SET_READY:
818         {
819             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
820             {
821                 printf("UtopiaDlcResourceObtain fail\n");
822                 return UTOPIA_STATUS_ERR_RESOURCE;
823             }
824 
825             pstDBC_SetReady pDLCArgs = (pstDBC_SetReady)pArgs;
826             psDLCInstPri->fpDBC_SetReady(pInstance,  pDLCArgs->bDBCReady);
827 
828             UtopiaResourceRelease(pResource);
829             return UTOPIA_STATUS_SUCCESS;
830             break;
831         }
832         case E_DBC_CMD_SET_DEBUG_MODE:
833         {
834             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
835             {
836                 printf("UtopiaDlcResourceObtain fail\n");
837                 return UTOPIA_STATUS_ERR_RESOURCE;
838             }
839 
840             pstDBC_SetDebugMode pDLCArgs = (pstDBC_SetDebugMode)pArgs;
841             psDLCInstPri->fpDBC_SetDebugMode(pInstance,  pDLCArgs->ucDBC_DebugMode);
842 
843             UtopiaResourceRelease(pResource);
844             return UTOPIA_STATUS_SUCCESS;
845             break;
846         }
847         case E_DBC_CMD_GET_DEBUG_MODE:
848         {
849             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
850             {
851                 printf("UtopiaDlcResourceObtain fail\n");
852                 return UTOPIA_STATUS_ERR_RESOURCE;
853             }
854 
855             pstDBC_GetDebugMode pDLCArgs = (pstDBC_GetDebugMode)pArgs;
856             pDLCArgs->u8Return = psDLCInstPri->fpDBC_GetDebugMode(pInstance);
857 
858             UtopiaResourceRelease(pResource);
859             return UTOPIA_STATUS_SUCCESS;
860             break;
861         }
862         case E_DBC_CMD_UPDATE_PWM:
863         {
864             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
865             {
866                 printf("UtopiaDlcResourceObtain fail\n");
867                 return UTOPIA_STATUS_ERR_RESOURCE;
868             }
869 
870             pstDBC_UpdatePWM pDLCArgs = (pstDBC_UpdatePWM)pArgs;
871             psDLCInstPri->fpDBC_UpdatePWM(pInstance ,pDLCArgs->u8PWMvalue);
872 
873             UtopiaResourceRelease(pResource);
874             return UTOPIA_STATUS_SUCCESS;
875             break;
876         }
877         case E_DBC_CMD_HANDLER:
878         {
879             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
880             {
881                 printf("UtopiaDlcResourceObtain fail\n");
882                 return UTOPIA_STATUS_ERR_RESOURCE;
883             }
884 
885             pstDBC_Handler pDLCArgs = (pstDBC_Handler)pArgs;
886             pDLCArgs->u16Return = psDLCInstPri->fpDBC_Handler(pInstance );
887 
888             UtopiaResourceRelease(pResource);
889             return UTOPIA_STATUS_SUCCESS;
890             break;
891         }
892         case E_DBC_CMD_ADJUST_YC_GAIN:
893         {
894             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
895             {
896                 printf("UtopiaDlcResourceObtain fail\n");
897                 return UTOPIA_STATUS_ERR_RESOURCE;
898             }
899 
900             psDLCInstPri->fpDBC_AdjustYCGain(pInstance );
901 
902 
903             UtopiaResourceRelease(pResource);
904             return UTOPIA_STATUS_SUCCESS;
905             break;
906         }
907         case E_DBC_CMD_YC_GAIN_INIT:
908         {
909             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
910             {
911                 printf("UtopiaDlcResourceObtain fail\n");
912                 return UTOPIA_STATUS_ERR_RESOURCE;
913             }
914 
915             pstDBC_YCGainInit pDLCArgs = (pstDBC_YCGainInit)pArgs;
916             psDLCInstPri->fpDBC_YCGainInit(pInstance ,pDLCArgs->u8YGain_M ,pDLCArgs->u8YGain_L ,pDLCArgs->u8CGain_M ,pDLCArgs->u8CGain_L );
917 
918             UtopiaResourceRelease(pResource);
919             return UTOPIA_STATUS_SUCCESS;
920             break;
921         }
922         case E_DBC_CMD_RESET:
923         {
924             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
925             {
926                 printf("UtopiaDlcResourceObtain fail\n");
927                 return UTOPIA_STATUS_ERR_RESOURCE;
928             }
929 
930             psDLCInstPri->fpDBC_Reset(pInstance );
931 
932             UtopiaResourceRelease(pResource);
933             return UTOPIA_STATUS_SUCCESS;
934             break;
935         }
936         case E_DBC_CMD_DECODE_EXT_CMD:
937         {
938             if (UtopiaResourceObtain(pModule, E_DLC_POOL_ID_INTERNAL, &pResource) != UTOPIA_STATUS_SUCCESS)
939             {
940                 printf("UtopiaDlcResourceObtain fail\n");
941                 return UTOPIA_STATUS_ERR_RESOURCE;
942             }
943 
944             pstDBC_DecodeExtCmd pDLCArgs = (pstDBC_DecodeExtCmd)pArgs;
945             psDLCInstPri->fpDBC_DecodeExtCmd(pInstance ,pDLCArgs->params );
946 
947             UtopiaResourceRelease(pResource);
948             return UTOPIA_STATUS_SUCCESS;
949             break;
950         }
951 
952         default:
953             printf("Error DLC Command = %td\n",(ptrdiff_t)u32Cmd);
954             break;
955     }
956 	return UTOPIA_STATUS_SUCCESS;
957 }
958 
959 
DLCClose(void * pInstance)960 MS_U32 DLCClose(void* pInstance)
961 {
962 	UtopiaInstanceDelete(pInstance);
963 
964 	return TRUE;
965 }
966 
967 
968