xref: /utopia/UTPA2-700.0.x/modules/xc/utopia_adaption/ace/ACE_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/kernel.h>
2 #include <linux/string.h>
3 #include <linux/slab.h>
4 #include <linux/uaccess.h>
5 #include <linux/compat.h>
6 
7 #include "MsTypes.h"
8 //#include <stdio.h>
9 //#include "utopia_DDI.h"
10 #include "utopia.h"
11 #include "apiXC_Ace.h"
12 #include "apiXC_Ace_v2.h"
13 
14 #include "utopia_adp.h"
15 #include "ACE_adp.h"
16 
17 #ifdef MSOS_TYPE_LINUX_KERNEL
18 #define CPY_FROM_USER(a,b,c)                                    if(copy_from_user(a,b,c) != 0) { break; }
19 #define CPY_to_USER(a,b,c)                                      if(copy_to_user(a,b,c) != 0) { break; }
20 #else
21 #define CPY_FROM_USER                                           memcpy
22 #define CPY_to_USER                                             memcpy
23 #endif  //MSOS_TYPE_LINUX_KERNEL
24 
25 #if (defined(MSOS_TYPE_LINUX_KERNEL) && defined(CONFIG_COMPAT))
26 #define COMPAT_PTR(a)                                           compat_ptr(a)
27 #define COMPAT_NEXT_PTR(a)                                      (*((MS_U32*)compat_ptr((unsigned long)a)))
28 #define IS_CMP_TASK()                                             is_compat_task()
29 
30 #define CMP_CPY_FROM_USER(a,b,c)                                if(copy_from_user(a, compat_ptr((unsigned long)b), c) != 0)  {  break; }
31 #define CMP_CPY_TO_USER(a,b,c)                                  if(copy_to_user(compat_ptr((unsigned long)a), b, c) != 0) { break;  }
32 
33 #else
34 #define COMPAT_PTR(a)                                           (a)
35 #define COMPAT_NEXT_PTR(a)                                      (*((MS_U32*)a))
36 #define IS_CMP_TASK()                                             (FALSE)
37 #define CMP_CPY_FROM_USER                                       CPY_FROM_USER
38 #define CMP_CPY_TO_USER                                         CPY_to_USER
39 #endif //CONFIG_COMPAT
40 
41 #ifdef CONFIG_COMPAT
42 typedef struct
43 {
44     compat_uptr_t pstXC_ACE_InitData;
45     MS_U32 u32InitDataLen;
46     MS_BOOL bReturn;
47 } _cmp_stACE_Init;
48 typedef struct
49 {
50     MS_BOOL    eWindow;                  ///< initial eWindow
51 
52     compat_uptr_t    S16ColorCorrectionMatrix; ///< initial Color Correction Matrix
53 
54     MS_U32 u32AlignmentDummy0;
55 
56     compat_uptr_t    S16RGB;                   ///< initial RGB
57 
58     MS_U32 u32AlignmentDummy1;
59 
60     MS_U16     u16MWEHstart;             ///< initial Horizontal start
61 
62 
63     MS_U16     u16MWEVstart;             ///< initial Vertical start
64 
65     MS_U16     u16MWEWidth;              ///< initial MWE Width
66 
67     MS_U16     u16MWEHeight;             ///< initial MWE Height
68 
69     MS_U16     u16MWE_Disp_Hstart;       ///< initial MWE Display Horizontal start
70 
71     MS_U16     u16MWE_Disp_Vstart;       ///< initial MWE Display Vertical start
72 
73     MS_U16     u16MWE_Disp_Width;        ///< initial MWE Display width
74 
75     MS_U16     u16MWE_Disp_Height;       ///< initial MWE Display height
76 
77     MS_BOOL    bMWE_Enable;              ///< Enable or not
78 } _cmp_XC_ACE_InitData;
79 #endif
80 //Function parameter
81 UADP_SPT_NAMEnNXT_DEF(XC_ACE_InitData,3);
82 UADP_SPT_NAMEnNXT_DEF(ACE_INIT,1);
83 
84 UADP_STRUCT_POINTER_TABLE spt_ACE_EXIT[10];
85 UADP_STRUCT_POINTER_TABLE spt_ACE_DMS[10];
86 UADP_STRUCT_POINTER_TABLE spt_ACE_SETPCYUV2RGB[10];
87 UADP_STRUCT_POINTER_TABLE spt_ACE_YUVtoRGBMatrix[10];
88 UADP_STRUCT_POINTER_TABLE spt_ACE_SELECTYUVTORGBMATRIX[10];
89 UADP_STRUCT_POINTER_TABLE spt_ACE_SETCOLORCORRECTIONTABLE[10];
90 UADP_STRUCT_POINTER_TABLE spt_ACE_SETPCSRGBTABLE[10];
91 UADP_STRUCT_POINTER_TABLE spt_ACE_GETCOLORMATRIX[10];
92 UADP_STRUCT_POINTER_TABLE spt_ACE_SETCOLORMATRIX[10];
93 UADP_STRUCT_POINTER_TABLE spt_ACE_SETBYPASSCOLORMATRIX[10];
94 UADP_STRUCT_POINTER_TABLE spt_ACE_SETIHC[10];
95 UADP_STRUCT_POINTER_TABLE spt_ACE_PATCHDTGCOLORCHECKER[10];
96 UADP_STRUCT_POINTER_TABLE spt_ACE_GETACEINFO[10];
97 UADP_STRUCT_POINTER_TABLE spt_ACE_GETACEINFOEX[10];
98 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETCONTRAST[10];
99 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETBRIGHTNESS[10];
100 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETBRIGHTNESSPRECISE[10];
101 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSET_PRE_Y_OFFSET[10];
102 UADP_STRUCT_POINTER_TABLE spt_ACE_PICGET_PRE_Y_OFFSET[10];
103 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETHUE[10];
104 UADP_STRUCT_POINTER_TABLE spt_ACE_SKIPWAITVSYNC[10];
105 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETSATURATION[10];
106 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETSHARPNESS[10];
107 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETCOLORTEMP[10];
108 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETCOLORTEMPEX[10];
109 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETPOSTCOLORTEMP_V02[10];
110 UADP_STRUCT_POINTER_TABLE spt_ACE_SETFLESHTONE[10];
111 UADP_STRUCT_POINTER_TABLE spt_ACE_SETBLACKADJUST[10];
112 UADP_STRUCT_POINTER_TABLE spt_ACE_SET_IHC_SRAM[10];
113 UADP_STRUCT_POINTER_TABLE spt_ACE_SET_ICC_SRAM[10];
114 UADP_STRUCT_POINTER_TABLE spt_ACE_ENABLEMWE[10];
115 UADP_STRUCT_POINTER_TABLE spt_ACE_MWESETMIRRORMODE[10];
116 UADP_STRUCT_POINTER_TABLE spt_ACE_MWESETREGTABLE[10];
117 UADP_STRUCT_POINTER_TABLE spt_ACE_SETMWELOADFROMPQ[10];
118 UADP_STRUCT_POINTER_TABLE spt_ACE_MWESTATUS[10];
119 UADP_STRUCT_POINTER_TABLE spt_ACE_MWEFUNCSEL[10];
120 UADP_STRUCT_POINTER_TABLE spt_ACE_MWESETDISPWIN[10];
121 UADP_STRUCT_POINTER_TABLE spt_ACE_3DCLONEPQMAP[10];
122 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_BLENDING_NRTBL[10];
123 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_BLENDING_MISC[10];
124 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_BLENDING[10];
125 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GET_PRECISIONSHIFT[10];
126 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GETMOTION_WEIGHT[10];
127 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GETLUMA_WEIGHT[10];
128 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GETNOISE_WEIGHT[10];
129 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GETMOTION[10];
130 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_SETPARAM[10];
131 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_GETPARAM[10];
132 UADP_STRUCT_POINTER_TABLE spt_ACE_DNR_SETNRTBL[10];
133 UADP_STRUCT_POINTER_TABLE spt_ACE_GETINFO[10];
134 UADP_STRUCT_POINTER_TABLE spt_ACE_GETSTATUS[10];
135 UADP_STRUCT_POINTER_TABLE spt_ACE_SETDBGLEVEL[10];
136 UADP_SPT_NAMEnNXT_DEF(ColorCorrectionTable,0);
137 UADP_SPT_NAMEnNXT_DEF(ACE_COLORCORRECTIONTABLE,1);
138 UADP_STRUCT_POINTER_TABLE spt_ACE_SETCOLORMATRIXCONTROL[10];
139 UADP_STRUCT_POINTER_TABLE spt_ACE_SETRBCHANNELRANGE[10];
140 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETPOSTCOLORTEMP[10];
141 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETPOSTCOLORTEMPEX[10];
142 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETPOSTCOLORTEMP2[10];
143 UADP_STRUCT_POINTER_TABLE spt_ACE_PICSETPOSTCOLORTEMP2EX[10];
144 UADP_STRUCT_POINTER_TABLE spt_ACE_SET_POWERSTATE[10];
145 
146 //Function parameter's pointer
147 UADP_STRUCT_POINTER_TABLE spt_DrvACE_InitData[10];
148 UADP_STRUCT_POINTER_TABLE spt_DrvACE_InfoEx[10];
149 UADP_STRUCT_POINTER_TABLE spt_DrvACE_Color_Temp[10];
150 UADP_STRUCT_POINTER_TABLE spt_DrvACE_Color_TempEx[10];
151 UADP_STRUCT_POINTER_TABLE spt_DrvACE_Color_TempEx2[10];
152 UADP_STRUCT_POINTER_TABLE spt_DrvACE_TAB_Info[10];
153 UADP_STRUCT_POINTER_TABLE spt_DrvACE_ApiStatus[10];
154 UADP_STRUCT_POINTER_TABLE spt_DrvACE_Color_TempEx2Ex[10];
155 UADP_STRUCT_POINTER_TABLE spt_DrvACE_ApiInfo[10];
156 
157 
ACE_adp_Init(FUtopiaIOctl * pIoctl)158 MS_U32 ACE_adp_Init(FUtopiaIOctl* pIoctl)
159 {
160 
161 //set table
162     MS_U32 temp = 0;
163 
164     //Function parameter
165     //stACE_Init* pACE_INIT = (stACE_Init*)temp;
166     //stACE_Exit* pACE_EXIT = (stACE_Exit*)temp;
167     //stACE_DMS* pACE_DMS = (stACE_DMS*)temp;
168     //stACE_SetPCYUV2RGB* pACE_SETPCYUV2RGB = (stACE_SetPCYUV2RGB*)temp;
169     //stACE_SelectYUVtoRGBMatrix* pACE_SELECTYUVTORGBMATRIX = (stACE_SelectYUVtoRGBMatrix*)temp;
170     //stACE_SetColorCorrectionTable* pACE_SETCOLORCORRECTIONTABLE = (stACE_SetColorCorrectionTable*)temp;
171     //stACE_SetPCsRGBTable* pACE_SETPCSRGBTABLE = (stACE_SetPCsRGBTable*)temp;
172     //stACE_ColorMatrix* pACE_GETCOLORMATRIX = (stACE_ColorMatrix*)temp;
173     //stACE_ColorMatrix* pACE_SETCOLORMATRIX = (stACE_ColorMatrix*)temp;
174     //stACE_SetBypassColorMatrix* pACE_SETBYPASSCOLORMATRIX = (stACE_SetBypassColorMatrix*)temp;
175     //stACE_SetIHC* pACE_SETIHC = (stACE_SetIHC*)temp;
176     //stACE_PatchDTGColorChecker* pACE_PATCHDTGCOLORCHECKER = (stACE_PatchDTGColorChecker*)temp;
177     //stACE_GetACEInfo* pACE_GETACEINFO = (stACE_GetACEInfo*)temp;
178     stACE_GetACEInfoEx* pACE_GETACEINFOEX = (stACE_GetACEInfoEx*)temp;
179     //stACE_PicSetContrast* pACE_PICSETCONTRAST = (stACE_PicSetContrast*)temp;
180     //stACE_PicSetBrightness* pACE_PICSETBRIGHTNESS = (stACE_PicSetBrightness*)temp;
181     //stACE_PicSetBrightnessPrecise* pACE_PICSETBRIGHTNESSPRECISE = (stACE_PicSetBrightnessPrecise*)temp;
182     //stACE_PreYOffset* pACE_PICSET_PRE_Y_OFFSET = (stACE_PreYOffset*)temp;
183     //stACE_PreYOffset* pACE_PICGET_PRE_Y_OFFSET = (stACE_PreYOffset*)temp;
184     //stACE_PicSetHue* pACE_PICSETHUE = (stACE_PicSetHue*)temp;
185     //stACE_SkipWaitVsync* pACE_SKIPWAITVSYNC = (stACE_SkipWaitVsync*)temp;
186     //stACE_PicSetSaturation* pACE_PICSETSATURATION = (stACE_PicSetSaturation*)temp;
187     //stACE_PicSetSharpness* pACE_PICSETSHARPNESS = (stACE_PicSetSharpness*)temp;
188     stACE_PicSetColorTemp* pACE_PICSETCOLORTEMP = (stACE_PicSetColorTemp*)temp;
189     stACE_PicSetColorTempEx* pACE_PICSETCOLORTEMPEX = (stACE_PicSetColorTempEx*)temp;
190     stACE_PicSetPostColorTemp_V02* pACE_PICSETPOSTCOLORTEMP_V02 = (stACE_PicSetPostColorTemp_V02*)temp;
191     //stACE_SetFleshTone* pACE_SETFLESHTONE = (stACE_SetFleshTone*)temp;
192     //stACE_SetBlackAdjust* pACE_SETBLACKADJUST = (stACE_SetBlackAdjust*)temp;
193     //stACE_Set_IHC_SRAM* pACE_SET_IHC_SRAM = (stACE_Set_IHC_SRAM*)temp;
194     //stACE_Set_ICC_SRAM* pACE_SET_ICC_SRAM = (stACE_Set_ICC_SRAM*)temp;
195     //stACE_EnableMWE* pACE_ENABLEMWE = (stACE_EnableMWE*)temp;
196     //stACE_MWESetMirrorMode* pACE_MWESETMIRRORMODE = (stACE_MWESetMirrorMode*)temp;
197     stACE_MWESetRegTable* pACE_MWESETREGTABLE = (stACE_MWESetRegTable*)temp;
198     //stACE_SetMWELoadFromPQ* pACE_SETMWELOADFROMPQ = (stACE_SetMWELoadFromPQ*)temp;
199     //stACE_MWEStatus* pACE_MWESTATUS = (stACE_MWEStatus*)temp;
200     //stACE_MWEFuncSel* pACE_MWEFUNCSEL = (stACE_MWEFuncSel*)temp;
201     //stACE_MWESetDispWin* pACE_MWESETDISPWIN = (stACE_MWESetDispWin*)temp;
202     //stACE_3DClonePQMap* pACE_3DCLONEPQMAP = (stACE_3DClonePQMap*)temp;
203     //stACE_DNR_Blending_NRTbl* pACE_DNR_BLENDING_NRTBL = (stACE_DNR_Blending_NRTbl*)temp;
204     //stACE_DNR_Blending_MISC* pACE_DNR_BLENDING_MISC = (stACE_DNR_Blending_MISC*)temp;
205     //stACE_DNR_Blending* pACE_DNR_BLENDING = (stACE_DNR_Blending*)temp;
206     //stACE_DNR_Get_PrecisionShift* pACE_DNR_GET_PRECISIONSHIFT = (stACE_DNR_Get_PrecisionShift*)temp;
207     //stACE_DNR_GetMotion_Weight* pACE_DNR_GETMOTION_WEIGHT = (stACE_DNR_GetMotion_Weight*)temp;
208     //stACE_DNR_GetLuma_Weight* pACE_DNR_GETLUMA_WEIGHT = (stACE_DNR_GetLuma_Weight*)temp;
209     //stACE_DNR_GetNoise_Weight* pACE_DNR_GETNOISE_WEIGHT = (stACE_DNR_GetNoise_Weight*)temp;
210     //stACE_DNR_GetMotion* pACE_DNR_GETMOTION = (stACE_DNR_GetMotion*)temp;
211     //stACE_DNR_SetParam* pACE_DNR_SETPARAM = (stACE_DNR_SetParam*)temp;
212     //stACE_DNR_GetParam* pACE_DNR_GETPARAM = (stACE_DNR_GetParam*)temp;
213     //stACE_DNR_SetNRTbl* pACE_DNR_SETNRTBL = (stACE_DNR_SetNRTbl*)temp;
214     stACE_GetInfo* pACE_GETINFO = (stACE_GetInfo*)temp;
215     stACE_GetStatus* pACE_GETSTATUS = (stACE_GetStatus*)temp;
216     //stACE_SetDbgLevel* pACE_SETDBGLEVEL = (stACE_SetDbgLevel*)temp;
217     //stACE_SetColorCorrectionTable* pACE_COLORCORRECTIONTABLE = (stACE_SetColorCorrectionTable*)temp;
218     //stACE_SetColorMatrixControl* pACE_SETCOLORMATRIXCONTROL = (stACE_SetColorMatrixControl*)temp;
219     //stACE_SetRBChannelRange* pACE_SETRBCHANNELRANGE = (stACE_SetRBChannelRange*)temp;
220     stACE_PicSetPostColorTemp* pACE_PICSETPOSTCOLORTEMP = (stACE_PicSetPostColorTemp*)temp;
221     stACE_PicSetPostColorTempEx* pACE_PICSETPOSTCOLORTEMPEX = (stACE_PicSetPostColorTempEx*)temp;
222     stACE_PicSetPostColorTemp* pACE_PICSETPOSTCOLORTEMP2 = (stACE_PicSetPostColorTemp*)temp;
223     stACE_PicSetPostColorTempEx* pACE_PICSETPOSTCOLORTEMP2EX = (stACE_PicSetPostColorTempEx*)temp;
224     //stACE_Set_PowerState* pACE_SET_POWERSTATE = (stACE_Set_PowerState*)temp;
225 
226     //Function parameter's pointer
227     //XC_ACE_InitData* pDrvACE_InitData = (XC_ACE_InitData*)temp;
228     //XC_ACE_InfoEx* pDrvACE_InfoEx = (XC_ACE_InfoEx*)temp;
229     //XC_ACE_color_temp* pDrvACE_color_temp = (XC_ACE_color_temp*)temp;
230     //XC_ACE_color_temp_ex* pDrvACE_color_temp_ex = (XC_ACE_color_temp_ex*)temp;
231     //XC_ACE_color_temp_ex2* pDrvACE_color_temp_ex2 = (XC_ACE_color_temp_ex2*)temp;
232     //XC_ACE_TAB_Info* pDrvACE_TAB_Info = (XC_ACE_TAB_Info*)temp;
233     //XC_ACE_ApiStatus* pDrvACE_ApiStatus = (XC_ACE_ApiStatus*)temp;
234     //XC_ACE_ApiInfo* pDrvACE_ApiInfo = (XC_ACE_ApiInfo*)temp;
235 
236     //Function parameter
237     UADPBypassSetSPT(&spt_ACE_YUVtoRGBMatrix[0],UADP_SPT_SELF_SIZE,0, sizeof(MS_S16)*9);
238     UADPBypassSetSPT(&spt_ACE_YUVtoRGBMatrix[1],UADP_SPT_END , 0, 0);
239 
240     UADP_SPT_BGN(&spt_ColorCorrectionTable[0],sizeof(MS_S16) * 32);
241     UADP_SPT_FIN(&spt_ColorCorrectionTable[1]);
242     UADP_SPT_NAME2NXT(XC_ACE_InitData,XC_ACE_InitData,S16ColorCorrectionMatrix,ColorCorrectionTable,S16RGB,ACE_YUVtoRGBMatrix);
243     UADP_SPT_NAME1NXT(ACE_INIT,stACE_Init,pstXC_ACE_InitData,XC_ACE_InitData);
244 
245     UADPBypassSetSPT(&spt_ACE_EXIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_Exit));
246     UADPBypassSetSPT(&spt_ACE_EXIT[1],UADP_SPT_END , 0, 0);
247 
248     UADPBypassSetSPT(&spt_ACE_DMS[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DMS));
249     UADPBypassSetSPT(&spt_ACE_DMS[1],UADP_SPT_END , 0, 0);
250 
251     UADPBypassSetSPT(&spt_ACE_SETPCYUV2RGB[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetPCYUV2RGB));
252     UADPBypassSetSPT(&spt_ACE_SETPCYUV2RGB[1],UADP_SPT_END , 0, 0);
253 
254     UADP_SPT_NAME1NXT(ACE_SELECTYUVTORGBMATRIX,stACE_SelectYUVtoRGBMatrix,psUserYUVtoRGBMatrix,ACE_YUVtoRGBMatrix);
255 
256     UADPBypassSetSPT(&spt_ACE_SETCOLORCORRECTIONTABLE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetColorCorrectionTable));
257     UADPBypassSetSPT(&spt_ACE_SETCOLORCORRECTIONTABLE[1],UADP_SPT_END , 0, 0);
258 
259     UADPBypassSetSPT(&spt_ACE_SETPCSRGBTABLE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetPCsRGBTable));
260     UADPBypassSetSPT(&spt_ACE_SETPCSRGBTABLE[1],UADP_SPT_END , 0, 0);
261 
262     UADPBypassSetSPT(&spt_ACE_GETCOLORMATRIX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_ColorMatrix));
263     UADPBypassSetSPT(&spt_ACE_GETCOLORMATRIX[1],UADP_SPT_END , 0, 0);
264 
265     UADPBypassSetSPT(&spt_ACE_SETCOLORMATRIX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_ColorMatrix));
266     UADPBypassSetSPT(&spt_ACE_SETCOLORMATRIX[1],UADP_SPT_END , 0, 0);
267 
268     UADPBypassSetSPT(&spt_ACE_SETBYPASSCOLORMATRIX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetBypassColorMatrix));
269     UADPBypassSetSPT(&spt_ACE_SETBYPASSCOLORMATRIX[1],UADP_SPT_END , 0, 0);
270 
271     UADPBypassSetSPT(&spt_ACE_SETIHC[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetIHC));
272     UADPBypassSetSPT(&spt_ACE_SETIHC[1],UADP_SPT_END , 0, 0);
273 
274     UADPBypassSetSPT(&spt_ACE_PATCHDTGCOLORCHECKER[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PatchDTGColorChecker));
275     UADPBypassSetSPT(&spt_ACE_PATCHDTGCOLORCHECKER[1],UADP_SPT_END , 0, 0);
276 
277     UADPBypassSetSPT(&spt_ACE_GETACEINFO[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_GetACEInfo));
278     UADPBypassSetSPT(&spt_ACE_GETACEINFO[1],UADP_SPT_END , 0, 0);
279 
280     UADPBypassSetSPT(&spt_ACE_GETACEINFOEX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_GetACEInfoEx));
281     UADPBypassSetSPT(&spt_ACE_GETACEINFOEX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_GETACEINFOEX->pInfoEx)) - (unsigned long)pACE_GETACEINFOEX), (unsigned long)&spt_DrvACE_InfoEx);
282     UADPBypassSetSPT(&spt_ACE_GETACEINFOEX[2],UADP_SPT_END , 0, 0);
283 
284     UADPBypassSetSPT(&spt_ACE_PICSETCONTRAST[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetContrast));
285     UADPBypassSetSPT(&spt_ACE_PICSETCONTRAST[1],UADP_SPT_END , 0, 0);
286 
287     UADPBypassSetSPT(&spt_ACE_PICSETBRIGHTNESS[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetBrightness));
288     UADPBypassSetSPT(&spt_ACE_PICSETBRIGHTNESS[1],UADP_SPT_END , 0, 0);
289 
290     UADPBypassSetSPT(&spt_ACE_PICSETBRIGHTNESSPRECISE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetBrightnessPrecise));
291     UADPBypassSetSPT(&spt_ACE_PICSETBRIGHTNESSPRECISE[1],UADP_SPT_END , 0, 0);
292 
293     UADPBypassSetSPT(&spt_ACE_PICSET_PRE_Y_OFFSET[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PreYOffset));
294     UADPBypassSetSPT(&spt_ACE_PICSET_PRE_Y_OFFSET[1],UADP_SPT_END , 0, 0);
295 
296     UADPBypassSetSPT(&spt_ACE_PICGET_PRE_Y_OFFSET[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PreYOffset));
297     UADPBypassSetSPT(&spt_ACE_PICGET_PRE_Y_OFFSET[1],UADP_SPT_END , 0, 0);
298 
299     UADPBypassSetSPT(&spt_ACE_PICSETHUE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetHue));
300     UADPBypassSetSPT(&spt_ACE_PICSETHUE[1],UADP_SPT_END , 0, 0);
301 
302     UADPBypassSetSPT(&spt_ACE_SKIPWAITVSYNC[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SkipWaitVsync));
303     UADPBypassSetSPT(&spt_ACE_SKIPWAITVSYNC[1],UADP_SPT_END , 0, 0);
304 
305     UADPBypassSetSPT(&spt_ACE_PICSETSATURATION[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetSaturation));
306     UADPBypassSetSPT(&spt_ACE_PICSETSATURATION[1],UADP_SPT_END , 0, 0);
307 
308     UADPBypassSetSPT(&spt_ACE_PICSETSHARPNESS[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetSharpness));
309     UADPBypassSetSPT(&spt_ACE_PICSETSHARPNESS[1],UADP_SPT_END , 0, 0);
310 
311     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMP[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetColorTemp));
312     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMP[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETCOLORTEMP->pstColorTemp)) - (unsigned long)pACE_PICSETCOLORTEMP), (unsigned long)&spt_DrvACE_Color_Temp);
313     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMP[2],UADP_SPT_END , 0, 0);
314 
315     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMPEX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetColorTempEx));
316     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMPEX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETCOLORTEMPEX->pstColorTemp)) - (unsigned long)pACE_PICSETCOLORTEMPEX), (unsigned long)&spt_DrvACE_Color_TempEx);
317     UADPBypassSetSPT(&spt_ACE_PICSETCOLORTEMPEX[2],UADP_SPT_END , 0, 0);
318 
319     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP_V02[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetPostColorTemp_V02));
320     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP_V02[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETPOSTCOLORTEMP_V02->pstColorTemp)) - (unsigned long)pACE_PICSETPOSTCOLORTEMP_V02), (unsigned long)&spt_DrvACE_Color_TempEx2);
321     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP_V02[2],UADP_SPT_END , 0, 0);
322 
323     UADPBypassSetSPT(&spt_ACE_SETFLESHTONE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetFleshTone));
324     UADPBypassSetSPT(&spt_ACE_SETFLESHTONE[1],UADP_SPT_END , 0, 0);
325 
326     UADPBypassSetSPT(&spt_ACE_SETBLACKADJUST[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetBlackAdjust));
327     UADPBypassSetSPT(&spt_ACE_SETBLACKADJUST[1],UADP_SPT_END , 0, 0);
328 
329     UADPBypassSetSPT(&spt_ACE_SET_IHC_SRAM[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_Set_IHC_SRAM));
330     UADPBypassSetSPT(&spt_ACE_SET_IHC_SRAM[1],UADP_SPT_END , 0, 0);
331 
332     UADPBypassSetSPT(&spt_ACE_SET_ICC_SRAM[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_Set_ICC_SRAM));
333     UADPBypassSetSPT(&spt_ACE_SET_ICC_SRAM[1],UADP_SPT_END , 0, 0);
334 
335     UADPBypassSetSPT(&spt_ACE_ENABLEMWE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_EnableMWE));
336     UADPBypassSetSPT(&spt_ACE_ENABLEMWE[1],UADP_SPT_END , 0, 0);
337 
338     UADPBypassSetSPT(&spt_ACE_MWESETMIRRORMODE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_MWESetMirrorMode));
339     UADPBypassSetSPT(&spt_ACE_MWESETMIRRORMODE[1],UADP_SPT_END , 0, 0);
340 
341     UADPBypassSetSPT(&spt_ACE_MWESETREGTABLE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_MWESetRegTable));
342     UADPBypassSetSPT(&spt_ACE_MWESETREGTABLE[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_MWESETREGTABLE->pMWETable)) - (unsigned long)pACE_MWESETREGTABLE), (unsigned long)&spt_DrvACE_TAB_Info);
343     UADPBypassSetSPT(&spt_ACE_MWESETREGTABLE[2],UADP_SPT_END , 0, 0);
344 
345     UADPBypassSetSPT(&spt_ACE_SETMWELOADFROMPQ[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetMWELoadFromPQ));
346     UADPBypassSetSPT(&spt_ACE_SETMWELOADFROMPQ[1],UADP_SPT_END , 0, 0);
347 
348     UADPBypassSetSPT(&spt_ACE_MWESTATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_MWEStatus));
349     UADPBypassSetSPT(&spt_ACE_MWESTATUS[1],UADP_SPT_END , 0, 0);
350 
351     UADPBypassSetSPT(&spt_ACE_MWEFUNCSEL[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_MWEFuncSel));
352     UADPBypassSetSPT(&spt_ACE_MWEFUNCSEL[1],UADP_SPT_END , 0, 0);
353 
354     UADPBypassSetSPT(&spt_ACE_MWESETDISPWIN[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_MWESetDispWin));
355     UADPBypassSetSPT(&spt_ACE_MWESETDISPWIN[1],UADP_SPT_END , 0, 0);
356 
357     UADPBypassSetSPT(&spt_ACE_3DCLONEPQMAP[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_3DClonePQMap));
358     UADPBypassSetSPT(&spt_ACE_3DCLONEPQMAP[1],UADP_SPT_END , 0, 0);
359 
360     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING_NRTBL[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_Blending_NRTbl));
361     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING_NRTBL[1],UADP_SPT_END , 0, 0);
362 
363     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING_MISC[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_Blending_MISC));
364     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING_MISC[1],UADP_SPT_END , 0, 0);
365 
366     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_Blending));
367     UADPBypassSetSPT(&spt_ACE_DNR_BLENDING[1],UADP_SPT_END , 0, 0);
368 
369     UADPBypassSetSPT(&spt_ACE_DNR_GET_PRECISIONSHIFT[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_Get_PrecisionShift));
370     UADPBypassSetSPT(&spt_ACE_DNR_GET_PRECISIONSHIFT[1],UADP_SPT_END , 0, 0);
371 
372     UADPBypassSetSPT(&spt_ACE_DNR_GETMOTION_WEIGHT[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_GetMotion_Weight));
373     UADPBypassSetSPT(&spt_ACE_DNR_GETMOTION_WEIGHT[1],UADP_SPT_END , 0, 0);
374 
375     UADPBypassSetSPT(&spt_ACE_DNR_GETLUMA_WEIGHT[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_GetLuma_Weight));
376     UADPBypassSetSPT(&spt_ACE_DNR_GETLUMA_WEIGHT[1],UADP_SPT_END , 0, 0);
377 
378     UADPBypassSetSPT(&spt_ACE_DNR_GETNOISE_WEIGHT[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_GetNoise_Weight));
379     UADPBypassSetSPT(&spt_ACE_DNR_GETNOISE_WEIGHT[1],UADP_SPT_END , 0, 0);
380 
381     UADPBypassSetSPT(&spt_ACE_DNR_GETMOTION[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_GetMotion));
382     UADPBypassSetSPT(&spt_ACE_DNR_GETMOTION[1],UADP_SPT_END , 0, 0);
383 
384     UADPBypassSetSPT(&spt_ACE_DNR_SETPARAM[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_SetParam));
385     UADPBypassSetSPT(&spt_ACE_DNR_SETPARAM[1],UADP_SPT_END , 0, 0);
386 
387     UADPBypassSetSPT(&spt_ACE_DNR_GETPARAM[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_GetParam));
388     UADPBypassSetSPT(&spt_ACE_DNR_GETPARAM[1],UADP_SPT_END , 0, 0);
389 
390     UADPBypassSetSPT(&spt_ACE_DNR_SETNRTBL[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_DNR_SetNRTbl));
391     UADPBypassSetSPT(&spt_ACE_DNR_SETNRTBL[1],UADP_SPT_END , 0, 0);
392 
393     UADPBypassSetSPT(&spt_ACE_GETINFO[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_GetInfo));
394     UADPBypassSetSPT(&spt_ACE_GETINFO[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_GETINFO->pstApiInfo)) - (unsigned long)pACE_GETINFO), (unsigned long)&spt_DrvACE_ApiInfo);
395     UADPBypassSetSPT(&spt_ACE_GETINFO[2],UADP_SPT_END , 0, 0);
396 
397     UADPBypassSetSPT(&spt_ACE_GETSTATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_GetStatus));
398     UADPBypassSetSPT(&spt_ACE_GETSTATUS[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_GETSTATUS->pDrvStatus)) - (unsigned long)pACE_GETSTATUS), (unsigned long)&spt_DrvACE_ApiStatus);
399     UADPBypassSetSPT(&spt_ACE_GETSTATUS[2],UADP_SPT_END , 0, 0);
400 
401     UADPBypassSetSPT(&spt_ACE_SETDBGLEVEL[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetDbgLevel));
402     UADPBypassSetSPT(&spt_ACE_SETDBGLEVEL[1],UADP_SPT_END , 0, 0);
403 
404     UADP_SPT_NAME1NXT(ACE_COLORCORRECTIONTABLE,stACE_ColorCorrectionTable,psColorCorrectionTable,ColorCorrectionTable);
405 
406     UADPBypassSetSPT(&spt_ACE_SETCOLORMATRIXCONTROL[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetColorMatrixControl));
407     UADPBypassSetSPT(&spt_ACE_SETCOLORMATRIXCONTROL[1],UADP_SPT_END , 0, 0);
408 
409     UADPBypassSetSPT(&spt_ACE_SETRBCHANNELRANGE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_SetRBChannelRange));
410     UADPBypassSetSPT(&spt_ACE_SETRBCHANNELRANGE[1],UADP_SPT_END , 0, 0);
411 
412     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetPostColorTemp));
413     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETPOSTCOLORTEMP->pstColorTemp)) - (unsigned long)pACE_PICSETPOSTCOLORTEMP), (unsigned long)&spt_DrvACE_Color_Temp);
414     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP[2],UADP_SPT_END , 0, 0);
415 
416     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMPEX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetPostColorTempEx));
417     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMPEX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETPOSTCOLORTEMPEX->pstColorTemp)) - (unsigned long)pACE_PICSETPOSTCOLORTEMPEX), (unsigned long)&spt_DrvACE_Color_TempEx);
418     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMPEX[2],UADP_SPT_END , 0, 0);
419 
420     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetPostColorTemp));
421     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETPOSTCOLORTEMP2->pstColorTemp)) - (unsigned long)pACE_PICSETPOSTCOLORTEMP2), (unsigned long)&spt_DrvACE_Color_Temp);
422     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2[2],UADP_SPT_END , 0, 0);
423 
424     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2EX[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_PicSetPostColorTempEx));
425     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2EX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned long)(&(pACE_PICSETPOSTCOLORTEMP2EX->pstColorTemp)) - (unsigned long)pACE_PICSETPOSTCOLORTEMP2EX), (unsigned long)&spt_DrvACE_Color_TempEx);
426     UADPBypassSetSPT(&spt_ACE_PICSETPOSTCOLORTEMP2EX[2],UADP_SPT_END , 0, 0);
427 
428     UADPBypassSetSPT(&spt_ACE_SET_POWERSTATE[0],UADP_SPT_SELF_SIZE,0, sizeof(stACE_Set_PowerState));
429     UADPBypassSetSPT(&spt_ACE_SET_POWERSTATE[1],UADP_SPT_END , 0, 0);
430 
431 
432     //Function parameter's pointer
433     UADPBypassSetSPT(&spt_DrvACE_InitData[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_InitData));
434     UADPBypassSetSPT(&spt_DrvACE_InitData[1],UADP_SPT_END , 0, 0);
435 
436     UADPBypassSetSPT(&spt_DrvACE_InfoEx[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_InfoEx));
437     UADPBypassSetSPT(&spt_DrvACE_InfoEx[1],UADP_SPT_END , 0, 0);
438 
439     UADPBypassSetSPT(&spt_DrvACE_Color_Temp[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_color_temp));
440     UADPBypassSetSPT(&spt_DrvACE_Color_Temp[1],UADP_SPT_END , 0, 0);
441 
442     UADPBypassSetSPT(&spt_DrvACE_Color_TempEx[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_color_temp_ex));
443     UADPBypassSetSPT(&spt_DrvACE_Color_TempEx[1],UADP_SPT_END , 0, 0);
444 
445     UADPBypassSetSPT(&spt_DrvACE_Color_TempEx2[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_color_temp_ex2));
446     UADPBypassSetSPT(&spt_DrvACE_Color_TempEx2[1],UADP_SPT_END , 0, 0);
447 
448     UADPBypassSetSPT(&spt_DrvACE_TAB_Info[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_TAB_Info));
449     UADPBypassSetSPT(&spt_DrvACE_TAB_Info[1],UADP_SPT_END , 0, 0);
450 
451     UADPBypassSetSPT(&spt_DrvACE_ApiStatus[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_ApiStatus));
452     UADPBypassSetSPT(&spt_DrvACE_ApiStatus[1],UADP_SPT_END , 0, 0);
453 
454     UADPBypassSetSPT(&spt_DrvACE_ApiInfo[0],UADP_SPT_SELF_SIZE,0, sizeof(XC_ACE_ApiInfo));
455     UADPBypassSetSPT(&spt_DrvACE_ApiInfo[1],UADP_SPT_END , 0, 0);
456 
457     *pIoctl= (FUtopiaIOctl)ACE_adp_Ioctl;
458 
459     return 0;
460 
461 }
462 
ACE_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)463 MS_U32 ACE_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
464 {
465     MS_U32 u32Ret = 0xFF;
466     char buffer_arg[2048];
467     switch(u32Cmd)
468     {
469 
470         case E_ACE_CMD_INIT :
471         {
472 #ifdef CONFIG_COMPAT
473             stACE_Init tmp;
474             _cmp_stACE_Init tmp_compat;
475             if(IS_CMP_TASK())
476             {
477                 _cmp_XC_ACE_InitData *ptr;
478                 void *ptr1;
479                 void *ptr2;
480                 CMP_CPY_FROM_USER(&tmp_compat, pArgs, sizeof(_cmp_stACE_Init));
481                 ptr = tmp_compat.pstXC_ACE_InitData;
482                 tmp.pstXC_ACE_InitData = malloc(sizeof(_cmp_XC_ACE_InitData));
483                 tmp.u32InitDataLen = tmp_compat.u32InitDataLen;
484                 tmp.bReturn = tmp_compat.bReturn;
485                 CMP_CPY_FROM_USER(tmp.pstXC_ACE_InitData,ptr,sizeof(_cmp_XC_ACE_InitData));
486 
487                 ptr1 = tmp.pstXC_ACE_InitData->S16ColorCorrectionMatrix;
488                 ptr2 = tmp.pstXC_ACE_InitData->S16RGB;
489                 tmp.pstXC_ACE_InitData->S16ColorCorrectionMatrix = malloc(sizeof(MS_S16)*32);
490                 tmp.pstXC_ACE_InitData->S16RGB = malloc(sizeof(MS_S16)*9);
491                 CMP_CPY_FROM_USER(tmp.pstXC_ACE_InitData->S16ColorCorrectionMatrix,ptr1,sizeof(MS_S16)*32);
492                 CMP_CPY_FROM_USER(tmp.pstXC_ACE_InitData->S16RGB,ptr2,sizeof(MS_S16)*9);
493 
494                 u32Ret = UtopiaIoctl(pInstanceTmp,u32Cmd,&tmp);
495                 tmp_compat.bReturn = tmp.bReturn;
496 
497                 CMP_CPY_TO_USER(pArgs,&tmp_compat,sizeof(_cmp_stACE_Init));
498             }else
499 #endif
500             {
501                 u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_INIT, spt_ACE_INIT, buffer_arg,sizeof(buffer_arg));
502             }
503             break;
504         }
505 
506         case E_ACE_CMD_EXIT:
507             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs, NULL, spt_ACE_EXIT, buffer_arg,sizeof(buffer_arg));
508             break;
509 
510         case E_ACE_CMD_DMS:
511             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DMS, NULL,buffer_arg,sizeof(buffer_arg));
512             break;
513 
514         case E_ACE_CMD_SETPCYUV2RGB:
515             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETPCYUV2RGB, NULL,buffer_arg,sizeof(buffer_arg));
516             break;
517 
518         case E_ACE_CMD_SELECTYUVTORGBMATRIX:
519             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SELECTYUVTORGBMATRIX, NULL,buffer_arg,sizeof(buffer_arg));
520             break;
521 
522         case E_ACE_CMD_SETCOLORCORRECTIONTABLE:
523             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETCOLORCORRECTIONTABLE, NULL,buffer_arg,sizeof(buffer_arg));
524             break;
525 
526         case E_ACE_CMD_SETPCSRGBTABLE:
527             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETPCSRGBTABLE, NULL,buffer_arg,sizeof(buffer_arg));
528             break;
529 
530         case E_ACE_CMD_GETCOLORMATRIX:
531             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_GETCOLORMATRIX, NULL,buffer_arg,sizeof(buffer_arg));
532             break;
533 
534         case E_ACE_CMD_SETCOLORMATRIX:
535             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETCOLORMATRIX, NULL,buffer_arg,sizeof(buffer_arg));
536             break;
537 
538         case E_ACE_CMD_SETBYPASSCOLORMATRIX:
539             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETBYPASSCOLORMATRIX, spt_ACE_SETBYPASSCOLORMATRIX, buffer_arg,sizeof(buffer_arg));
540             break;
541 
542         case E_ACE_CMD_SETIHC:
543             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETIHC, spt_ACE_SETIHC, buffer_arg,sizeof(buffer_arg));
544             break;
545 
546         case E_ACE_CMD_PATCHDTGCOLORCHECKER:
547             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PATCHDTGCOLORCHECKER, NULL,buffer_arg,sizeof(buffer_arg));
548             break;
549 
550         case E_ACE_CMD_GETACEINFO:
551             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_GETACEINFO, spt_ACE_GETACEINFO,buffer_arg,sizeof(buffer_arg));
552             break;
553 
554         case E_ACE_CMD_GETACEINFOEX:
555             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_GETACEINFOEX, spt_ACE_GETACEINFOEX,buffer_arg,sizeof(buffer_arg));
556             break;
557 
558         case E_ACE_CMD_PICSETCONTRAST:
559             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETCONTRAST, NULL,buffer_arg,sizeof(buffer_arg));
560             break;
561 
562         case E_ACE_CMD_PICSETBRIGHTNESS:
563             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETBRIGHTNESS, NULL,buffer_arg,sizeof(buffer_arg));
564             break;
565 
566         case E_ACE_CMD_PICSETBRIGHTNESSPRECISE:
567             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETBRIGHTNESSPRECISE, NULL,buffer_arg,sizeof(buffer_arg));
568             break;
569 
570         case E_ACE_CMD_PICSET_PRE_Y_OFFSET:
571             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSET_PRE_Y_OFFSET, spt_ACE_PICSET_PRE_Y_OFFSET,buffer_arg,sizeof(buffer_arg));
572             break;
573 
574         case E_ACE_CMD_PICGET_PRE_Y_OFFSET:
575             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICGET_PRE_Y_OFFSET, spt_ACE_PICGET_PRE_Y_OFFSET,buffer_arg,sizeof(buffer_arg));
576             break;
577 
578         case E_ACE_CMD_PICSETHUE:
579             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETHUE, NULL,buffer_arg,sizeof(buffer_arg));
580             break;
581 
582         case E_ACE_CMD_SKIPWAITVSYNC:
583             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SKIPWAITVSYNC, spt_ACE_SKIPWAITVSYNC,buffer_arg,sizeof(buffer_arg));
584             break;
585 
586         case E_ACE_CMD_PICSETSATURATION:
587             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETSATURATION, NULL,buffer_arg,sizeof(buffer_arg));
588             break;
589 
590         case E_ACE_CMD_PICSETSHARPNESS:
591             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETSHARPNESS, NULL,buffer_arg,sizeof(buffer_arg));
592             break;
593 
594         case E_ACE_CMD_PICSETCOLORTEMP:
595             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETCOLORTEMP, spt_ACE_PICSETCOLORTEMP,buffer_arg,sizeof(buffer_arg));
596             break;
597 
598         case E_ACE_CMD_PICSETCOLORTEMPEX:
599             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETCOLORTEMPEX, spt_ACE_PICSETCOLORTEMPEX,buffer_arg,sizeof(buffer_arg));
600             break;
601 
602         case E_ACE_CMD_PICSETPOSTCOLORTEMP_V02:
603             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETPOSTCOLORTEMP_V02, spt_ACE_PICSETPOSTCOLORTEMP_V02,buffer_arg,sizeof(buffer_arg));
604             break;
605 
606         case E_ACE_CMD_SETFLESHTONE:
607             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETFLESHTONE, NULL,buffer_arg,sizeof(buffer_arg));
608             break;
609 
610         case E_ACE_CMD_SETBLACKADJUST:
611             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETBLACKADJUST, NULL,buffer_arg,sizeof(buffer_arg));
612             break;
613 
614         case E_ACE_CMD_SET_IHC_SRAM:
615             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SET_IHC_SRAM, spt_ACE_SET_IHC_SRAM,buffer_arg,sizeof(buffer_arg));
616             break;
617 
618         case E_ACE_CMD_SET_ICC_SRAM:
619             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SET_ICC_SRAM, spt_ACE_SET_ICC_SRAM,buffer_arg,sizeof(buffer_arg));
620             break;
621 
622         case E_ACE_CMD_ENABLEMWE:
623             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_ENABLEMWE, NULL,buffer_arg,sizeof(buffer_arg));
624             break;
625 
626         case E_ACE_CMD_MWESETMIRRORMODE:
627             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_MWESETMIRRORMODE, NULL,buffer_arg,sizeof(buffer_arg));
628             break;
629 
630         case E_ACE_CMD_MWECLONEVISUALEFFECT:
631             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
632             break;
633 
634         case E_ACE_CMD_MWESETREGTABLE:
635             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_MWESETREGTABLE, spt_ACE_MWESETREGTABLE,buffer_arg,sizeof(buffer_arg));
636             break;
637 
638         case E_ACE_CMD_SETMWELOADFROMPQ:
639             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETMWELOADFROMPQ, spt_ACE_SETMWELOADFROMPQ,buffer_arg,sizeof(buffer_arg));
640             break;
641 
642         case E_ACE_CMD_MWESTATUS:
643             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs, NULL, spt_ACE_MWESTATUS, buffer_arg,sizeof(buffer_arg));
644             break;
645 
646         case E_ACE_CMD_MWEHANDLE:
647             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
648             break;
649 
650         case E_ACE_CMD_MWEFUNCSEL:
651             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_MWEFUNCSEL, NULL,buffer_arg,sizeof(buffer_arg));
652             break;
653 
654 
655         case E_ACE_CMD_MWESETDISPWIN:
656             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_MWESETDISPWIN, NULL,buffer_arg,sizeof(buffer_arg));
657             break;
658 
659         case E_ACE_CMD_3DCLONEPQMAP:
660             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_3DCLONEPQMAP, NULL,buffer_arg,sizeof(buffer_arg));
661             break;
662 
663         case E_ACE_CMD_DNR_BLENDING_NRTBL:
664             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_BLENDING_NRTBL, spt_ACE_DNR_BLENDING_NRTBL,buffer_arg,sizeof(buffer_arg));
665             break;
666 
667         case E_ACE_CMD_DNR_BLENDING_MISC:
668             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_BLENDING_MISC, spt_ACE_DNR_BLENDING_MISC,buffer_arg,sizeof(buffer_arg));
669             break;
670 
671         case E_ACE_CMD_DNR_BLENDING:
672             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_BLENDING, spt_ACE_DNR_BLENDING,buffer_arg,sizeof(buffer_arg));
673             break;
674 
675         case E_ACE_CMD_DNR_GET_PRECISIONSHIFT:
676             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs, NULL, spt_ACE_DNR_GET_PRECISIONSHIFT, buffer_arg,sizeof(buffer_arg));
677             break;
678 
679         case E_ACE_CMD_DNR_GETMOTION_WEIGHT:
680             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_GETMOTION_WEIGHT, spt_ACE_DNR_GETMOTION_WEIGHT,buffer_arg,sizeof(buffer_arg));
681             break;
682 
683         case E_ACE_CMD_DNR_GETLUMA_WEIGHT:
684             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_GETLUMA_WEIGHT, spt_ACE_DNR_GETLUMA_WEIGHT,buffer_arg,sizeof(buffer_arg));
685             break;
686 
687         case E_ACE_CMD_DNR_GETNOISE_WEIGHT:
688             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_GETNOISE_WEIGHT, spt_ACE_DNR_GETNOISE_WEIGHT,buffer_arg,sizeof(buffer_arg));
689             break;
690 
691         case E_ACE_CMD_DNR_GETMOTION:
692             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_GETMOTION, spt_ACE_DNR_GETMOTION,buffer_arg,sizeof(buffer_arg));
693             break;
694 
695         case E_ACE_CMD_DNR_INIT_MOTION:
696             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
697             break;
698 
699         case E_ACE_CMD_DNR_INIT_LUMA:
700             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
701             break;
702 
703         case E_ACE_CMD_DNR_INIT_NOISE:
704             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
705             break;
706 
707         case E_ACE_CMD_DNR_SETPARAM:
708             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_SETPARAM, NULL,buffer_arg,sizeof(buffer_arg));
709             break;
710 
711         case E_ACE_CMD_DNR_GETPARAM:
712             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_GETPARAM, spt_ACE_DNR_GETPARAM,buffer_arg,sizeof(buffer_arg));
713             break;
714 
715         case E_ACE_CMD_DNR_SETNRTBL:
716             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_DNR_SETNRTBL, spt_ACE_DNR_SETNRTBL,buffer_arg,sizeof(buffer_arg));
717             break;
718 
719         case E_ACE_CMD_GETLIBVER:
720             // ???
721             break;
722 
723         case E_ACE_CMD_GETINFO:
724             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs, NULL, spt_ACE_GETINFO, buffer_arg,sizeof(buffer_arg));
725             break;
726 
727         case E_ACE_CMD_GETSTATUS:
728             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_GETSTATUS, spt_ACE_GETSTATUS,buffer_arg,sizeof(buffer_arg));
729             break;
730 
731         case E_ACE_CMD_SETDBGLEVEL:
732             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETDBGLEVEL, spt_ACE_SETDBGLEVEL,buffer_arg,sizeof(buffer_arg));
733             break;
734 
735         case E_ACE_CMD_COLORCORRECTIONTABLE:
736             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_COLORCORRECTIONTABLE, spt_ACE_COLORCORRECTIONTABLE,buffer_arg,sizeof(buffer_arg));
737             break;
738 
739         case E_ACE_CMD_SETCOLORMATRIXCONTROL:
740             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETCOLORMATRIXCONTROL, NULL,buffer_arg,sizeof(buffer_arg));
741             break;
742 
743         case E_ACE_CMD_SETRBCHANNELRANGE:
744             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SETRBCHANNELRANGE, NULL,buffer_arg,sizeof(buffer_arg));
745             break;
746 
747         case E_ACE_CMD_PICSETPOSTCOLORTEMP:
748             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETPOSTCOLORTEMP, spt_ACE_PICSETPOSTCOLORTEMP,buffer_arg,sizeof(buffer_arg));
749             break;
750 
751         case E_ACE_CMD_PICSETPOSTCOLORTEMPEX:
752             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETPOSTCOLORTEMPEX, spt_ACE_PICSETPOSTCOLORTEMPEX,buffer_arg,sizeof(buffer_arg));
753             break;
754 
755         case E_ACE_CMD_PICSETPOSTCOLORTEMP2:
756             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETPOSTCOLORTEMP2, spt_ACE_PICSETPOSTCOLORTEMP2,buffer_arg,sizeof(buffer_arg));
757             break;
758 
759         case E_ACE_CMD_PICSETPOSTCOLORTEMP2EX:
760             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_PICSETPOSTCOLORTEMP2EX, spt_ACE_PICSETPOSTCOLORTEMP2EX,buffer_arg,sizeof(buffer_arg));
761             break;
762 
763         case E_ACE_CMD_SET_POWERSTATE:
764             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_ACE_SET_POWERSTATE, spt_ACE_SET_POWERSTATE,buffer_arg,sizeof(buffer_arg));
765             break;
766 
767         default:
768             break;
769 
770     }
771 
772     return u32Ret;
773    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
774 }
775 
776 
777 
778 
779