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