xref: /utopia/UTPA2-700.0.x/modules/dlc/utopia_adaption/dlc/DLC_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 #include <linux/slab.h>
2 #include <linux/kernel.h>
3 #include <linux/sched.h>
4 #include <linux/string.h>
5 #include <linux/uaccess.h>
6 #include <linux/compat.h>
7 #include "MsOS.h"
8 #include "MsTypes.h"
9 #include "utopia.h"
10 #include "utopia_adp.h"
11 #include "apiXC_Dlc.h"
12 #include "apiXC_DBC.h"
13 #include "apiXC_Dlc_v2.h"
14 #include "DLC_adp.h"
15 
16 //Function parameter
17 
18 #ifdef MSOS_TYPE_LINUX_KERNEL
19     #define CPY_FROM_USER(a,b,c)                                    if(copy_from_user(a,b,c) != 0) { break; }
20     #define CPY_to_USER(a,b,c)                                      if(copy_to_user(a,b,c) != 0) { break; }
21 #else
22     #define CPY_FROM_USER                                           memcpy
23     #define CPY_to_USER                                             memcpy
24 #endif  //MSOS_TYPE_LINUX_KERNEL
25 
26 
27 #if (defined(MSOS_TYPE_LINUX_KERNEL) && defined(CONFIG_COMPAT))
28     #define IS_CMP_TASK()                                             is_compat_task()
29     #define CMP_CPY_FROM_USER(a,b,c)                                if(copy_from_user(a, compat_ptr((unsigned long)b), c) != 0)  {  break; }
30     #define CMP_CPY_TO_USER(a,b,c)                                  if(copy_to_user(compat_ptr((unsigned long)a), b, c) != 0) { break;  }
31 #else
32     #define IS_CMP_TASK()                                             (FALSE)
33     #define CMP_CPY_FROM_USER                                       CPY_FROM_USER
34     #define CMP_CPY_TO_USER                                         CPY_to_USER
35 #endif
36 
37 //UADP_STRUCT_POINTER_TABLE spt_DLC_INIT_EX[10];
38 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_InitData,0);
39 UADP_SPT_NAMEnNXT_DEF(DLC_INIT_EX,1);
40 //UADP_STRUCT_POINTER_TABLE spt_DLC_SET_SETTING_EX[10];
41 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_MFinit_Ex,0);
42 UADP_SPT_NAMEnNXT_DEF(DLC_SET_SETTING_EX,1);
43 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_CURVE[10];
44 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_BLE_SLOP_POINT[10];
45 UADP_STRUCT_POINTER_TABLE spt_DLC_EXIT[10];
46 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_ON_OFF[10];
47 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_HANDLER_ON_OFF[10];
48 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_BLE_ON_OFF[10];
49 UADP_STRUCT_POINTER_TABLE spt_DLC_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION[10];
50 UADP_STRUCT_POINTER_TABLE spt_DLC_HANDLER[10];
51 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_HISTOGRAM_HANDLER[10];
52 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_AVERAGE_VALUE[10];
53 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_AVERAGE_VALUE_EX[10];
54 UADP_STRUCT_POINTER_TABLE spt_DLC_INIT_CURVE[10];
55 UADP_STRUCT_POINTER_TABLE spt_DLC_SPEEDUP_TRIGGER[10];
56 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_LUMA_CURVE_STATUS[10];
57 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_RESET_C_GAIN[10];
58 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_CHECK_C_GAIN_IN_PQ_COM[10];
59 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_RESET_Y_GAIN[10];
60 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_CHECK_Y_GAIN_IN_PQ_COM[10];
61 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_RESET[10];
62 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_INIT[10];
63 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_REINIT[10];
64 UADP_STRUCT_POINTER_TABLE spt_DLC_CGC_HANDLER[10];
65 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_LIB_VER[10];
66 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_INFO[10];
67 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_STATUS_EX[10];
68 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_DBG_LEVEL[10];
69 UADP_STRUCT_POINTER_TABLE spt_DLC_WRITE_CURVE[10];
70 UADP_STRUCT_POINTER_TABLE spt_DLC_WRITE_CURVE_SUB[10];
71 UADP_STRUCT_POINTER_TABLE spt_DLC_GET_HISTOGRAM[10];
72 //UADP_STRUCT_POINTER_TABLE spt_DLC_DECODE_EXT_CMD[10];
73 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_DECODE_EXT_CMD_params,0);
74 UADP_SPT_NAMEnNXT_DEF(DLC_DECODE_EXT_CMD,1);
75 //UADP_STRUCT_POINTER_TABLE spt_DLC_SET_CAPTURE_RANGE[10];
76 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_CAPTURE_Range,0);
77 UADP_SPT_NAMEnNXT_DEF(DLC_SET_CAPTURE_RANGE,1);
78 //UADP_STRUCT_POINTER_TABLE spt_DLC_SET_SETTING[10];
79 UADP_SPT_NAMEnNXT_DEF(DLC_SET_SETTING,0);
80 //UADP_STRUCT_POINTER_TABLE spt_DLC_INIT[10];
81 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_init,0);
82 UADP_SPT_NAMEnNXT_DEF(DLC_INIT,1);
83 //UADP_STRUCT_POINTER_TABLE spt_DLC_GET_STATUS[10];
84 UADP_SPT_NAMEnNXT_DEF(ADP_DLC_ApiStatus,0);
85 UADP_SPT_NAMEnNXT_DEF(DLC_GET_STATUS,1);
86 UADP_STRUCT_POINTER_TABLE spt_DLC_SET_POWERSTATE[10];
87 //UADP_STRUCT_POINTER_TABLE spt_DBC_DLC_INIT[10];
88 UADP_SPT_NAMEnNXT_DEF(DBC_DLC_INIT,0);
89 UADP_STRUCT_POINTER_TABLE spt_DBC_INIT[10];
90 UADP_STRUCT_POINTER_TABLE spt_DBC_SET_STATUS[10];
91 UADP_STRUCT_POINTER_TABLE spt_DBC_GET_STATUS[10];
92 UADP_STRUCT_POINTER_TABLE spt_DBC_SET_READY[10];
93 UADP_STRUCT_POINTER_TABLE spt_DBC_SET_DEBUG_MODE[10];
94 UADP_STRUCT_POINTER_TABLE spt_DBC_GET_DEBUG_MODE[10];
95 UADP_STRUCT_POINTER_TABLE spt_DBC_UPDATE_PWM[10];
96 UADP_STRUCT_POINTER_TABLE spt_DBC_HANDLER[10];
97 UADP_STRUCT_POINTER_TABLE spt_DBC_ADJUST_YC_GAIN[10];
98 UADP_STRUCT_POINTER_TABLE spt_DBC_YC_GAIN_INIT[10];
99 UADP_STRUCT_POINTER_TABLE spt_DBC_RESET[10];
100 //UADP_STRUCT_POINTER_TABLE spt_DBC_DECODE_EXT_CMD[10];
101 UADP_SPT_NAMEnNXT_DEF(ADP_DECODE_EXT_CMD_PARAMS,0);
102 UADP_SPT_NAMEnNXT_DEF(DBC_DECODE_EXT_CMD,1);
103 
104 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_MFinit[10];
105 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_MFinit_Ex[10];
106 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_DBC_MFinit[10];
107 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_init[10];
108 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_lumadata[10];
109 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_ApiStatus[10];
110 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_CAPTURE_Range[10];
111 UADP_STRUCT_POINTER_TABLE spt_DrvDLC_CONTROL_PARAMS[10];
112 
113 UADP_SPT_NAMEnNXT_DEF(DLC_TMOInfo,0);
114 UADP_SPT_NAMEnNXT_DEF(DLC_SET_TMOINFO,1);
115 
DLC_adp_Init(FUtopiaIOctl * pIoctl)116 MS_U32 DLC_adp_Init(FUtopiaIOctl* pIoctl)
117 {
118 
119 //set table
120     MS_U32 temp;
121 
122     //Function parameter
123     //stDLC_Init_Ex* pDLC_Init_Ex = (stDLC_Init_Ex*)temp;
124     //stDLC_SetSetting_Ex* pDLC_SetSetting_Ex = (stDLC_SetSetting_Ex*)temp;
125     //stDLC_SetCurve* pDLC_SetCurve = (stDLC_SetCurve*)temp;
126     //stDLC_Exit* pDLC_Exit = (stDLC_Exit*)temp;
127     //stDLC_SetOnOff* pDLC_SetOnOff = (stDLC_SetOnOff*)temp;
128     //stDLC_SetDlcHandlerOnOff* pDLC_SetDlcHandlerOnOff = (stDLC_SetDlcHandlerOnOff*)temp;
129     //stDLC_SetBleOnOff* pDLC_SetBleOnOff = (stDLC_SetBleOnOff*)temp;
130     //stDLC_EnableMainSubCurveSynchronization* pDLC_EnableMainSubCurveSynchronization = (stDLC_EnableMainSubCurveSynchronization*)temp;
131     //stDLC_Handler* pDLC_Handler = (stDLC_Handler*)temp;
132     //stDLC_GetHistogramHandler* pDLC_GetHistogramHandler = (stDLC_GetHistogramHandler*)temp;
133     //stDLC_GetAverageValue* pDLC_GetAverageValue = (stDLC_GetAverageValue*)temp;
134     //stDLC_GetAverageValue_Ex* pDLC_GetAverageValue_Ex = (stDLC_GetAverageValue_Ex*)temp;
135     //stDLC_InitCurve* pDLC_InitCurve = (stDLC_InitCurve*)temp;
136     //stDLC_SpeedupTrigger* pDLC_SpeedupTrigger = (stDLC_SpeedupTrigger*)temp;
137     //stDLC_GetLumaCurveStatus* pDLC_GetLumaCurveStatus = (stDLC_GetLumaCurveStatus*)temp;
138     //stDLC_CGC_ResetCGain* pDLC_CGC_ResetCGain = (stDLC_CGC_ResetCGain*)temp;
139     //stDLC_CGC_CheckCGainInPQCom* pDLC_CGC_CheckCGainInPQCom = (stDLC_CGC_CheckCGainInPQCom*)temp;
140     //stDLC_CGC_ResetYGain* pDLC_CGC_ResetYGain = (stDLC_CGC_ResetYGain*)temp;
141     //stDLC_CGC_CheckYGainInPQCom* pDLC_CGC_CheckYGainInPQCom = (stDLC_CGC_CheckYGainInPQCom*)temp;
142     //stDLC_CGC_Reset* pDLC_CGC_Reset = (stDLC_CGC_Reset*)temp;
143     //stDLC_CGC_Init* pDLC_CGC_Init = (stDLC_CGC_Init*)temp;
144     //stDLC_CGC_ReInit* pDLC_CGC_ReInit = (stDLC_CGC_ReInit*)temp;
145     //stDLC_CGC_Handler* pDLC_CGC_Handler = (stDLC_CGC_Handler*)temp;
146     //stDLC_GetLibVer* pDLC_GetLibVer = (stDLC_GetLibVer*)temp;
147     //stDLC_GetInfo* pDLC_GetInfo = (stDLC_GetInfo*)temp;
148     //stDLC_GetStatus_Ex* pDLC_GetStatus_Ex = (stDLC_GetStatus_Ex*)temp;
149     //stDLC_SetDbgLevel* pDLC_SetDbgLevel = (stDLC_SetDbgLevel*)temp;
150     //stDLC_WriteCurve* pDLC_WriteCurve = (stDLC_WriteCurve*)temp;
151     //stDLC_WriteCurve_Sub* pDLC_WriteCurve_Sub = (stDLC_WriteCurve_Sub*)temp;
152     //stDLC_GetHistogram* pDLC_GetHistogram = (stDLC_GetHistogram*)temp;
153     //stDLC_DecodeExtCmd* pDLC_DecodeExtCmd = (stDLC_DecodeExtCmd*)temp;
154     //stDLC_SetCaptureRange* pDLC_SetCaptureRange = (stDLC_SetCaptureRange*)temp;
155     //stDLC_SetSetting* pDLC_SetSetting = (stDLC_SetSetting*)temp;
156     //stDLC_Init* pDLC_Init = (stDLC_Init*)temp;
157     //stDLC_GetStatus* pDLC_GetStatus = (stDLC_GetStatus*)temp;
158     //stDLC_SetPowerState* pDLC_SetPowerState = (stDLC_SetPowerState*)temp;
159     //stDBC_DLC_Init* pDBC_DLC_Init = (stDBC_DLC_Init*)temp;
160     //stDBC_Init* pDBC_Init = (stDBC_Init*)temp;
161     //stDBC_Setstatus* pDBC_Setstatus = (stDBC_Setstatus*)temp;
162     //stDBC_Getstatus* pDBC_Getstatus = (stDBC_Getstatus*)temp;
163     //stDBC_SetReady* pDBC_SetReady = (stDBC_SetReady*)temp;
164     //stDBC_SetDebugMode* pDBC_SetDebugMode = (stDBC_SetDebugMode*)temp;
165     //stDBC_GetDebugMode* pDBC_GetDebugMode = (stDBC_GetDebugMode*)temp;
166     //stDBC_UpdatePWM* pDBC_UpdatePWMT = (stDBC_UpdatePWM*)temp;
167     //stDBC_Handler* pDBC_Handler = (stDBC_Handler*)temp;
168     //stDBC_AdjustYCGain* pDBC_AdjustYCGain = (stDBC_AdjustYCGain*)temp;
169     //stDBC_YCGainInit* pDBC_YCGainInit = (stDBC_YCGainInit*)temp;
170     //stDBC_Reset* pDBC_Reset = (stDBC_Reset*)temp;
171     //stDBC_DecodeExtCmd* pDBC_DecodeExtCmd = (stDBC_DecodeExtCmd*)temp;
172 
173     ////Function parameter's pointer
174     //XC_DLC_MFinit* pDrvDLC_MFinit = (XC_DLC_MFinit*)temp;
175     //XC_DLC_MFinit_Ex* pDrvDLC_MFinit_Ex = (XC_DLC_MFinit_Ex*)temp;
176     //XC_DLC_DBC_MFinit* pDrvDLC_DBC_MFinit = (XC_DLC_DBC_MFinit*)temp;
177     //XC_DLC_init* pDrvDLC_init = (XC_DLC_init*)temp;
178     //XC_DLC_lumadata* pDrvDLC_lumadata = (XC_DLC_lumadata*)temp;
179     //XC_DLC_ApiStatus* pDrvDLC_ApiStatus = (XC_DLC_ApiStatus*)temp;
180     //XC_DLC_CAPTURE_Range* pDrvDLC_CAPTURE_Range = (XC_DLC_CAPTURE_Range*)temp;
181     //tDLC_CONTROL_PARAMS* pDrvDLC_CONTROL_PARAMS = (tDLC_CONTROL_PARAMS*)temp;
182 
183 
184 
185     //Function parameter
186     //UADPBypassSetSPT(&spt_DLC_INIT_EX[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_Init_Ex));
187     //UADPBypassSetSPT(&spt_DLC_INIT_EX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_Init_Ex->pstXC_DLC_InitData)) - (unsigned int)pDLC_Init_Ex), &spt_DrvDLC_init);
188     //UADPBypassSetSPT(&spt_DLC_INIT_EX[2],UADP_SPT_END , 0, 0);
189     UADP_SPT_NAME0NXT(ADP_DLC_InitData,XC_DLC_init);
190     UADP_SPT_NAME1NXT(DLC_INIT_EX,stDLC_Init_Ex,pstXC_DLC_InitData,ADP_DLC_InitData);
191 
192     //UADPBypassSetSPT(&spt_DLC_SET_SETTING_EX[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetSetting_Ex));
193     //UADPBypassSetSPT(&spt_DLC_SET_SETTING_EX[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_SetSetting_Ex->DLC_MFinit_Ex)) - (unsigned int)pDLC_SetSetting_Ex), &spt_DrvDLC_MFinit_Ex);
194     //UADPBypassSetSPT(&spt_DLC_SET_SETTING_EX[2],UADP_SPT_END , 0, 0);
195     UADP_SPT_NAME0NXT(ADP_DLC_MFinit_Ex,XC_DLC_MFinit_Ex);
196     UADP_SPT_NAME1NXT(DLC_SET_SETTING_EX,stDLC_SetSetting_Ex,DLC_MFinit_Ex,ADP_DLC_MFinit_Ex);
197 
198     UADPBypassSetSPT(&spt_DLC_SET_CURVE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetCurve));
199     UADPBypassSetSPT(&spt_DLC_SET_CURVE[1],UADP_SPT_END , 0, 0);
200 
201     UADPBypassSetSPT(&spt_DLC_SET_BLE_SLOP_POINT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetBleSlopPoint));
202     UADPBypassSetSPT(&spt_DLC_SET_BLE_SLOP_POINT[1],UADP_SPT_END , 0, 0);
203 
204     UADPBypassSetSPT(&spt_DLC_EXIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_Exit));
205     UADPBypassSetSPT(&spt_DLC_EXIT[1],UADP_SPT_END , 0, 0);
206 
207     UADPBypassSetSPT(&spt_DLC_SET_ON_OFF[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetOnOff));
208     UADPBypassSetSPT(&spt_DLC_SET_ON_OFF[1],UADP_SPT_END , 0, 0);
209 
210     UADPBypassSetSPT(&spt_DLC_SET_HANDLER_ON_OFF[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetDlcHandlerOnOff));
211     UADPBypassSetSPT(&spt_DLC_SET_HANDLER_ON_OFF[1],UADP_SPT_END , 0, 0);
212 
213     UADPBypassSetSPT(&spt_DLC_SET_BLE_ON_OFF[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetBleOnOff));
214     UADPBypassSetSPT(&spt_DLC_SET_BLE_ON_OFF[1],UADP_SPT_END , 0, 0);
215 
216     UADPBypassSetSPT(&spt_DLC_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_EnableMainSubCurveSynchronization));
217     UADPBypassSetSPT(&spt_DLC_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION[1],UADP_SPT_END , 0, 0);
218 
219     UADPBypassSetSPT(&spt_DLC_HANDLER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_Handler));
220     UADPBypassSetSPT(&spt_DLC_HANDLER[1],UADP_SPT_END , 0, 0);
221 
222     UADPBypassSetSPT(&spt_DLC_GET_HISTOGRAM_HANDLER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetHistogramHandler));
223     UADPBypassSetSPT(&spt_DLC_GET_HISTOGRAM_HANDLER[1],UADP_SPT_END , 0, 0);
224 
225     UADPBypassSetSPT(&spt_DLC_GET_AVERAGE_VALUE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetAverageValue));
226     UADPBypassSetSPT(&spt_DLC_GET_AVERAGE_VALUE[1],UADP_SPT_END , 0, 0);
227 
228     UADPBypassSetSPT(&spt_DLC_GET_AVERAGE_VALUE_EX[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetAverageValue_Ex));
229     UADPBypassSetSPT(&spt_DLC_GET_AVERAGE_VALUE_EX[1],UADP_SPT_END , 0, 0);
230 
231     UADPBypassSetSPT(&spt_DLC_INIT_CURVE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_InitCurve));
232     UADPBypassSetSPT(&spt_DLC_INIT_CURVE[1],UADP_SPT_END , 0, 0);
233 
234     UADPBypassSetSPT(&spt_DLC_SPEEDUP_TRIGGER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SpeedupTrigger));
235     UADPBypassSetSPT(&spt_DLC_SPEEDUP_TRIGGER[1],UADP_SPT_END , 0, 0);
236 
237     UADPBypassSetSPT(&spt_DLC_GET_LUMA_CURVE_STATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetLumaCurveStatus));
238     UADPBypassSetSPT(&spt_DLC_GET_LUMA_CURVE_STATUS[1],UADP_SPT_END , 0, 0);
239 
240     UADPBypassSetSPT(&spt_DLC_CGC_RESET_C_GAIN[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_ResetCGain));
241     UADPBypassSetSPT(&spt_DLC_CGC_RESET_C_GAIN[1],UADP_SPT_END , 0, 0);
242 
243     UADPBypassSetSPT(&spt_DLC_CGC_CHECK_C_GAIN_IN_PQ_COM[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_CheckCGainInPQCom));
244     UADPBypassSetSPT(&spt_DLC_CGC_CHECK_C_GAIN_IN_PQ_COM[1],UADP_SPT_END , 0, 0);
245 
246     UADPBypassSetSPT(&spt_DLC_CGC_RESET_Y_GAIN[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_ResetYGain));
247     UADPBypassSetSPT(&spt_DLC_CGC_RESET_Y_GAIN[1],UADP_SPT_END , 0, 0);
248 
249     UADPBypassSetSPT(&spt_DLC_CGC_CHECK_Y_GAIN_IN_PQ_COM[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_CheckYGainInPQCom));
250     UADPBypassSetSPT(&spt_DLC_CGC_CHECK_Y_GAIN_IN_PQ_COM[1],UADP_SPT_END , 0, 0);
251 
252     UADPBypassSetSPT(&spt_DLC_CGC_RESET[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_Reset));
253     UADPBypassSetSPT(&spt_DLC_CGC_RESET[1],UADP_SPT_END , 0, 0);
254 
255     UADPBypassSetSPT(&spt_DLC_CGC_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_Init));
256     UADPBypassSetSPT(&spt_DLC_CGC_INIT[1],UADP_SPT_END , 0, 0);
257 
258     UADPBypassSetSPT(&spt_DLC_CGC_REINIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_ReInit));
259     UADPBypassSetSPT(&spt_DLC_CGC_REINIT[1],UADP_SPT_END , 0, 0);
260 
261     UADPBypassSetSPT(&spt_DLC_CGC_HANDLER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_CGC_Handler));
262     UADPBypassSetSPT(&spt_DLC_CGC_HANDLER[1],UADP_SPT_END , 0, 0);
263 
264     UADPBypassSetSPT(&spt_DLC_GET_LIB_VER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetLibVer));
265     UADPBypassSetSPT(&spt_DLC_GET_LIB_VER[1],UADP_SPT_END , 0, 0);
266 
267     UADPBypassSetSPT(&spt_DLC_GET_INFO[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetInfo));
268     UADPBypassSetSPT(&spt_DLC_GET_INFO[1],UADP_SPT_END , 0, 0);
269 
270     UADPBypassSetSPT(&spt_DLC_GET_STATUS_EX[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetStatus_Ex));
271     UADPBypassSetSPT(&spt_DLC_GET_STATUS_EX[1],UADP_SPT_END , 0, 0);
272 
273     UADPBypassSetSPT(&spt_DLC_SET_DBG_LEVEL[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetDbgLevel));
274     UADPBypassSetSPT(&spt_DLC_SET_DBG_LEVEL[1],UADP_SPT_END , 0, 0);
275 
276     UADPBypassSetSPT(&spt_DLC_WRITE_CURVE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_WriteCurve));
277     UADPBypassSetSPT(&spt_DLC_WRITE_CURVE[1],UADP_SPT_END , 0, 0);
278 
279     UADPBypassSetSPT(&spt_DLC_WRITE_CURVE_SUB[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_WriteCurve_Sub));
280     UADPBypassSetSPT(&spt_DLC_WRITE_CURVE_SUB[1],UADP_SPT_END , 0, 0);
281 
282     UADPBypassSetSPT(&spt_DLC_GET_HISTOGRAM[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetHistogram));
283     UADPBypassSetSPT(&spt_DLC_GET_HISTOGRAM[1],UADP_SPT_END , 0, 0);
284 
285     //UADPBypassSetSPT(&spt_DLC_DECODE_EXT_CMD[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_DecodeExtCmd));
286     //UADPBypassSetSPT(&spt_DLC_DECODE_EXT_CMD[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_DecodeExtCmd->params)) - (unsigned int)pDLC_DecodeExtCmd), &spt_DrvDLC_CONTROL_PARAMS);
287     //UADPBypassSetSPT(&spt_DLC_DECODE_EXT_CMD[2],UADP_SPT_END , 0, 0);
288     UADP_SPT_NAME0NXT(ADP_DLC_DECODE_EXT_CMD_params,tDLC_CONTROL_PARAMS);
289     UADP_SPT_NAME1NXT(DLC_DECODE_EXT_CMD,stDLC_DecodeExtCmd,params,ADP_DLC_DECODE_EXT_CMD_params);
290 
291     //UADPBypassSetSPT(&spt_DLC_SET_CAPTURE_RANGE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetCaptureRange));
292     //UADPBypassSetSPT(&spt_DLC_SET_CAPTURE_RANGE[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_SetCaptureRange->pu16_Range)) - (unsigned int)pDLC_SetCaptureRange), &spt_DrvDLC_CAPTURE_Range);
293     //UADPBypassSetSPT(&spt_DLC_SET_CAPTURE_RANGE[2],UADP_SPT_END , 0, 0);
294     UADP_SPT_NAME0NXT(ADP_DLC_CAPTURE_Range,XC_DLC_CAPTURE_Range);
295     UADP_SPT_NAME1NXT(DLC_SET_CAPTURE_RANGE,stDLC_SetCaptureRange,pu16_Range,ADP_DLC_CAPTURE_Range);
296 
297     //UADPBypassSetSPT(&spt_DLC_SET_SETTING[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetSetting));
298     //UADPBypassSetSPT(&spt_DLC_SET_SETTING[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_SetSetting->DLC_MFinit)) - (unsigned int)pDLC_SetSetting), &spt_DrvDLC_MFinit);
299     //UADPBypassSetSPT(&spt_DLC_SET_SETTING[2],UADP_SPT_END , 0, 0);
300     UADP_SPT_NAME0NXT(DLC_SET_SETTING,stDLC_SetSetting);
301 
302     //UADPBypassSetSPT(&spt_DLC_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_Init));
303     //UADPBypassSetSPT(&spt_DLC_INIT[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_Init->pstXC_DLC_InitData)) - (unsigned int)pDLC_Init), &spt_DrvDLC_init);
304     //UADPBypassSetSPT(&spt_DLC_INIT[2],UADP_SPT_END , 0, 0);
305     UADP_SPT_NAME0NXT(ADP_DLC_init,XC_DLC_init);
306     UADP_SPT_NAME1NXT(DLC_INIT,stDLC_Init,pstXC_DLC_InitData,ADP_DLC_init);
307 
308     //UADPBypassSetSPT(&spt_DLC_GET_STATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_GetStatus));
309     //UADPBypassSetSPT(&spt_DLC_GET_STATUS[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDLC_GetStatus->pDrvStatus)) - (unsigned int)pDLC_GetStatus), &spt_DrvDLC_ApiStatus);
310     //UADPBypassSetSPT(&spt_DLC_GET_STATUS[2],UADP_SPT_END , 0, 0);
311     UADP_SPT_NAME0NXT(ADP_DLC_ApiStatus,XC_DLC_ApiStatus);
312     UADP_SPT_NAME1NXT(DLC_GET_STATUS,stDLC_GetStatus,pDrvStatus,ADP_DLC_ApiStatus);
313 
314     UADPBypassSetSPT(&spt_DLC_SET_POWERSTATE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDLC_SetPowerState));
315     UADPBypassSetSPT(&spt_DLC_SET_POWERSTATE[1],UADP_SPT_END , 0, 0);
316 
317     //UADPBypassSetSPT(&spt_DBC_DLC_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_DLC_Init));
318     //UADPBypassSetSPT(&spt_DBC_DLC_INIT[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDBC_DLC_Init->DLC_DBC_MFinit)) - (unsigned int)pDBC_DLC_Init), &spt_DrvDLC_DBC_MFinit);
319     //UADPBypassSetSPT(&spt_DBC_DLC_INIT[2],UADP_SPT_END , 0, 0);
320     UADP_SPT_NAME0NXT(DBC_DLC_INIT,stDBC_DLC_Init);
321 
322     UADPBypassSetSPT(&spt_DBC_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_Init));
323     UADPBypassSetSPT(&spt_DBC_INIT[1],UADP_SPT_END , 0, 0);
324 
325     UADPBypassSetSPT(&spt_DBC_SET_STATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_Setstatus));
326     UADPBypassSetSPT(&spt_DBC_SET_STATUS[1],UADP_SPT_END , 0, 0);
327 
328     UADPBypassSetSPT(&spt_DBC_GET_STATUS[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_Getstatus));
329     UADPBypassSetSPT(&spt_DBC_GET_STATUS[1],UADP_SPT_END , 0, 0);
330 
331     UADPBypassSetSPT(&spt_DBC_SET_READY[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_SetReady));
332     UADPBypassSetSPT(&spt_DBC_SET_READY[1],UADP_SPT_END , 0, 0);
333 
334     UADPBypassSetSPT(&spt_DBC_SET_DEBUG_MODE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_SetDebugMode));
335     UADPBypassSetSPT(&spt_DBC_SET_DEBUG_MODE[1],UADP_SPT_END , 0, 0);
336 
337     UADPBypassSetSPT(&spt_DBC_GET_DEBUG_MODE[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_GetDebugMode));
338     UADPBypassSetSPT(&spt_DBC_GET_DEBUG_MODE[1],UADP_SPT_END , 0, 0);
339 
340     UADPBypassSetSPT(&spt_DBC_UPDATE_PWM[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_UpdatePWM));
341     UADPBypassSetSPT(&spt_DBC_UPDATE_PWM[1],UADP_SPT_END , 0, 0);
342 
343     UADPBypassSetSPT(&spt_DBC_HANDLER[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_Handler));
344     UADPBypassSetSPT(&spt_DBC_HANDLER[1],UADP_SPT_END , 0, 0);
345 
346     UADPBypassSetSPT(&spt_DBC_ADJUST_YC_GAIN[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_AdjustYCGain));
347     UADPBypassSetSPT(&spt_DBC_ADJUST_YC_GAIN[1],UADP_SPT_END , 0, 0);
348 
349     UADPBypassSetSPT(&spt_DBC_YC_GAIN_INIT[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_YCGainInit));
350     UADPBypassSetSPT(&spt_DBC_YC_GAIN_INIT[1],UADP_SPT_END , 0, 0);
351 
352     UADPBypassSetSPT(&spt_DBC_RESET[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_Reset));
353     UADPBypassSetSPT(&spt_DBC_RESET[1],UADP_SPT_END , 0, 0);
354 
355     //UADPBypassSetSPT(&spt_DBC_DECODE_EXT_CMD[0],UADP_SPT_SELF_SIZE,0, sizeof(stDBC_DecodeExtCmd));
356     //UADPBypassSetSPT(&spt_DBC_DECODE_EXT_CMD[1],UADP_SPT_POINTER_TO_NEXT, ((unsigned int)(&(pDBC_DecodeExtCmd->params)) - (unsigned int)pDrvDLC_CONTROL_PARAMS), &spt_DrvDLC_CONTROL_PARAMS);
357     //UADPBypassSetSPT(&spt_DBC_DECODE_EXT_CMD[2],UADP_SPT_END , 0, 0);
358     UADP_SPT_NAME0NXT(ADP_DECODE_EXT_CMD_PARAMS,tDBC_CONTROL_PARAMS);
359     UADP_SPT_NAME1NXT(DBC_DECODE_EXT_CMD,stDBC_DecodeExtCmd,params,ADP_DECODE_EXT_CMD_PARAMS);
360 
361 #if defined(UFO_XC_HDR_VERSION) && (UFO_XC_HDR_VERSION == 2)
362     UADP_SPT_NAME0NXT(DLC_TMOInfo,ST_XC_DLC_TMO_INFO);
363     UADP_SPT_NAME1NXT(DLC_SET_TMOINFO,stDLC_SetTMOInfo,pstDLC_TMOInfo,DLC_TMOInfo);
364 #endif
365 
366     *pIoctl= (FUtopiaIOctl)DLC_adp_Ioctl;
367     return 0;
368 }
369 
DLC_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)370 MS_U32 DLC_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
371 {
372     MS_U32 u32Ret;
373     char buffer_arg[2048];
374     switch(u32Cmd)
375     {
376         case E_DLC_CMD_INIT_EX :
377             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_INIT_EX, spt_DLC_INIT_EX, buffer_arg,sizeof(buffer_arg));
378             break;
379 
380         case E_DLC_CMD_SET_SETTING_EX :
381             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_SETTING_EX, spt_DLC_SET_SETTING_EX, buffer_arg,sizeof(buffer_arg));
382             break;
383 
384         case E_DLC_CMD_SET_CURVE :
385             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_CURVE, spt_DLC_SET_CURVE, buffer_arg,sizeof(buffer_arg));
386             break;
387 
388         case E_DLC_CMD_SET_BLE_SLOP_POINT :
389             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_BLE_SLOP_POINT, spt_DLC_SET_BLE_SLOP_POINT, buffer_arg,sizeof(buffer_arg));
390             break;
391 
392         case E_DLC_CMD_EXIT :
393             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_EXIT, spt_DLC_EXIT, buffer_arg,sizeof(buffer_arg));
394             break;
395 
396         case E_DLC_CMD_SET_ON_OFF :
397             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_ON_OFF, spt_DLC_SET_ON_OFF, buffer_arg,sizeof(buffer_arg));
398             break;
399 
400         case E_DLC_CMD_SET_HANDLER_ON_OFF :
401             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_HANDLER_ON_OFF, spt_DLC_SET_HANDLER_ON_OFF, buffer_arg,sizeof(buffer_arg));
402             break;
403 
404         case E_DLC_CMD_SET_BLE_ON_OFF :
405             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_BLE_ON_OFF, spt_DLC_SET_BLE_ON_OFF, buffer_arg,sizeof(buffer_arg));
406             break;
407 
408         case E_DLC_CMD_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION :
409             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION, spt_DLC_ENABLE_MAIN_SUB_CURVE_SYNCHRONIZATION, buffer_arg,sizeof(buffer_arg));
410             break;
411 
412         case E_DLC_CMD_HANDLER :
413             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_HANDLER, spt_DLC_HANDLER, buffer_arg,sizeof(buffer_arg));
414             break;
415 
416         case E_DLC_CMD_GET_HISTOGRAM_HANDLER :
417             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_HISTOGRAM_HANDLER, spt_DLC_GET_HISTOGRAM_HANDLER, buffer_arg,sizeof(buffer_arg));
418             break;
419 
420         case E_DLC_CMD_GET_AVERAGE_VALUE :
421             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_AVERAGE_VALUE, spt_DLC_GET_AVERAGE_VALUE, buffer_arg,sizeof(buffer_arg));
422             break;
423 
424         case E_DLC_CMD_GET_AVERAGE_VALUE_EX :
425             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_AVERAGE_VALUE_EX, spt_DLC_GET_AVERAGE_VALUE_EX, buffer_arg,sizeof(buffer_arg));
426             break;
427 
428         case E_DLC_CMD_INIT_CURVE :
429             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_INIT_CURVE, spt_DLC_INIT_CURVE, buffer_arg,sizeof(buffer_arg));
430             break;
431 
432         case E_DLC_CMD_SPEEDUP_TRIGGER :
433             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SPEEDUP_TRIGGER, spt_DLC_SPEEDUP_TRIGGER, buffer_arg,sizeof(buffer_arg));
434             break;
435 
436         case E_DLC_CMD_GET_LUMA_CURVE_STATUS :
437             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_LUMA_CURVE_STATUS, spt_DLC_GET_LUMA_CURVE_STATUS, buffer_arg,sizeof(buffer_arg));
438             break;
439 
440         case E_DLC_CMD_CGC_RESET_C_GAIN :
441             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_RESET_C_GAIN, spt_DLC_CGC_RESET_C_GAIN, buffer_arg,sizeof(buffer_arg));
442             break;
443 
444         case E_DLC_CMD_CGC_CHECK_C_GAIN_IN_PQ_COM :
445             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_CHECK_C_GAIN_IN_PQ_COM, spt_DLC_CGC_CHECK_C_GAIN_IN_PQ_COM, buffer_arg,sizeof(buffer_arg));
446             break;
447 
448         case E_DLC_CMD_CGC_RESET_Y_GAIN :
449             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_RESET_Y_GAIN, spt_DLC_CGC_RESET_Y_GAIN, buffer_arg,sizeof(buffer_arg));
450             break;
451 
452         case E_DLC_CMD_CGC_CHECK_Y_GAIN_IN_PQ_COM :
453             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_CHECK_Y_GAIN_IN_PQ_COM, spt_DLC_CGC_CHECK_Y_GAIN_IN_PQ_COM, buffer_arg,sizeof(buffer_arg));
454             break;
455 
456         case E_DLC_CMD_CGC_RESET :
457             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_RESET, spt_DLC_CGC_RESET, buffer_arg,sizeof(buffer_arg));
458             break;
459 
460         case E_DLC_CMD_CGC_INIT :
461             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_INIT, spt_DLC_CGC_INIT, buffer_arg,sizeof(buffer_arg));
462             break;
463 
464         case E_DLC_CMD_CGC_REINIT :
465             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_REINIT, spt_DLC_CGC_REINIT, buffer_arg,sizeof(buffer_arg));
466             break;
467 
468         case E_DLC_CMD_CGC_HANDLER :
469             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_CGC_HANDLER, spt_DLC_CGC_HANDLER, buffer_arg,sizeof(buffer_arg));
470             break;
471 
472         case E_DLC_CMD_GET_LIB_VER :
473             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_LIB_VER, spt_DLC_GET_LIB_VER, buffer_arg,sizeof(buffer_arg));
474             break;
475 
476         case E_DLC_CMD_GET_INFO :
477             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_INFO, spt_DLC_GET_INFO, buffer_arg,sizeof(buffer_arg));
478             break;
479 
480         case E_DLC_CMD_GET_STATUS_EX :
481             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_STATUS_EX, spt_DLC_GET_STATUS_EX, buffer_arg,sizeof(buffer_arg));
482             break;
483 
484         case E_DLC_CMD_SET_DBG_LEVEL :
485             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_DBG_LEVEL, spt_DLC_SET_DBG_LEVEL, buffer_arg,sizeof(buffer_arg));
486             break;
487 
488         case E_DLC_CMD_WRITE_CURVE :
489             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_WRITE_CURVE, spt_DLC_WRITE_CURVE, buffer_arg,sizeof(buffer_arg));
490             break;
491 
492         case E_DLC_CMD_WRITE_CURVE_SUB :
493             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_WRITE_CURVE_SUB, spt_DLC_WRITE_CURVE_SUB, buffer_arg,sizeof(buffer_arg));
494             break;
495 
496         case E_DLC_CMD_GET_HISTOGRAM :
497             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_HISTOGRAM, spt_DLC_GET_HISTOGRAM, buffer_arg,sizeof(buffer_arg));
498             break;
499 
500         case E_DLC_CMD_DECODE_EXT_CMD :
501             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_DECODE_EXT_CMD, spt_DLC_DECODE_EXT_CMD, buffer_arg,sizeof(buffer_arg));
502             break;
503 
504         case E_DLC_CMD_SET_CAPTURE_RANGE :
505             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_CAPTURE_RANGE, spt_DLC_SET_CAPTURE_RANGE, buffer_arg,sizeof(buffer_arg));
506             break;
507 
508         case E_DLC_CMD_SET_SETTING :
509             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_SETTING, spt_DLC_SET_SETTING, buffer_arg,sizeof(buffer_arg));
510             break;
511 
512         case E_DLC_CMD_INIT :
513             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_INIT, spt_DLC_INIT, buffer_arg,sizeof(buffer_arg));
514             break;
515 
516         case E_DLC_CMD_GET_STATUS :
517             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_GET_STATUS, spt_DLC_GET_STATUS, buffer_arg,sizeof(buffer_arg));
518             break;
519 
520         case E_DLC_CMD_SET_POWERSTATE :
521             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_POWERSTATE, spt_DLC_SET_POWERSTATE, buffer_arg,sizeof(buffer_arg));
522             break;
523 
524         case E_DLC_CMD_SET_TMOINFO :
525             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DLC_SET_TMOINFO, spt_DLC_SET_TMOINFO, buffer_arg,sizeof(buffer_arg));
526             break;
527 
528         case E_DBC_CMD_DLC_INIT :
529             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_DLC_INIT, spt_DBC_DLC_INIT, buffer_arg,sizeof(buffer_arg));
530             break;
531 
532         case E_DBC_CMD_INIT :
533             //u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_CMD_INIT, spt_DBC_CMD_INIT, buffer_arg,sizeof(buffer_arg));
534             break;
535 
536         case E_DBC_CMD_SET_STATUS :
537             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_SET_STATUS, spt_DBC_SET_STATUS, buffer_arg,sizeof(buffer_arg));
538             break;
539 
540         case E_DBC_CMD_GET_STATUS :
541             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_GET_STATUS, spt_DBC_GET_STATUS, buffer_arg,sizeof(buffer_arg));
542             break;
543 
544         case E_DBC_CMD_SET_READY :
545             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_SET_READY, spt_DBC_SET_READY, buffer_arg,sizeof(buffer_arg));
546             break;
547 
548         case E_DBC_CMD_SET_DEBUG_MODE :
549             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_SET_DEBUG_MODE, spt_DBC_SET_DEBUG_MODE, buffer_arg,sizeof(buffer_arg));
550             break;
551 
552         case E_DBC_CMD_GET_DEBUG_MODE :
553             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_GET_DEBUG_MODE, spt_DBC_GET_DEBUG_MODE, buffer_arg,sizeof(buffer_arg));
554             break;
555 
556         case E_DBC_CMD_UPDATE_PWM :
557             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_UPDATE_PWM, spt_DBC_UPDATE_PWM, buffer_arg,sizeof(buffer_arg));
558             break;
559 
560         case E_DBC_CMD_HANDLER :
561             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_HANDLER, spt_DBC_HANDLER, buffer_arg,sizeof(buffer_arg));
562             break;
563 
564         case E_DBC_CMD_ADJUST_YC_GAIN :
565             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_ADJUST_YC_GAIN, spt_DBC_ADJUST_YC_GAIN, buffer_arg,sizeof(buffer_arg));
566             break;
567 
568         case E_DBC_CMD_YC_GAIN_INIT :
569             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_YC_GAIN_INIT, spt_DBC_YC_GAIN_INIT, buffer_arg,sizeof(buffer_arg));
570             break;
571 
572         case E_DBC_CMD_RESET :
573             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_RESET, spt_DBC_RESET, buffer_arg,sizeof(buffer_arg));
574             break;
575 
576         case E_DBC_CMD_DECODE_EXT_CMD :
577             u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_DBC_DECODE_EXT_CMD, spt_DBC_DECODE_EXT_CMD, buffer_arg,sizeof(buffer_arg));
578             break;
579 
580     }
581 
582     return u32Ret;
583    // return UtopiaIoctl(pModuleDDI->pInstant,u32Cmd,arg);
584 }
585 
586 
587 
588 
589