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