xref: /utopia/UTPA2-700.0.x/modules/xc/api/ace/apiXC_Ace_v2.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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_Ace.h"
10*53ee8cc1Swenshuai.xi #include "drvACE.h"
11*53ee8cc1Swenshuai.xi #include "ACE_private.h"
12*53ee8cc1Swenshuai.xi #include "apiXC_Ace_v2.h"
13*53ee8cc1Swenshuai.xi #include "utopia.h"
14*53ee8cc1Swenshuai.xi 
15*53ee8cc1Swenshuai.xi #define MWE_TIMER           60
16*53ee8cc1Swenshuai.xi #define MWE_H_STEP          6
17*53ee8cc1Swenshuai.xi #define MWE_MOVE_RIGHT      1
18*53ee8cc1Swenshuai.xi #define MWE_MOVE_LEFT       0
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi // ========== Global definition ==========
21*53ee8cc1Swenshuai.xi void* pModuleACE = NULL;
22*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
23*53ee8cc1Swenshuai.xi void* pInstanceACEStr = NULL;
ACEStr(MS_U32 u32PowerState,void * pModule)24*53ee8cc1Swenshuai.xi MS_U32 ACEStr(MS_U32 u32PowerState, void* pModule)
25*53ee8cc1Swenshuai.xi {
26*53ee8cc1Swenshuai.xi     MS_U32 u32Return=UTOPIA_STATUS_FAIL;
27*53ee8cc1Swenshuai.xi     stACE_Set_PowerState ACEArgs;
28*53ee8cc1Swenshuai.xi 
29*53ee8cc1Swenshuai.xi     switch(u32PowerState)
30*53ee8cc1Swenshuai.xi     {
31*53ee8cc1Swenshuai.xi         case E_POWER_SUSPEND:
32*53ee8cc1Swenshuai.xi             if (pInstanceACEStr == NULL)
33*53ee8cc1Swenshuai.xi             {
34*53ee8cc1Swenshuai.xi                 if(UtopiaOpen(MODULE_ACE, &pInstanceACEStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
35*53ee8cc1Swenshuai.xi                 {
36*53ee8cc1Swenshuai.xi                     printf("UtopiaOpen ACE failed\n");
37*53ee8cc1Swenshuai.xi                     return UTOPIA_STATUS_FAIL;
38*53ee8cc1Swenshuai.xi                 }
39*53ee8cc1Swenshuai.xi             }
40*53ee8cc1Swenshuai.xi             ACEArgs.enPowerState = u32PowerState;
41*53ee8cc1Swenshuai.xi             ACEArgs.u32Return = UTOPIA_STATUS_FAIL;
42*53ee8cc1Swenshuai.xi             if(UtopiaIoctl(pInstanceACEStr, E_ACE_CMD_SET_POWERSTATE, (void*)&ACEArgs) != UTOPIA_STATUS_SUCCESS)
43*53ee8cc1Swenshuai.xi             {
44*53ee8cc1Swenshuai.xi                 printf("Obtain ACE engine fail\n");
45*53ee8cc1Swenshuai.xi             }
46*53ee8cc1Swenshuai.xi             u32Return=ACEArgs.u32Return;
47*53ee8cc1Swenshuai.xi             break;
48*53ee8cc1Swenshuai.xi         case E_POWER_RESUME:
49*53ee8cc1Swenshuai.xi             if (pInstanceACEStr == NULL)
50*53ee8cc1Swenshuai.xi             {
51*53ee8cc1Swenshuai.xi                 if(UtopiaOpen(MODULE_ACE, &pInstanceACEStr, 0, NULL) != UTOPIA_STATUS_SUCCESS)
52*53ee8cc1Swenshuai.xi                 {
53*53ee8cc1Swenshuai.xi                     printf("UtopiaOpen ACE failed\n");
54*53ee8cc1Swenshuai.xi                     return UTOPIA_STATUS_FAIL;
55*53ee8cc1Swenshuai.xi                 }
56*53ee8cc1Swenshuai.xi             }
57*53ee8cc1Swenshuai.xi             ACEArgs.enPowerState = u32PowerState;
58*53ee8cc1Swenshuai.xi             ACEArgs.u32Return = UTOPIA_STATUS_FAIL;
59*53ee8cc1Swenshuai.xi             if(UtopiaIoctl(pInstanceACEStr, E_ACE_CMD_SET_POWERSTATE, (void*)&ACEArgs) != UTOPIA_STATUS_SUCCESS)
60*53ee8cc1Swenshuai.xi             {
61*53ee8cc1Swenshuai.xi                 printf("Obtain ACE engine fail\n");
62*53ee8cc1Swenshuai.xi             }
63*53ee8cc1Swenshuai.xi             u32Return=ACEArgs.u32Return;
64*53ee8cc1Swenshuai.xi             break;
65*53ee8cc1Swenshuai.xi         default:
66*53ee8cc1Swenshuai.xi             printf("[%s][%d] PowerState:%lx not Implement now!!!\n",__FUNCTION__,__LINE__,u32PowerState);
67*53ee8cc1Swenshuai.xi             break;
68*53ee8cc1Swenshuai.xi     }
69*53ee8cc1Swenshuai.xi     return u32Return;
70*53ee8cc1Swenshuai.xi }
71*53ee8cc1Swenshuai.xi #endif
72*53ee8cc1Swenshuai.xi 
ACERegisterToUtopia(FUtopiaOpen ModuleType)73*53ee8cc1Swenshuai.xi void ACERegisterToUtopia(FUtopiaOpen ModuleType)
74*53ee8cc1Swenshuai.xi {
75*53ee8cc1Swenshuai.xi     MS_U32 u32ResourceStatusCheck[E_ACE_POOL_ID_MAX] = {0};
76*53ee8cc1Swenshuai.xi     // 1. deal with module
77*53ee8cc1Swenshuai.xi     UtopiaModuleCreate(MODULE_ACE, 0, &pModuleACE);
78*53ee8cc1Swenshuai.xi     UtopiaModuleRegister(pModuleACE);
79*53ee8cc1Swenshuai.xi     // register func for module, after register here, then ap call UtopiaOpen/UtopiaIoctl/UtopiaClose can call to these registered standard func
80*53ee8cc1Swenshuai.xi     UtopiaModuleSetupFunctionPtr(pModuleACE, (FUtopiaOpen)ACEOpen, (FUtopiaClose)ACEClose, (FUtopiaIOctl)ACEIoctl);
81*53ee8cc1Swenshuai.xi 
82*53ee8cc1Swenshuai.xi     // 2. deal with resource  , ACE
83*53ee8cc1Swenshuai.xi     void* psResource = NULL;
84*53ee8cc1Swenshuai.xi #if defined(MSOS_TYPE_LINUX_KERNEL)
85*53ee8cc1Swenshuai.xi     UtopiaModuleSetupSTRFunctionPtr(pModuleACE, (FUtopiaSTR)ACEStr);
86*53ee8cc1Swenshuai.xi     UtopiaModuleSetSTRPrivate(pModuleACE, sizeof(ACE_REGS_SAVE_AREA));
87*53ee8cc1Swenshuai.xi #endif
88*53ee8cc1Swenshuai.xi     // 3. resource can allocate private for internal use
89*53ee8cc1Swenshuai.xi     MS_U32 u32MaxDeviceNum = _XC_ACE_GET_DEVICE_NUM();
90*53ee8cc1Swenshuai.xi     MS_U32 i = 0;
91*53ee8cc1Swenshuai.xi     for(i = 0 ; i < u32MaxDeviceNum ; i++)
92*53ee8cc1Swenshuai.xi     {
93*53ee8cc1Swenshuai.xi         //Need refine
94*53ee8cc1Swenshuai.xi         if(i == 0)
95*53ee8cc1Swenshuai.xi         {
96*53ee8cc1Swenshuai.xi             UtopiaModuleAddResourceStart(pModuleACE, E_ACE_POOL_ID_INTERNAL);
97*53ee8cc1Swenshuai.xi             u32ResourceStatusCheck[E_ACE_POOL_ID_INTERNAL] = UtopiaResourceCreate("ACE0", sizeof(ACE_RESOURCE_PRIVATE), &psResource);
98*53ee8cc1Swenshuai.xi             UtopiaResourceRegister(pModuleACE, psResource, E_ACE_POOL_ID_INTERNAL);
99*53ee8cc1Swenshuai.xi             UtopiaModuleAddResourceEnd(pModuleACE, E_ACE_POOL_ID_INTERNAL);
100*53ee8cc1Swenshuai.xi         }
101*53ee8cc1Swenshuai.xi         else
102*53ee8cc1Swenshuai.xi         {
103*53ee8cc1Swenshuai.xi             UtopiaModuleAddResourceStart(pModuleACE, E_ACE_POOL_ID_INTERNAL_1);
104*53ee8cc1Swenshuai.xi             u32ResourceStatusCheck[E_ACE_POOL_ID_INTERNAL_1] = UtopiaResourceCreate("ACE1", sizeof(ACE_RESOURCE_PRIVATE), &psResource);
105*53ee8cc1Swenshuai.xi             UtopiaResourceRegister(pModuleACE, psResource, E_ACE_POOL_ID_INTERNAL_1);
106*53ee8cc1Swenshuai.xi         	UtopiaModuleAddResourceEnd(pModuleACE, E_ACE_POOL_ID_INTERNAL_1);
107*53ee8cc1Swenshuai.xi         }
108*53ee8cc1Swenshuai.xi     }
109*53ee8cc1Swenshuai.xi 
110*53ee8cc1Swenshuai.xi 
111*53ee8cc1Swenshuai.xi     //4. init resource private members here   (aka, global variable)
112*53ee8cc1Swenshuai.xi     ACE_RESOURCE_PRIVATE* pACEResourcePrivate = NULL;
113*53ee8cc1Swenshuai.xi     UtopiaResourceGetPrivate(psResource,(void**)(&pACEResourcePrivate));
114*53ee8cc1Swenshuai.xi 
115*53ee8cc1Swenshuai.xi     // shall we init first?
116*53ee8cc1Swenshuai.xi     if (u32ResourceStatusCheck[E_ACE_POOL_ID_INTERNAL] == UTOPIA_STATUS_SHM_EXIST)
117*53ee8cc1Swenshuai.xi     {
118*53ee8cc1Swenshuai.xi         // do nothing, since it is already inited
119*53ee8cc1Swenshuai.xi     }
120*53ee8cc1Swenshuai.xi     else
121*53ee8cc1Swenshuai.xi     {
122*53ee8cc1Swenshuai.xi         // Init flow control related variables here. Other global variable should be
123*53ee8cc1Swenshuai.xi         // inited in each of its init function relatively.
124*53ee8cc1Swenshuai.xi         pACEResourcePrivate->bResourceRegistered = TRUE;
125*53ee8cc1Swenshuai.xi         pACEResourcePrivate->stapiACE.g_bACEModuleInited[0] = FALSE;
126*53ee8cc1Swenshuai.xi         pACEResourcePrivate->stapiACE.g_bACEModuleInited[1] = FALSE;
127*53ee8cc1Swenshuai.xi 
128*53ee8cc1Swenshuai.xi         // apiPNL.c
129*53ee8cc1Swenshuai.xi         pACEResourcePrivate->stapiACE._MWEFunc = E_XC_ACE_MWE_MODE_OFF;
130*53ee8cc1Swenshuai.xi         pACEResourcePrivate->stapiACE._MWETimer = 0;
131*53ee8cc1Swenshuai.xi         pACEResourcePrivate->stapiACE._MWEFlag = MWE_MOVE_LEFT;
132*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.bMWEStatus = FALSE;
133*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.gMWERect;
134*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.g_XC_ACE_InitData = DISABLE;
135*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE._bMWESkipDriverSetting = FALSE;
136*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE._enMirrorMode = E_XC_ACE_MWE_MIRROR_NORMAL;
137*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.g_u8MotionStableCnt = 0;
138*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.g_u8LumaStableCnt = 0;
139*53ee8cc1Swenshuai.xi         //pACEResourcePrivate->stapiACE.g_u8FlickStableCnt = 0;
140*53ee8cc1Swenshuai.xi     }
141*53ee8cc1Swenshuai.xi 
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi 
144*53ee8cc1Swenshuai.xi }
145*53ee8cc1Swenshuai.xi 
ACEOpen(void ** ppInstance,const void * const pAttribute)146*53ee8cc1Swenshuai.xi MS_U32 ACEOpen(void** ppInstance, const void* const pAttribute)
147*53ee8cc1Swenshuai.xi {
148*53ee8cc1Swenshuai.xi     ACE_INSTANCE_PRIVATE *psACEInstPri = NULL;
149*53ee8cc1Swenshuai.xi     UtopiaInstanceCreate(sizeof(ACE_INSTANCE_PRIVATE), ppInstance);
150*53ee8cc1Swenshuai.xi     UtopiaInstanceGetPrivate(*ppInstance, (void**)&psACEInstPri);
151*53ee8cc1Swenshuai.xi     if(pAttribute != NULL)
152*53ee8cc1Swenshuai.xi     {
153*53ee8cc1Swenshuai.xi         MS_U32* u32Attr = (MS_U32*)pAttribute;
154*53ee8cc1Swenshuai.xi         psACEInstPri->u32DeviceID = *u32Attr;
155*53ee8cc1Swenshuai.xi     }
156*53ee8cc1Swenshuai.xi     else
157*53ee8cc1Swenshuai.xi     {
158*53ee8cc1Swenshuai.xi         psACEInstPri->u32DeviceID = 0;
159*53ee8cc1Swenshuai.xi     }
160*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_Init = MApi_XC_ACE_Init_U2;
161*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_Exit = MApi_XC_ACE_Exit_U2;
162*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DMS = MApi_XC_ACE_DMS_U2;
163*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetPCYUV2RGB = MApi_XC_ACE_SetPCYUV2RGB_U2;
164*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SelectYUVtoRGBMatrix = MApi_XC_ACE_SelectYUVtoRGBMatrix_U2;
165*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetColorCorrectionTable = MApi_XC_ACE_SetColorCorrectionTable_U2;
166*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetPCsRGBTable = MApi_XC_ACE_SetPCsRGBTable_U2;
167*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetColorMatrix = MApi_XC_ACE_GetColorMatrix_U2;
168*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetColorMatrix = MApi_XC_ACE_SetColorMatrix_U2;
169*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetBypassColorMatrix = MApi_XC_ACE_SetBypassColorMatrix_U2;
170*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetIHC = MApi_XC_ACE_SetIHC_U2;
171*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetICC = MApi_XC_ACE_SetICC_U2;
172*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetIBC = MApi_XC_ACE_SetIBC_U2;
173*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PatchDTGColorChecker = MApi_XC_ACE_PatchDTGColorChecker_U2;
174*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetACEInfo = MApi_XC_ACE_GetACEInfo_U2;
175*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetACEInfoEx = MApi_XC_ACE_GetACEInfoEx_U2;
176*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetContrast = MApi_XC_ACE_PicSetContrast_U2;
177*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetBrightness = MApi_XC_ACE_PicSetBrightness_U2;
178*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetBrightnessPrecise = MApi_XC_ACE_PicSetBrightnessPrecise_U2;
179*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPreYOffset = MApi_XC_ACE_PicSetPreYOffset_U2;
180*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicGetPreYOffset = MApi_XC_ACE_PicGetPreYOffset_U2;
181*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetHue = MApi_XC_ACE_PicSetHue_U2;
182*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SkipWaitVsync = MApi_XC_ACE_SkipWaitVsync_U2;
183*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetSaturation = MApi_XC_ACE_PicSetSaturation_U2;
184*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetSharpness = MApi_XC_ACE_PicSetSharpness_U2;
185*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetColorTemp = MApi_XC_ACE_PicSetColorTemp_U2;
186*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetColorTempEx = MApi_XC_ACE_PicSetColorTempEx_U2;
187*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetColorTemp_10Bits = MApi_XC_ACE_PicSetColorTemp_10Bits_U2;
188*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPostColorTemp_V02 = MApi_XC_ACE_PicSetPostColorTemp_V02_U2;
189*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetFleshTone = MApi_XC_ACE_SetFleshTone_U2;
190*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetBlackAdjust = MApi_XC_ACE_SetBlackAdjust_U2;
191*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_Set_IHC_SRAM = MApi_XC_ACE_Set_IHC_SRAM_U2;
192*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_Set_ICC_SRAM = MApi_XC_ACE_Set_ICC_SRAM_U2;
193*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_EnableMWE = MApi_XC_ACE_EnableMWE_U2;
194*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWECloneVisualEffect = MApi_XC_ACE_MWECloneVisualEffect_U2;
195*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWESetRegTable = MApi_XC_ACE_MWESetRegTable_U2;
196*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetMWELoadFromPQ = MApi_XC_ACE_SetMWELoadFromPQ_U2;
197*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWEStatus = MApi_XC_ACE_MWEStatus_U2;
198*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWEHandle = MApi_XC_ACE_MWEHandle_U2;
199*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWEFuncSel = MApi_XC_ACE_MWEFuncSel_U2;
200*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_MWESetDispWin = MApi_XC_ACE_MWESetDispWin_U2;
201*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_3DClonePQMap = MApi_XC_ACE_3DClonePQMap_U2;
202*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Blending_NRTbl = MApi_XC_ACE_DNR_Blending_NRTbl_U2;
203*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Blending_MISC = MApi_XC_ACE_DNR_Blending_MISC_U2;
204*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Blending = MApi_XC_ACE_DNR_Blending_U2;
205*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Get_PrecisionShift = MApi_XC_ACE_DNR_Get_PrecisionShift_U2;
206*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_GetMotion_Weight = MApi_XC_ACE_DNR_GetMotion_Weight_U2;
207*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_GetLuma_Weight = MApi_XC_ACE_DNR_GetLuma_Weight_U2;
208*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_GetNoise_Weight = MApi_XC_ACE_DNR_GetNoise_Weight_U2;
209*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_GetMotion = MApi_XC_ACE_DNR_GetMotion_U2;
210*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Init_Motion = MApi_XC_ACE_DNR_Init_Motion_U2;
211*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Init_Luma = MApi_XC_ACE_DNR_Init_Luma_U2;
212*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_Init_Noise = MApi_XC_ACE_DNR_Init_Noise_U2;
213*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_SetParam = MApi_XC_ACE_DNR_SetParam_U2;
214*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_GetParam = MApi_XC_ACE_DNR_GetParam_U2;
215*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_DNR_SetNRTbl = MApi_XC_ACE_DNR_SetNRTbl_U2;
216*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetLibVer = MApi_XC_ACE_GetLibVer_U2;
217*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetInfo = MApi_XC_ACE_GetInfo_U2;
218*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_GetStatus = MApi_XC_ACE_GetStatus_U2;
219*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetDbgLevel = MApi_XC_ACE_SetDbgLevel_U2;
220*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_ColorCorrectionTable = MApi_XC_ACE_ColorCorrectionTable_U2;
221*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetColorMatrixControl = MApi_XC_ACE_SetColorMatrixControl_U2;
222*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetRBChannelRange = MApi_XC_ACE_SetRBChannelRange_U2;
223*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPostColorTemp = MApi_XC_ACE_PicSetPostColorTemp_U2;
224*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPostColorTempEx = MApi_XC_ACE_PicSetPostColorTempEx_U2;
225*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPostColorTemp2 = MApi_XC_ACE_PicSetPostColorTemp2_U2;
226*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_PicSetPostColorTemp2Ex = MApi_XC_ACE_PicSetPostColorTemp2Ex_U2;
227*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetPowerState = MApi_XC_ACE_SetPowerState_U2;
228*53ee8cc1Swenshuai.xi     psACEInstPri->fpACE_SetHDRInit = MApi_XC_ACE_SetHDRInit_U2;
229*53ee8cc1Swenshuai.xi     return UTOPIA_STATUS_SUCCESS;
230*53ee8cc1Swenshuai.xi }
231*53ee8cc1Swenshuai.xi 
232*53ee8cc1Swenshuai.xi 
ACEIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)233*53ee8cc1Swenshuai.xi MS_U32 ACEIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs)
234*53ee8cc1Swenshuai.xi {
235*53ee8cc1Swenshuai.xi     void* pModule = NULL;
236*53ee8cc1Swenshuai.xi     ACE_INSTANCE_PRIVATE* psACEInstPri = NULL;
237*53ee8cc1Swenshuai.xi     UtopiaInstanceGetPrivate(pInstance, (void*)&psACEInstPri);
238*53ee8cc1Swenshuai.xi     UtopiaInstanceGetModule(pInstance, &pModule);
239*53ee8cc1Swenshuai.xi     //printf("[%s,%5d] u32Cmd type = %ld\n",__FUNCTION__,__LINE__,u32Cmd);
240*53ee8cc1Swenshuai.xi 
241*53ee8cc1Swenshuai.xi     switch(u32Cmd)
242*53ee8cc1Swenshuai.xi     {
243*53ee8cc1Swenshuai.xi         case E_ACE_CMD_INIT:
244*53ee8cc1Swenshuai.xi             {
245*53ee8cc1Swenshuai.xi                 pstACE_Init pACEArgs = (pstACE_Init)pArgs;
246*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_Init(pInstance, pACEArgs->pstXC_ACE_InitData, pACEArgs->u32InitDataLen);
247*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
248*53ee8cc1Swenshuai.xi                 break;
249*53ee8cc1Swenshuai.xi             }
250*53ee8cc1Swenshuai.xi         case E_ACE_CMD_EXIT:
251*53ee8cc1Swenshuai.xi             {
252*53ee8cc1Swenshuai.xi                 pstACE_Exit pACEArgs = (pstACE_Exit)pArgs;
253*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_Exit(pInstance);
254*53ee8cc1Swenshuai.xi 
255*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
256*53ee8cc1Swenshuai.xi                 break;
257*53ee8cc1Swenshuai.xi             }
258*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DMS:
259*53ee8cc1Swenshuai.xi             {
260*53ee8cc1Swenshuai.xi                 pstACE_DMS pACEArgs = (pstACE_DMS)pArgs;
261*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DMS(pInstance, pACEArgs->eWindow, pACEArgs->bisATV);
262*53ee8cc1Swenshuai.xi 
263*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
264*53ee8cc1Swenshuai.xi                 break;
265*53ee8cc1Swenshuai.xi             }
266*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETPCYUV2RGB:
267*53ee8cc1Swenshuai.xi             {
268*53ee8cc1Swenshuai.xi                 pstACE_SetPCYUV2RGB pACEArgs = (pstACE_SetPCYUV2RGB)pArgs;
269*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetPCYUV2RGB(pInstance, pACEArgs->eWindow, pACEArgs->bEnable);
270*53ee8cc1Swenshuai.xi 
271*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
272*53ee8cc1Swenshuai.xi                 break;
273*53ee8cc1Swenshuai.xi             }
274*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SELECTYUVTORGBMATRIX:
275*53ee8cc1Swenshuai.xi             {
276*53ee8cc1Swenshuai.xi                 pstACE_SelectYUVtoRGBMatrix pACEArgs = (pstACE_SelectYUVtoRGBMatrix)pArgs;
277*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SelectYUVtoRGBMatrix(pInstance, pACEArgs->eWindow, pACEArgs->ucMatrix, pACEArgs->psUserYUVtoRGBMatrix);
278*53ee8cc1Swenshuai.xi 
279*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
280*53ee8cc1Swenshuai.xi                 break;
281*53ee8cc1Swenshuai.xi             }
282*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETCOLORCORRECTIONTABLE:
283*53ee8cc1Swenshuai.xi             {
284*53ee8cc1Swenshuai.xi                 pstACE_SetColorCorrectionTable pACEArgs = (pstACE_SetColorCorrectionTable)pArgs;
285*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetColorCorrectionTable(pInstance, pACEArgs->bScalerWin);
286*53ee8cc1Swenshuai.xi 
287*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
288*53ee8cc1Swenshuai.xi                 break;
289*53ee8cc1Swenshuai.xi             }
290*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETPCSRGBTABLE:
291*53ee8cc1Swenshuai.xi             {
292*53ee8cc1Swenshuai.xi                 pstACE_SetPCsRGBTable pACEArgs = (pstACE_SetPCsRGBTable)pArgs;
293*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetPCsRGBTable(pInstance, pACEArgs->bScalerWin);
294*53ee8cc1Swenshuai.xi 
295*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
296*53ee8cc1Swenshuai.xi                 break;
297*53ee8cc1Swenshuai.xi             }
298*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETCOLORMATRIX:
299*53ee8cc1Swenshuai.xi             {
300*53ee8cc1Swenshuai.xi                 pstACE_ColorMatrix pACEArgs = (pstACE_ColorMatrix)pArgs;
301*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_GetColorMatrix(pInstance, pACEArgs->eWindow, pACEArgs->pu16Matrix);
302*53ee8cc1Swenshuai.xi 
303*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
304*53ee8cc1Swenshuai.xi                 break;
305*53ee8cc1Swenshuai.xi             }
306*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETCOLORMATRIX:
307*53ee8cc1Swenshuai.xi             {
308*53ee8cc1Swenshuai.xi                 pstACE_ColorMatrix pACEArgs = (pstACE_ColorMatrix)pArgs;
309*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetColorMatrix(pInstance, pACEArgs->eWindow, pACEArgs->pu16Matrix);
310*53ee8cc1Swenshuai.xi 
311*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
312*53ee8cc1Swenshuai.xi                 break;
313*53ee8cc1Swenshuai.xi             }
314*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETBYPASSCOLORMATRIX:
315*53ee8cc1Swenshuai.xi             {
316*53ee8cc1Swenshuai.xi                 pstACE_SetBypassColorMatrix pACEArgs = (pstACE_SetBypassColorMatrix)pArgs;
317*53ee8cc1Swenshuai.xi                 pACEArgs->eResult = psACEInstPri->fpACE_SetBypassColorMatrix(pInstance, pACEArgs->bEnable);
318*53ee8cc1Swenshuai.xi 
319*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
320*53ee8cc1Swenshuai.xi                 break;
321*53ee8cc1Swenshuai.xi             }
322*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETIHC:
323*53ee8cc1Swenshuai.xi             {
324*53ee8cc1Swenshuai.xi                 pstACE_SetIHC pACEArgs = (pstACE_SetIHC)pArgs;
325*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetIHC(pInstance, pACEArgs->bScalerWin, pACEArgs->eIHC, pACEArgs->u8Val);
326*53ee8cc1Swenshuai.xi 
327*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
328*53ee8cc1Swenshuai.xi                 break;
329*53ee8cc1Swenshuai.xi             }
330*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETICC:
331*53ee8cc1Swenshuai.xi             {
332*53ee8cc1Swenshuai.xi                 pstACE_SetICC pACEArgs = (pstACE_SetICC)pArgs;
333*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetICC(pInstance, pACEArgs->bScalerWin, pACEArgs->eICC, pACEArgs->u8Val);
334*53ee8cc1Swenshuai.xi 
335*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
336*53ee8cc1Swenshuai.xi                 break;
337*53ee8cc1Swenshuai.xi             }
338*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETIBC:
339*53ee8cc1Swenshuai.xi             {
340*53ee8cc1Swenshuai.xi                 pstACE_SetIBC pACEArgs = (pstACE_SetIBC)pArgs;
341*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetIBC(pInstance, pACEArgs->bScalerWin, pACEArgs->eIBC, pACEArgs->u8Val);
342*53ee8cc1Swenshuai.xi 
343*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
344*53ee8cc1Swenshuai.xi                 break;
345*53ee8cc1Swenshuai.xi             }
346*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PATCHDTGCOLORCHECKER:
347*53ee8cc1Swenshuai.xi             {
348*53ee8cc1Swenshuai.xi                 pstACE_PatchDTGColorChecker pACEArgs = (pstACE_PatchDTGColorChecker)pArgs;
349*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PatchDTGColorChecker(pInstance, pACEArgs->u8Mode);
350*53ee8cc1Swenshuai.xi 
351*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
352*53ee8cc1Swenshuai.xi                 break;
353*53ee8cc1Swenshuai.xi             }
354*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETACEINFO:
355*53ee8cc1Swenshuai.xi             {
356*53ee8cc1Swenshuai.xi                 pstACE_GetACEInfo pACEArgs = (pstACE_GetACEInfo)pArgs;
357*53ee8cc1Swenshuai.xi                 pACEArgs->u16Return = psACEInstPri->fpACE_GetACEInfo(pInstance, pACEArgs->bWindow, pACEArgs->eXCACEInfoType);
358*53ee8cc1Swenshuai.xi 
359*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
360*53ee8cc1Swenshuai.xi                 break;
361*53ee8cc1Swenshuai.xi             }
362*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETACEINFOEX:
363*53ee8cc1Swenshuai.xi             {
364*53ee8cc1Swenshuai.xi                 pstACE_GetACEInfoEx pACEArgs = (pstACE_GetACEInfoEx)pArgs;
365*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_GetACEInfoEx(pInstance, pACEArgs->bWindow, pACEArgs->pInfoEx);
366*53ee8cc1Swenshuai.xi 
367*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
368*53ee8cc1Swenshuai.xi                 break;
369*53ee8cc1Swenshuai.xi             }
370*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETCONTRAST:
371*53ee8cc1Swenshuai.xi             {
372*53ee8cc1Swenshuai.xi                 pstACE_PicSetContrast pACEArgs = (pstACE_PicSetContrast)pArgs;
373*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetContrast(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->u8Contrast);
374*53ee8cc1Swenshuai.xi 
375*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
376*53ee8cc1Swenshuai.xi                 break;
377*53ee8cc1Swenshuai.xi             }
378*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETBRIGHTNESS:
379*53ee8cc1Swenshuai.xi             {
380*53ee8cc1Swenshuai.xi                 pstACE_PicSetBrightness pACEArgs = (pstACE_PicSetBrightness)pArgs;
381*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetBrightness(pInstance, pACEArgs->eWindow, pACEArgs->u8Brightness_R, pACEArgs->u8Brightness_G, pACEArgs->u8Brightness_B);
382*53ee8cc1Swenshuai.xi 
383*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
384*53ee8cc1Swenshuai.xi                 break;
385*53ee8cc1Swenshuai.xi             }
386*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETBRIGHTNESSPRECISE:
387*53ee8cc1Swenshuai.xi             {
388*53ee8cc1Swenshuai.xi                 pstACE_PicSetBrightnessPrecise pACEArgs = (pstACE_PicSetBrightnessPrecise)pArgs;
389*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetBrightnessPrecise(pInstance, pACEArgs->eWindow, pACEArgs->u16Brightness_R, pACEArgs->u16Brightness_G, pACEArgs->u16Brightness_B);
390*53ee8cc1Swenshuai.xi 
391*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
392*53ee8cc1Swenshuai.xi                 break;
393*53ee8cc1Swenshuai.xi             }
394*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSET_PRE_Y_OFFSET:
395*53ee8cc1Swenshuai.xi             {
396*53ee8cc1Swenshuai.xi                 pstACE_PreYOffset pstACEArgs = (pstACE_PreYOffset)pArgs;
397*53ee8cc1Swenshuai.xi                 MS_BOOL bResult = psACEInstPri->fpACE_PicSetPreYOffset(pInstance, pstACEArgs->eWindow, pstACEArgs->u8PreYOffset);
398*53ee8cc1Swenshuai.xi 
399*53ee8cc1Swenshuai.xi                 if (bResult)
400*53ee8cc1Swenshuai.xi                 {
401*53ee8cc1Swenshuai.xi                     return UTOPIA_STATUS_SUCCESS;
402*53ee8cc1Swenshuai.xi                 }
403*53ee8cc1Swenshuai.xi                 else
404*53ee8cc1Swenshuai.xi                 {
405*53ee8cc1Swenshuai.xi                     return UTOPIA_STATUS_FAIL;
406*53ee8cc1Swenshuai.xi                 }
407*53ee8cc1Swenshuai.xi             }
408*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICGET_PRE_Y_OFFSET:
409*53ee8cc1Swenshuai.xi             {
410*53ee8cc1Swenshuai.xi                 pstACE_PreYOffset pstACEArgs = (pstACE_PreYOffset)pArgs;
411*53ee8cc1Swenshuai.xi                 pstACEArgs->u8PreYOffset = psACEInstPri->fpACE_PicGetPreYOffset(pInstance, pstACEArgs->eWindow);
412*53ee8cc1Swenshuai.xi 
413*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
414*53ee8cc1Swenshuai.xi             }
415*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETHUE:
416*53ee8cc1Swenshuai.xi             {
417*53ee8cc1Swenshuai.xi                 pstACE_PicSetHue pACEArgs = (pstACE_PicSetHue)pArgs;
418*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetHue(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->u8Hue);
419*53ee8cc1Swenshuai.xi 
420*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
421*53ee8cc1Swenshuai.xi                 break;
422*53ee8cc1Swenshuai.xi             }
423*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SKIPWAITVSYNC:
424*53ee8cc1Swenshuai.xi             {
425*53ee8cc1Swenshuai.xi                 pstACE_SkipWaitVsync pACEArgs = (pstACE_SkipWaitVsync)pArgs;
426*53ee8cc1Swenshuai.xi                 pACEArgs->eResult = psACEInstPri->fpACE_SkipWaitVsync(pInstance, pACEArgs->eWindow, pACEArgs->bIsSkipWaitVsyn);
427*53ee8cc1Swenshuai.xi 
428*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
429*53ee8cc1Swenshuai.xi                 break;
430*53ee8cc1Swenshuai.xi             }
431*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETSATURATION:
432*53ee8cc1Swenshuai.xi             {
433*53ee8cc1Swenshuai.xi                 pstACE_PicSetSaturation pACEArgs = (pstACE_PicSetSaturation)pArgs;
434*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetSaturation(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->u8Saturation);
435*53ee8cc1Swenshuai.xi 
436*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
437*53ee8cc1Swenshuai.xi                 break;
438*53ee8cc1Swenshuai.xi             }
439*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETSHARPNESS:
440*53ee8cc1Swenshuai.xi             {
441*53ee8cc1Swenshuai.xi                 pstACE_PicSetSharpness pACEArgs = (pstACE_PicSetSharpness)pArgs;
442*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetSharpness(pInstance, pACEArgs->eWindow, pACEArgs->u8Sharpness );
443*53ee8cc1Swenshuai.xi 
444*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
445*53ee8cc1Swenshuai.xi                 break;
446*53ee8cc1Swenshuai.xi             }
447*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETCOLORTEMP:
448*53ee8cc1Swenshuai.xi             {
449*53ee8cc1Swenshuai.xi                 pstACE_PicSetColorTemp pACEArgs = (pstACE_PicSetColorTemp)pArgs;
450*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetColorTemp(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->pstColorTemp);
451*53ee8cc1Swenshuai.xi 
452*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
453*53ee8cc1Swenshuai.xi                 break;
454*53ee8cc1Swenshuai.xi             }
455*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETCOLORTEMPEX:
456*53ee8cc1Swenshuai.xi             {
457*53ee8cc1Swenshuai.xi                 pstACE_PicSetColorTempEx pACEArgs = (pstACE_PicSetColorTempEx)pArgs;
458*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetColorTempEx(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->pstColorTemp);
459*53ee8cc1Swenshuai.xi 
460*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
461*53ee8cc1Swenshuai.xi                 break;
462*53ee8cc1Swenshuai.xi             }
463*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETCOLORTEMP_10BITS:
464*53ee8cc1Swenshuai.xi             {
465*53ee8cc1Swenshuai.xi                 pstACE_PicSetColorTempEx pACEArgs = (pstACE_PicSetColorTempEx)pArgs;
466*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetColorTemp_10Bits(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->pstColorTemp);
467*53ee8cc1Swenshuai.xi 
468*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
469*53ee8cc1Swenshuai.xi                 break;
470*53ee8cc1Swenshuai.xi             }
471*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETPOSTCOLORTEMP_V02:
472*53ee8cc1Swenshuai.xi             {
473*53ee8cc1Swenshuai.xi                 pstACE_PicSetPostColorTemp_V02 pACEArgs = (pstACE_PicSetPostColorTemp_V02)pArgs;
474*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetPostColorTemp_V02(pInstance, pACEArgs->eWindow, pACEArgs->pstColorTemp);
475*53ee8cc1Swenshuai.xi 
476*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
477*53ee8cc1Swenshuai.xi                 break;
478*53ee8cc1Swenshuai.xi             }
479*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETFLESHTONE:
480*53ee8cc1Swenshuai.xi             {
481*53ee8cc1Swenshuai.xi                 pstACE_SetFleshTone pACEArgs = (pstACE_SetFleshTone)pArgs;
482*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetFleshTone(pInstance, pACEArgs->eWindow, pACEArgs->bEn, pACEArgs->u8FleshTone);
483*53ee8cc1Swenshuai.xi 
484*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
485*53ee8cc1Swenshuai.xi                 break;
486*53ee8cc1Swenshuai.xi             }
487*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETBLACKADJUST:
488*53ee8cc1Swenshuai.xi             {
489*53ee8cc1Swenshuai.xi                 pstACE_SetBlackAdjust pACEArgs = (pstACE_SetBlackAdjust)pArgs;
490*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetBlackAdjust(pInstance, pACEArgs->eWindow, pACEArgs->u8BlackAdjust);
491*53ee8cc1Swenshuai.xi 
492*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
493*53ee8cc1Swenshuai.xi                 break;
494*53ee8cc1Swenshuai.xi             }
495*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SET_IHC_SRAM:
496*53ee8cc1Swenshuai.xi             {
497*53ee8cc1Swenshuai.xi                 pstACE_Set_IHC_SRAM pACEArgs = (pstACE_Set_IHC_SRAM)pArgs;
498*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_Set_IHC_SRAM(pInstance, pACEArgs->pBuf, pACEArgs->u16ByteSize);
499*53ee8cc1Swenshuai.xi 
500*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
501*53ee8cc1Swenshuai.xi                 break;
502*53ee8cc1Swenshuai.xi             }
503*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SET_ICC_SRAM:
504*53ee8cc1Swenshuai.xi             {
505*53ee8cc1Swenshuai.xi                 pstACE_Set_ICC_SRAM pACEArgs = (pstACE_Set_ICC_SRAM)pArgs;
506*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_Set_ICC_SRAM(pInstance, pACEArgs->pBuf, pACEArgs->u16ByteSize);
507*53ee8cc1Swenshuai.xi 
508*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
509*53ee8cc1Swenshuai.xi                 break;
510*53ee8cc1Swenshuai.xi             }
511*53ee8cc1Swenshuai.xi         case E_ACE_CMD_ENABLEMWE:
512*53ee8cc1Swenshuai.xi             {
513*53ee8cc1Swenshuai.xi                 pstACE_EnableMWE pACEArgs = (pstACE_EnableMWE)pArgs;
514*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_EnableMWE(pInstance, pACEArgs->bEnable);
515*53ee8cc1Swenshuai.xi 
516*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
517*53ee8cc1Swenshuai.xi                 break;
518*53ee8cc1Swenshuai.xi             }
519*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWECLONEVISUALEFFECT:
520*53ee8cc1Swenshuai.xi             {
521*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_MWECloneVisualEffect(pInstance);
522*53ee8cc1Swenshuai.xi 
523*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
524*53ee8cc1Swenshuai.xi                 break;
525*53ee8cc1Swenshuai.xi             }
526*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWESETREGTABLE:
527*53ee8cc1Swenshuai.xi             {
528*53ee8cc1Swenshuai.xi                 pstACE_MWESetRegTable pACEArgs = (pstACE_MWESetRegTable)pArgs;
529*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_MWESetRegTable(pInstance, pACEArgs->pMWETable);
530*53ee8cc1Swenshuai.xi 
531*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
532*53ee8cc1Swenshuai.xi                 break;
533*53ee8cc1Swenshuai.xi             }
534*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETMWELOADFROMPQ:
535*53ee8cc1Swenshuai.xi             {
536*53ee8cc1Swenshuai.xi                 pstACE_SetMWELoadFromPQ pACEArgs = (pstACE_SetMWELoadFromPQ)pArgs;
537*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetMWELoadFromPQ(pInstance, pACEArgs->bEnable);
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
540*53ee8cc1Swenshuai.xi                 break;
541*53ee8cc1Swenshuai.xi             }
542*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWESTATUS:
543*53ee8cc1Swenshuai.xi             {
544*53ee8cc1Swenshuai.xi                 pstACE_MWEStatus pACEArgs = (pstACE_MWEStatus)pArgs;
545*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_MWEStatus(pInstance);
546*53ee8cc1Swenshuai.xi 
547*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
548*53ee8cc1Swenshuai.xi                 break;
549*53ee8cc1Swenshuai.xi             }
550*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWEHANDLE:
551*53ee8cc1Swenshuai.xi             {
552*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_MWEHandle(pInstance);
553*53ee8cc1Swenshuai.xi 
554*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
555*53ee8cc1Swenshuai.xi                 break;
556*53ee8cc1Swenshuai.xi             }
557*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWEFUNCSEL:
558*53ee8cc1Swenshuai.xi             {
559*53ee8cc1Swenshuai.xi                 pstACE_MWEFuncSel pACEArgs = (pstACE_MWEFuncSel)pArgs;
560*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_MWEFuncSel(pInstance, pACEArgs->eWindow, pACEArgs->mwe_func);
561*53ee8cc1Swenshuai.xi 
562*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
563*53ee8cc1Swenshuai.xi                 break;
564*53ee8cc1Swenshuai.xi             }
565*53ee8cc1Swenshuai.xi         case E_ACE_CMD_MWESETDISPWIN:
566*53ee8cc1Swenshuai.xi             {
567*53ee8cc1Swenshuai.xi                 pstACE_MWESetDispWin pACEArgs = (pstACE_MWESetDispWin)pArgs;
568*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_MWESetDispWin(pInstance, pACEArgs->u16MWE_Disp_Hstart, pACEArgs->u16MWE_Disp_Vstart, pACEArgs->u16MWE_Disp_Width, pACEArgs->u16MWE_Disp_Height);
569*53ee8cc1Swenshuai.xi 
570*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
571*53ee8cc1Swenshuai.xi                 break;
572*53ee8cc1Swenshuai.xi             }
573*53ee8cc1Swenshuai.xi         case E_ACE_CMD_3DCLONEPQMAP:
574*53ee8cc1Swenshuai.xi             {
575*53ee8cc1Swenshuai.xi                 pstACE_3DClonePQMap pACEArgs = (pstACE_3DClonePQMap)pArgs;
576*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_3DClonePQMap(pInstance, pACEArgs->enWeaveType);
577*53ee8cc1Swenshuai.xi 
578*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
579*53ee8cc1Swenshuai.xi                 break;
580*53ee8cc1Swenshuai.xi             }
581*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_BLENDING_NRTBL:
582*53ee8cc1Swenshuai.xi             {
583*53ee8cc1Swenshuai.xi                 pstACE_DNR_Blending_NRTbl pACEArgs = (pstACE_DNR_Blending_NRTbl)pArgs;
584*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_Blending_NRTbl(pInstance,
585*53ee8cc1Swenshuai.xi                         pACEArgs->pu8NewNR,
586*53ee8cc1Swenshuai.xi                         pACEArgs->u8Weight,
587*53ee8cc1Swenshuai.xi                         pACEArgs->u8Step,
588*53ee8cc1Swenshuai.xi                         pACEArgs->pu16PreY0,
589*53ee8cc1Swenshuai.xi                         pACEArgs->pu16PreY1,
590*53ee8cc1Swenshuai.xi                         pACEArgs->pu8NRTBL);
591*53ee8cc1Swenshuai.xi 
592*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
593*53ee8cc1Swenshuai.xi                 break;
594*53ee8cc1Swenshuai.xi             }
595*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_BLENDING_MISC:
596*53ee8cc1Swenshuai.xi             {
597*53ee8cc1Swenshuai.xi                 pstACE_DNR_Blending_MISC pACEArgs = (pstACE_DNR_Blending_MISC)pArgs;
598*53ee8cc1Swenshuai.xi                 pACEArgs->u16Return = psACEInstPri->fpACE_DNR_Blending_MISC(pInstance, pACEArgs->u8NewItem, pACEArgs->u16PreItem, pACEArgs->u8Weight, pACEArgs->u8Step);
599*53ee8cc1Swenshuai.xi 
600*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
601*53ee8cc1Swenshuai.xi                 break;
602*53ee8cc1Swenshuai.xi             }
603*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_BLENDING:
604*53ee8cc1Swenshuai.xi             {
605*53ee8cc1Swenshuai.xi                 pstACE_DNR_Blending pACEArgs = (pstACE_DNR_Blending)pArgs;
606*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_Blending(pInstance, pACEArgs->u8NewItem, pACEArgs->u16PreItem, pACEArgs->u8Weight);
607*53ee8cc1Swenshuai.xi 
608*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
609*53ee8cc1Swenshuai.xi                 break;
610*53ee8cc1Swenshuai.xi             }
611*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GET_PRECISIONSHIFT:
612*53ee8cc1Swenshuai.xi             {
613*53ee8cc1Swenshuai.xi                 pstACE_DNR_Get_PrecisionShift pACEArgs = (pstACE_DNR_Get_PrecisionShift)pArgs;
614*53ee8cc1Swenshuai.xi                 pACEArgs->u16Return = psACEInstPri->fpACE_DNR_Get_PrecisionShift(pInstance);
615*53ee8cc1Swenshuai.xi 
616*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
617*53ee8cc1Swenshuai.xi                 break;
618*53ee8cc1Swenshuai.xi             }
619*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GETMOTION_WEIGHT:
620*53ee8cc1Swenshuai.xi             {
621*53ee8cc1Swenshuai.xi                 pstACE_DNR_GetMotion_Weight pACEArgs = (pstACE_DNR_GetMotion_Weight)pArgs;
622*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_GetMotion_Weight(pInstance,
623*53ee8cc1Swenshuai.xi                         pACEArgs->u8CurMotion,
624*53ee8cc1Swenshuai.xi                         pACEArgs->u8PreMotion,
625*53ee8cc1Swenshuai.xi                         pACEArgs->u8CurMotionLvl,
626*53ee8cc1Swenshuai.xi                         pACEArgs->u8PreMotionLvl,
627*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFlick_Thre,
628*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFilick_Step);
629*53ee8cc1Swenshuai.xi 
630*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
631*53ee8cc1Swenshuai.xi                 break;
632*53ee8cc1Swenshuai.xi             }
633*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GETLUMA_WEIGHT:
634*53ee8cc1Swenshuai.xi             {
635*53ee8cc1Swenshuai.xi                 pstACE_DNR_GetLuma_Weight pACEArgs = (pstACE_DNR_GetLuma_Weight)pArgs;
636*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_GetLuma_Weight(pInstance,
637*53ee8cc1Swenshuai.xi                         pACEArgs->u8CurAvgLuma,
638*53ee8cc1Swenshuai.xi                         pACEArgs->u8PreAvgLuam,
639*53ee8cc1Swenshuai.xi                         pACEArgs->u8CurLumaLvl,
640*53ee8cc1Swenshuai.xi                         pACEArgs->u8PreLumaLvl,
641*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFlick_Th,
642*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFlick_Step);
643*53ee8cc1Swenshuai.xi 
644*53ee8cc1Swenshuai.xi 
645*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
646*53ee8cc1Swenshuai.xi                 break;
647*53ee8cc1Swenshuai.xi             }
648*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GETNOISE_WEIGHT:
649*53ee8cc1Swenshuai.xi             {
650*53ee8cc1Swenshuai.xi                 pstACE_DNR_GetNoise_Weight pACEArgs = (pstACE_DNR_GetNoise_Weight)pArgs;
651*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_GetNoise_Weight(pInstance,
652*53ee8cc1Swenshuai.xi                         pACEArgs->u8CurNoise,
653*53ee8cc1Swenshuai.xi                         pACEArgs->u8PreNoise,
654*53ee8cc1Swenshuai.xi                         pACEArgs->u8Range,
655*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFlick_Th,
656*53ee8cc1Swenshuai.xi                         pACEArgs->u8DeFlick_Step);
657*53ee8cc1Swenshuai.xi 
658*53ee8cc1Swenshuai.xi 
659*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
660*53ee8cc1Swenshuai.xi                 break;
661*53ee8cc1Swenshuai.xi             }
662*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GETMOTION:
663*53ee8cc1Swenshuai.xi             {
664*53ee8cc1Swenshuai.xi                 pstACE_DNR_GetMotion pACEArgs = (pstACE_DNR_GetMotion)pArgs;
665*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_GetMotion(pInstance);
666*53ee8cc1Swenshuai.xi 
667*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
668*53ee8cc1Swenshuai.xi                 break;
669*53ee8cc1Swenshuai.xi             }
670*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_INIT_MOTION:
671*53ee8cc1Swenshuai.xi             {
672*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_Init_Motion(pInstance);
673*53ee8cc1Swenshuai.xi 
674*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
675*53ee8cc1Swenshuai.xi                 break;
676*53ee8cc1Swenshuai.xi             }
677*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_INIT_LUMA:
678*53ee8cc1Swenshuai.xi             {
679*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_Init_Luma(pInstance);
680*53ee8cc1Swenshuai.xi 
681*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
682*53ee8cc1Swenshuai.xi                 break;
683*53ee8cc1Swenshuai.xi             }
684*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_INIT_NOISE:
685*53ee8cc1Swenshuai.xi             {
686*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_Init_Noise(pInstance);
687*53ee8cc1Swenshuai.xi 
688*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
689*53ee8cc1Swenshuai.xi                 break;
690*53ee8cc1Swenshuai.xi             }
691*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_SETPARAM:
692*53ee8cc1Swenshuai.xi             {
693*53ee8cc1Swenshuai.xi                 pstACE_DNR_SetParam pACEArgs = (pstACE_DNR_SetParam)pArgs;
694*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_SetParam(pInstance, pACEArgs->eWindow, pACEArgs->eParam, pACEArgs->u16val);
695*53ee8cc1Swenshuai.xi 
696*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
697*53ee8cc1Swenshuai.xi                 break;
698*53ee8cc1Swenshuai.xi             }
699*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_GETPARAM:
700*53ee8cc1Swenshuai.xi             {
701*53ee8cc1Swenshuai.xi                 pstACE_DNR_GetParam pACEArgs = (pstACE_DNR_GetParam)pArgs;
702*53ee8cc1Swenshuai.xi                 pACEArgs->u8Return = psACEInstPri->fpACE_DNR_GetParam(pInstance, pACEArgs->eWindow, pACEArgs->eParam);
703*53ee8cc1Swenshuai.xi 
704*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
705*53ee8cc1Swenshuai.xi                 break;
706*53ee8cc1Swenshuai.xi             }
707*53ee8cc1Swenshuai.xi         case E_ACE_CMD_DNR_SETNRTBL:
708*53ee8cc1Swenshuai.xi             {
709*53ee8cc1Swenshuai.xi                 pstACE_DNR_SetNRTbl pACEArgs = (pstACE_DNR_SetNRTbl)pArgs;
710*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_DNR_SetNRTbl(pInstance, pACEArgs->pu8Tbl);
711*53ee8cc1Swenshuai.xi 
712*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
713*53ee8cc1Swenshuai.xi                 break;
714*53ee8cc1Swenshuai.xi             }
715*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETLIBVER:
716*53ee8cc1Swenshuai.xi             {
717*53ee8cc1Swenshuai.xi                 pstACE_GetLibVer pACEArgs = (pstACE_GetLibVer)pArgs;
718*53ee8cc1Swenshuai.xi                 pACEArgs->eResult = psACEInstPri->fpACE_GetLibVer(pInstance, pACEArgs->ppVersion);
719*53ee8cc1Swenshuai.xi 
720*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
721*53ee8cc1Swenshuai.xi                 break;
722*53ee8cc1Swenshuai.xi             }
723*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETINFO:
724*53ee8cc1Swenshuai.xi             {
725*53ee8cc1Swenshuai.xi                 pstACE_GetInfo pACEArgs = (pstACE_GetInfo)pArgs;
726*53ee8cc1Swenshuai.xi                 pACEArgs->pstApiInfo = psACEInstPri->fpACE_GetInfo(pInstance);
727*53ee8cc1Swenshuai.xi 
728*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
729*53ee8cc1Swenshuai.xi                 break;
730*53ee8cc1Swenshuai.xi             }
731*53ee8cc1Swenshuai.xi         case E_ACE_CMD_GETSTATUS:
732*53ee8cc1Swenshuai.xi             {
733*53ee8cc1Swenshuai.xi                 pstACE_GetStatus pACEArgs = (pstACE_GetStatus)pArgs;
734*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_GetStatus(pInstance, pACEArgs->pDrvStatus, pACEArgs->bWindow);
735*53ee8cc1Swenshuai.xi 
736*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
737*53ee8cc1Swenshuai.xi                 break;
738*53ee8cc1Swenshuai.xi             }
739*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETDBGLEVEL:
740*53ee8cc1Swenshuai.xi             {
741*53ee8cc1Swenshuai.xi                 pstACE_SetDbgLevel pACEArgs = (pstACE_SetDbgLevel)pArgs;
742*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetDbgLevel(pInstance, pACEArgs->u16DbgSwitch);
743*53ee8cc1Swenshuai.xi 
744*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
745*53ee8cc1Swenshuai.xi                 break;
746*53ee8cc1Swenshuai.xi             }
747*53ee8cc1Swenshuai.xi         case E_ACE_CMD_COLORCORRECTIONTABLE:
748*53ee8cc1Swenshuai.xi             {
749*53ee8cc1Swenshuai.xi                 pstACE_ColorCorrectionTable pACEArgs = (pstACE_ColorCorrectionTable)pArgs;
750*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_ColorCorrectionTable(pInstance, pACEArgs->bScalerWin, pACEArgs->psColorCorrectionTable);
751*53ee8cc1Swenshuai.xi 
752*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
753*53ee8cc1Swenshuai.xi                 break;
754*53ee8cc1Swenshuai.xi             }
755*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETCOLORMATRIXCONTROL:
756*53ee8cc1Swenshuai.xi             {
757*53ee8cc1Swenshuai.xi                 pstACE_SetColorMatrixControl pACEArgs = (pstACE_SetColorMatrixControl)pArgs;
758*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetColorMatrixControl(pInstance, pACEArgs->bScalerWin, pACEArgs->bEnable);
759*53ee8cc1Swenshuai.xi 
760*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
761*53ee8cc1Swenshuai.xi                 break;
762*53ee8cc1Swenshuai.xi             }
763*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SETRBCHANNELRANGE:
764*53ee8cc1Swenshuai.xi             {
765*53ee8cc1Swenshuai.xi                 pstACE_SetRBChannelRange pACEArgs = (pstACE_SetRBChannelRange)pArgs;
766*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_SetRBChannelRange(pInstance, pACEArgs->bScalerWin, pACEArgs->bRange);
767*53ee8cc1Swenshuai.xi 
768*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
769*53ee8cc1Swenshuai.xi                 break;
770*53ee8cc1Swenshuai.xi             }
771*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETPOSTCOLORTEMP:
772*53ee8cc1Swenshuai.xi             {
773*53ee8cc1Swenshuai.xi                 pstACE_PicSetPostColorTemp pACEArgs = (pstACE_PicSetPostColorTemp)pArgs;
774*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetPostColorTemp(pInstance, pACEArgs->eWindow, pACEArgs->pstColorTemp);
775*53ee8cc1Swenshuai.xi 
776*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
777*53ee8cc1Swenshuai.xi                 break;
778*53ee8cc1Swenshuai.xi             }
779*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETPOSTCOLORTEMPEX:
780*53ee8cc1Swenshuai.xi             {
781*53ee8cc1Swenshuai.xi                 pstACE_PicSetPostColorTempEx pACEArgs = (pstACE_PicSetPostColorTempEx)pArgs;
782*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetPostColorTempEx(pInstance, pACEArgs->eWindow, pACEArgs->pstColorTemp);
783*53ee8cc1Swenshuai.xi 
784*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
785*53ee8cc1Swenshuai.xi                 break;
786*53ee8cc1Swenshuai.xi             }
787*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETPOSTCOLORTEMP2:
788*53ee8cc1Swenshuai.xi             {
789*53ee8cc1Swenshuai.xi                 pstACE_PicSetColorTemp pACEArgs = (pstACE_PicSetColorTemp)pArgs;
790*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetPostColorTemp2(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->pstColorTemp);
791*53ee8cc1Swenshuai.xi 
792*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
793*53ee8cc1Swenshuai.xi                 break;
794*53ee8cc1Swenshuai.xi             }
795*53ee8cc1Swenshuai.xi         case E_ACE_CMD_PICSETPOSTCOLORTEMP2EX:
796*53ee8cc1Swenshuai.xi             {
797*53ee8cc1Swenshuai.xi                 pstACE_PicSetPostColorTempEx pACEArgs = (pstACE_PicSetPostColorTempEx)pArgs;
798*53ee8cc1Swenshuai.xi                 psACEInstPri->fpACE_PicSetPostColorTemp2Ex(pInstance, pACEArgs->eWindow, pACEArgs->bUseYUVSpace, pACEArgs->pstColorTemp);
799*53ee8cc1Swenshuai.xi 
800*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
801*53ee8cc1Swenshuai.xi                 break;
802*53ee8cc1Swenshuai.xi             }
803*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SET_POWERSTATE:
804*53ee8cc1Swenshuai.xi             {
805*53ee8cc1Swenshuai.xi                 pstACE_Set_PowerState pACEArgs = (pstACE_Set_PowerState)pArgs;
806*53ee8cc1Swenshuai.xi                 pACEArgs->u32Return = psACEInstPri->fpACE_SetPowerState(pInstance, pACEArgs->enPowerState);
807*53ee8cc1Swenshuai.xi 
808*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
809*53ee8cc1Swenshuai.xi                 break;
810*53ee8cc1Swenshuai.xi             }
811*53ee8cc1Swenshuai.xi         case E_ACE_CMD_SET_HDR_INFO:
812*53ee8cc1Swenshuai.xi             {
813*53ee8cc1Swenshuai.xi                 pstACE_HDRInitData pACEArgs = (pstACE_HDRInitData)pArgs;
814*53ee8cc1Swenshuai.xi                 pACEArgs->bReturn = psACEInstPri->fpACE_SetHDRInit(pInstance, pACEArgs->pstHDRInitData);
815*53ee8cc1Swenshuai.xi 
816*53ee8cc1Swenshuai.xi                 return UTOPIA_STATUS_SUCCESS;
817*53ee8cc1Swenshuai.xi                 break;
818*53ee8cc1Swenshuai.xi             }
819*53ee8cc1Swenshuai.xi 
820*53ee8cc1Swenshuai.xi         default:
821*53ee8cc1Swenshuai.xi             printf("Error Command = %td\n",(ptrdiff_t)u32Cmd);
822*53ee8cc1Swenshuai.xi             break;
823*53ee8cc1Swenshuai.xi 
824*53ee8cc1Swenshuai.xi     }
825*53ee8cc1Swenshuai.xi     return UTOPIA_STATUS_SUCCESS;
826*53ee8cc1Swenshuai.xi }
827*53ee8cc1Swenshuai.xi 
ACEClose(void * pInstance)828*53ee8cc1Swenshuai.xi MS_U32 ACEClose(void* pInstance)
829*53ee8cc1Swenshuai.xi {
830*53ee8cc1Swenshuai.xi     UtopiaInstanceDelete(pInstance);
831*53ee8cc1Swenshuai.xi 
832*53ee8cc1Swenshuai.xi     return UTOPIA_STATUS_SUCCESS;
833*53ee8cc1Swenshuai.xi }
834*53ee8cc1Swenshuai.xi 
835