xref: /utopia/UTPA2-700.0.x/modules/xc/utopia_adaption/pnl/PNL_adp.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 
78 ////////////////////////////////////////////////////////////////////////////////
79 /// file    TVENCODER_adp.c
80 /// @brief  TV encoder.
81 /// @author MStar Semiconductor Inc.
82 ////////////////////////////////////////////////////////////////////////////////
83 
84 #ifndef _TVENCODER_ADP_C_
85 #define _TVENCODER_ADP_C_
86 
87 //------------------------------------------------------------------------------
88 //  Include Files
89 //------------------------------------------------------------------------------
90 // Common Definition
91 #include <linux/slab.h>
92 #include "MsTypes.h"
93 #include "utopia.h"
94 #include "utopia_adp.h"
95 
96 // Internal Definition
97 #include "apiPNL.h"
98 #include "apiPNL_v2.h"
99 #include "PNL_adp.h"
100 #include "drvPNL.h"
101 
102 extern spt_MS_NULL;
103 //------------------------------------------------------------------------------
104 //  Driver Compiler Options
105 //------------------------------------------------------------------------------
106 
107 //------------------------------------------------------------------------------
108 //  Local Defines
109 //------------------------------------------------------------------------------
110 
111 //------------------------------------------------------------------------------
112 //  Local Structurs
113 //------------------------------------------------------------------------------
114 
115 //------------------------------------------------------------------------------
116 //  Global Variables
117 //------------------------------------------------------------------------------
118 
119 //------------------------------------------------------------------------------
120 //  Local Variables
121 //------------------------------------------------------------------------------
122 //Top
123 UADP_STRUCT_POINTER_TABLE spt_stPNL_GetLibVer[10];
124 UADP_STRUCT_POINTER_TABLE spt_stPNL_GetInfo[10];
125 UADP_STRUCT_POINTER_TABLE spt_stPNL_GetStatus[10];
126 UADP_STRUCT_POINTER_TABLE spt_stPNL_GetStatusEx[10];
127 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetDbgLevel[10];
128 UADP_STRUCT_POINTER_TABLE spt_stPNL_IOMapBaseInit[10];
129 UADP_STRUCT_POINTER_TABLE spt_stPNL_PreInit[10];
130 UADP_STRUCT_POINTER_TABLE spt_stPNL_Init[10];
131 UADP_STRUCT_POINTER_TABLE spt_stPNL_Init_Ex[10];
132 UADP_STRUCT_POINTER_TABLE spt_stPNL_GetConfig[10];
133 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetOutput[10];
134 UADP_STRUCT_POINTER_TABLE spt_stPNL_ChangePanelType[10];
135 UADP_STRUCT_POINTER_TABLE spt_stPNL_TCONMAP_DumpTable[10];
136 UADP_STRUCT_POINTER_TABLE spt_stPNL_TCONMAP_Power_Sequence[10];
137 UADP_STRUCT_POINTER_TABLE spt_stPNL_TCON_Count_Reset[10];
138 UADP_STRUCT_POINTER_TABLE spt_stPNL_TCON_Init[10];
139 //UADP_STRUCT_POINTER_TABLE spt_stPNL_GetDstInfo[10];
140 UADP_SPT_NAMEnNXT_DEF(MS_PNL_DST_DispInfo,0);
141 UADP_SPT_NAMEnNXT_DEF(stPNL_GetDstInfo,1);
142 UADP_STRUCT_POINTER_TABLE spt_stPNL_Control_Out_Swing[10];
143 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetOutputPattern[10];
144 UADP_STRUCT_POINTER_TABLE spt_stPNL_Mod_Calibration_Setting[10];
145 UADP_STRUCT_POINTER_TABLE spt_stPNL_Mod_Do_Calibration[10];
146 UADP_STRUCT_POINTER_TABLE spt_stPNL_BD_LVDS_Output_Type[10];
147 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetLPLLTypeExt[10];
148 UADP_STRUCT_POINTER_TABLE spt_stPNL_Init_MISC[10];
149 UADP_SPT_NAMEnNXT_DEF(stPNL_Get_MISC_Status,0);
150 UADP_STRUCT_POINTER_TABLE spt_stPNL_MOD_OutputConfig_User[10];
151 UADP_SPT_NAMEnNXT_DEF(stPNL_MOD_OutputChannelOrder,0);
152 UADP_STRUCT_POINTER_TABLE spt_stPNL_HWLVDSReservedtoLRFlag[10];
153 UADP_STRUCT_POINTER_TABLE spt_stPNL_MOD_PVDD_Power_Setting[10];
154 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetSSC_En[10];
155 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetSSC_Fmodulation[10];
156 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetSSC_Rdeviation[10];
157 UADP_SPT_NAMEnNXT_DEF(stPNL_SetOSDSSC_En,0);
158 UADP_SPT_NAMEnNXT_DEF(stPNL_SetOSDSSC_Fmodulation,0);
159 UADP_SPT_NAMEnNXT_DEF(stPNL_SetOSDSSC_Rdeviation,0);
160 UADP_STRUCT_POINTER_TABLE spt_stPNL_SkipTimingChange[10];
161 UADP_SPT_NAMEnNXT_DEF(stPNL_PreSetModeOn,0);
162 UADP_STRUCT_POINTER_TABLE spt_stPNL_OverDriver_Init[10];
163 UADP_STRUCT_POINTER_TABLE spt_stPNL_OverDriver_Enable[10];
164 UADP_STRUCT_POINTER_TABLE spt_stPNL_Get_LPLL_Type[10];
165 UADP_STRUCT_POINTER_TABLE spt_stPNL_Get_TCON_Capability[10];
166 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetPairSwap[10];
167 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetExt_LPLL_Type[10];
168 UADP_STRUCT_POINTER_TABLE spt_stPNL_CalExtLPLLSETbyDClk[10];
169 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetDiffSwingLevel[10];
170 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetPowerState[10];
171 UADP_STRUCT_POINTER_TABLE spt_stPNL_ForceSetPanelDCLK[10];
172 UADP_STRUCT_POINTER_TABLE spt_stPNL_EnableInternalTermination[10];
173 UADP_STRUCT_POINTER_TABLE spt_stPNL_OutputDeviceHandshake[10];
174 UADP_STRUCT_POINTER_TABLE spt_stPNL_OutputDeviceOCHandshake[10];
175 UADP_STRUCT_POINTER_TABLE spt_stPNL_SetOutputInterlaceTiming[10];
176 
177 UADP_SPT_NAMEnNXT_DEF(stPNL_GetOutputInterlaceTiming,0);
178 UADP_SPT_NAMEnNXT_DEF(stPNL_GetPanelData,1);
179 UADP_SPT_NAMEnNXT_DEF(stPNL_SetSSC,0);
180 UADP_SPT_NAMEnNXT_DEF(stPNL_GetPanelOnTiming,0);
181 UADP_SPT_NAMEnNXT_DEF(stPNL_GetPanelOffTiming,0);
182 UADP_SPT_NAMEnNXT_DEF(stPNL_GetPanelDimCtrl,0);
183 
184 //gamma
185 UADP_SPT_NAMEnNXT_DEF(GammaTab,0);
186 UADP_SPT_NAMEnNXT_DEF(stPNL_SetGammaTbl,5);
187 //
188 UADP_SPT_NAMEnNXT_DEF(stPNL_EnablePanel,0);
189 UADP_SPT_NAMEnNXT_DEF(stPNL_GetLPLLMode,0);
190 UADP_SPT_NAMEnNXT_DEF(stPNL_GetDefVFreq,0);
191 UADP_SPT_NAMEnNXT_DEF(stPNL_ForceSetPanelHStart,0);
192 UADP_SPT_NAMEnNXT_DEF(PNLName,0);
193 UADP_SPT_NAMEnNXT_DEF(stPNL_GetName,1);
194 UADP_SPT_NAMEnNXT_DEF(stPNL_GetHstart,0);
195 UADP_SPT_NAMEnNXT_DEF(stPNL_GetVstart,0);
196 UADP_SPT_NAMEnNXT_DEF(stPNL_GetWidth,0);
197 UADP_SPT_NAMEnNXT_DEF(stPNL_GetHeight,0);
198 UADP_SPT_NAMEnNXT_DEF(stPNL_GetHtotal,0);
199 UADP_SPT_NAMEnNXT_DEF(stPNL_GetVtotal,0);
200 UADP_SPT_NAMEnNXT_DEF(stPNL_GetHsyncWidth,0);
201 UADP_SPT_NAMEnNXT_DEF(stPNL_GetHsyncBackPorch,0);
202 UADP_SPT_NAMEnNXT_DEF(stPNL_GetVsyncBackPorch,0);
203 UADP_SPT_NAMEnNXT_DEF(stPNL_GetLPLLType,0);
204 UADP_SPT_NAMEnNXT_DEF(stPNL_GetARC,0);
205 UADP_SPT_NAMEnNXT_DEF(stPNL_GetMinSET,0);
206 UADP_SPT_NAMEnNXT_DEF(stPNL_GetMaxSET,0);
207 UADP_SPT_NAMEnNXT_DEF(stPNL_GetOutTimingMode,0);
208 UADP_SPT_NAMEnNXT_DEF(stPNL_CheckVBY1HandshakeStatus,0);
209 UADP_SPT_NAMEnNXT_DEF(stPNL_MOD_Video_HWTrainingMode,0);
210 UADP_SPT_NAMEnNXT_DEF(stPNL_MOD_OSD_HWTrainingMode,0);
211 UADP_SPT_NAMEnNXT_DEF(stPNL_GetVideoHWTraining_status,0);
212 UADP_SPT_NAMEnNXT_DEF(stPNL_GetOSDHWTraining_status,0);
213 
214 //Bottom
215 UADP_STRUCT_POINTER_TABLE spt_MSIF_Version[10];
216 UADP_STRUCT_POINTER_TABLE spt_PNL_ApiInfo[10];
217 UADP_STRUCT_POINTER_TABLE spt_PNL_ApiStatus[10];
218 UADP_STRUCT_POINTER_TABLE spt_PNL_ApiExtStatus[10];
219 UADP_STRUCT_POINTER_TABLE spt_PanelType[10];
220 UADP_STRUCT_POINTER_TABLE spt_TCONTable[10];
221 //UADP_STRUCT_POINTER_TABLE spt_MS_PNL_DST_DispInfo[10];
222 UADP_STRUCT_POINTER_TABLE spt_MS_PNL_ModCaliInfo[10];
223 UADP_STRUCT_POINTER_TABLE spt_MS_PNL_OD_INITDATA[10];
224 UADP_STRUCT_POINTER_TABLE spt_PanelChar[10];
225 
226 //------------------------------------------------------------------------------
227 //  Debug Functions
228 //------------------------------------------------------------------------------
229 
230 //------------------------------------------------------------------------------
231 //  Local Functions
232 //------------------------------------------------------------------------------
233 
234 //------------------------------------------------------------------------------
235 //  Global Functions
236 //------------------------------------------------------------------------------
PNL_adp_Init(FUtopiaIOctl * pIoctl)237 MS_U32 PNL_adp_Init(FUtopiaIOctl *pIoctl)
238 {
239 
240 //set table
241     UADP_SPT_BGN(&spt_stPNL_GetLibVer[0], sizeof(stPNL_GetLibVer));
242     UADP_SPT_NXT(&spt_stPNL_GetLibVer[1], stPNL_GetLibVer, ppVersion, spt_MSIF_Version);
243     UADP_SPT_FIN(&spt_stPNL_GetLibVer[2]);
244 
245     UADP_SPT_BGN(&spt_stPNL_GetInfo[0], sizeof(stPNL_GetInfo));
246     UADP_SPT_NXT(&spt_stPNL_GetInfo[1], stPNL_GetInfo, pApiInfo, spt_PNL_ApiInfo);
247     UADP_SPT_FIN(&spt_stPNL_GetInfo[2]);
248 
249     UADP_SPT_BGN(&spt_stPNL_GetStatus[0], sizeof(stPNL_GetStatus));
250     UADP_SPT_NXT(&spt_stPNL_GetStatus[1], stPNL_GetStatus, pPnlStatus, spt_PNL_ApiStatus);
251     UADP_SPT_FIN(&spt_stPNL_GetStatus[2]);
252 
253     UADP_SPT_BGN(&spt_stPNL_GetStatusEx[0], sizeof(stPNL_GetStatusEx));
254     UADP_SPT_NXT(&spt_stPNL_GetStatusEx[1], stPNL_GetStatusEx, pPnlExtStatus, spt_PNL_ApiExtStatus);
255     UADP_SPT_FIN(&spt_stPNL_GetStatusEx[2]);
256 
257     UADP_SPT_BGN(&spt_stPNL_SetDbgLevel[0], sizeof(stPNL_SetDbgLevel));
258     UADP_SPT_FIN(&spt_stPNL_SetDbgLevel[1]);
259 
260     UADP_SPT_BGN(&spt_stPNL_IOMapBaseInit[0], sizeof(stPNL_IOMapBaseInit));
261     UADP_SPT_FIN(&spt_stPNL_IOMapBaseInit[1]);
262 
263     UADP_SPT_BGN(&spt_stPNL_PreInit[0], sizeof(stPNL_PreInit));
264     UADP_SPT_FIN(&spt_stPNL_PreInit[1]);
265 
266     UADP_SPT_BGN(&spt_stPNL_Init[0], sizeof(stPNL_Init));
267     UADP_SPT_NXT(&spt_stPNL_Init[1], stPNL_Init, pSelPanelType, spt_PanelType);
268     UADP_SPT_FIN(&spt_stPNL_Init[2]);
269 
270     UADP_SPT_BGN(&spt_stPNL_Init_Ex[0], sizeof(stPNL_Init_Ex));
271     UADP_SPT_NXT(&spt_stPNL_Init_Ex[1], stPNL_Init_Ex, pSelPanelType, spt_PanelType);
272     UADP_SPT_FIN(&spt_stPNL_Init_Ex[2]);
273 
274     UADP_SPT_BGN(&spt_stPNL_GetConfig[0], sizeof(stPNL_GetConfig));
275     UADP_SPT_NXT(&spt_stPNL_GetConfig[1], stPNL_GetConfig, pSelPanelType, spt_PanelType);
276     UADP_SPT_FIN(&spt_stPNL_GetConfig[2]);
277 
278     UADP_SPT_BGN(&spt_stPNL_SetOutput[0], sizeof(stPNL_SetOutput));
279     UADP_SPT_FIN(&spt_stPNL_SetOutput[1]);
280 
281     UADP_SPT_BGN(&spt_stPNL_ChangePanelType[0], sizeof(stPNL_ChangePanelType));
282     UADP_SPT_NXT(&spt_stPNL_ChangePanelType[1], stPNL_ChangePanelType, pSelPanelType, spt_PanelType);
283     UADP_SPT_FIN(&spt_stPNL_ChangePanelType[2]);
284 
285     UADP_SPT_BGN(&spt_stPNL_TCONMAP_DumpTable[0], sizeof(stPNL_TCONMAP_DumpTable));
286     UADP_SPT_NXT(&spt_stPNL_TCONMAP_DumpTable[1], stPNL_TCONMAP_DumpTable, pTCONTable, spt_TCONTable);
287     UADP_SPT_FIN(&spt_stPNL_TCONMAP_DumpTable[2]);
288 
289     UADP_SPT_BGN(&spt_stPNL_TCONMAP_Power_Sequence[0], sizeof(stPNL_TCONMAP_Power_Sequence));
290     UADP_SPT_NXT(&spt_stPNL_TCONMAP_Power_Sequence[1], stPNL_TCONMAP_Power_Sequence, pTCONTable, spt_TCONTable);
291     UADP_SPT_FIN(&spt_stPNL_TCONMAP_Power_Sequence[2]);
292 
293     UADP_SPT_BGN(&spt_stPNL_TCON_Count_Reset[0], sizeof(stPNL_TCON_Count_Reset));
294     UADP_SPT_FIN(&spt_stPNL_TCON_Count_Reset[1]);
295 
296     UADP_SPT_NAME0NXT(MS_PNL_DST_DispInfo,MS_PNL_DST_DispInfo);
297     UADP_SPT_NAME1NXT(stPNL_GetDstInfo,stPNL_GetDstInfo,pDstInfo,MS_PNL_DST_DispInfo);
298     //UADP_SPT_BGN(&spt_stPNL_GetDstInfo[0], sizeof(stPNL_GetDstInfo));
299     //UADP_SPT_NXT(&spt_stPNL_GetDstInfo[1], stPNL_GetDstInfo, pDstInfo, spt_MS_PNL_DST_DispInfo);
300     //UADP_SPT_FIN(&spt_stPNL_GetDstInfo[2]);
301 
302     UADP_SPT_BGN(&spt_stPNL_Control_Out_Swing[0], sizeof(stPNL_Control_Out_Swing));
303     UADP_SPT_FIN(&spt_stPNL_Control_Out_Swing[1]);
304 
305     UADP_SPT_BGN(&spt_stPNL_SetOutputPattern[0], sizeof(stPNL_SetOutputPattern));
306     UADP_SPT_FIN(&spt_stPNL_SetOutputPattern[1]);
307 
308     UADP_SPT_BGN(&spt_stPNL_Mod_Calibration_Setting[0], sizeof(stPNL_Mod_Calibration_Setting));
309     UADP_SPT_NXT(&spt_stPNL_Mod_Calibration_Setting[1], stPNL_Mod_Calibration_Setting, pstModCaliInfo, spt_MS_PNL_ModCaliInfo);
310     UADP_SPT_FIN(&spt_stPNL_Mod_Calibration_Setting[2]);
311 
312     UADP_SPT_BGN(&spt_stPNL_Mod_Do_Calibration[0], sizeof(stPNL_Mod_Do_Calibration));
313     UADP_SPT_FIN(&spt_stPNL_Mod_Do_Calibration[1]);
314 
315     UADP_SPT_BGN(&spt_stPNL_BD_LVDS_Output_Type[0], sizeof(stPNL_BD_LVDS_Output_Type));
316     UADP_SPT_FIN(&spt_stPNL_BD_LVDS_Output_Type[1]);
317 
318     UADP_SPT_BGN(&spt_stPNL_SetLPLLTypeExt[0], sizeof(stPNL_SetLPLLTypeExt));
319     UADP_SPT_FIN(&spt_stPNL_SetLPLLTypeExt[1]);
320 
321     UADP_SPT_BGN(&spt_stPNL_Init_MISC[0], sizeof(stPNL_Init_MISC));
322     UADP_SPT_FIN(&spt_stPNL_Init_MISC[1]);
323 
324     UADP_SPT_NAME0NXT(stPNL_Get_MISC_Status,stPNL_Get_MISC_Status);
325 
326     UADP_SPT_BGN(&spt_stPNL_Control_Out_Swing[0], sizeof(stPNL_Control_Out_Swing));
327     UADP_SPT_FIN(&spt_stPNL_Control_Out_Swing[1]);
328 
329     UADP_SPT_BGN(&spt_stPNL_MOD_OutputConfig_User[0], sizeof(stPNL_MOD_OutputConfig_User));
330     UADP_SPT_FIN(&spt_stPNL_MOD_OutputConfig_User[1]);
331 
332     UADP_SPT_NAME0NXT(stPNL_MOD_OutputChannelOrder,stPNL_MOD_OutputChannelOrder);
333 
334     UADP_SPT_BGN(&spt_stPNL_HWLVDSReservedtoLRFlag[0], sizeof(stPNL_HWLVDSReservedtoLRFlag));
335     UADP_SPT_FIN(&spt_stPNL_HWLVDSReservedtoLRFlag[1]);
336 
337     UADP_SPT_BGN(&spt_stPNL_MOD_PVDD_Power_Setting[0], sizeof(stPNL_MOD_PVDD_Power_Setting));
338     UADP_SPT_FIN(&spt_stPNL_MOD_PVDD_Power_Setting[1]);
339 
340     UADP_SPT_BGN(&spt_stPNL_SetSSC_En[0], sizeof(stPNL_SetSSC_En));
341     UADP_SPT_FIN(&spt_stPNL_SetSSC_En[1]);
342 
343     UADP_SPT_BGN(&spt_stPNL_Control_Out_Swing[0], sizeof(stPNL_Control_Out_Swing));
344     UADP_SPT_FIN(&spt_stPNL_Control_Out_Swing[1]);
345 
346     UADP_SPT_BGN(&spt_stPNL_SetSSC_Fmodulation[0], sizeof(stPNL_SetSSC_Fmodulation));
347     UADP_SPT_FIN(&spt_stPNL_SetSSC_Fmodulation[1]);
348 
349     UADP_SPT_BGN(&spt_stPNL_SetSSC_Rdeviation[0], sizeof(stPNL_SetSSC_Rdeviation));
350     UADP_SPT_FIN(&spt_stPNL_SetSSC_Rdeviation[1]);
351 
352     UADP_SPT_NAME0NXT(stPNL_SetOSDSSC_En,stPNL_SetOSDSSC_En);
353 
354     UADP_SPT_NAME0NXT(stPNL_SetOSDSSC_Fmodulation,stPNL_SetOSDSSC_Fmodulation);
355 
356     UADP_SPT_NAME0NXT(stPNL_SetOSDSSC_Rdeviation,stPNL_SetOSDSSC_Rdeviation);
357 
358     UADP_SPT_BGN(&spt_stPNL_Control_Out_Swing[0], sizeof(stPNL_Control_Out_Swing));
359     UADP_SPT_FIN(&spt_stPNL_Control_Out_Swing[1]);
360 
361     UADP_SPT_BGN(&spt_stPNL_SkipTimingChange[0], sizeof(stPNL_SkipTimingChange));
362     UADP_SPT_FIN(&spt_stPNL_SkipTimingChange[1]);
363 
364     UADP_SPT_NAME0NXT(stPNL_PreSetModeOn,stPNL_PreSetModeOn);
365 
366     UADP_SPT_BGN(&spt_stPNL_OverDriver_Init[0], sizeof(stPNL_OverDriver_Init));
367     UADP_SPT_NXT(&spt_stPNL_OverDriver_Init[1], stPNL_OverDriver_Init, pPNL_ODInitData, spt_MS_PNL_OD_INITDATA);
368     UADP_SPT_FIN(&spt_stPNL_OverDriver_Init[2]);
369 
370     UADP_SPT_BGN(&spt_stPNL_OverDriver_Enable[0], sizeof(stPNL_OverDriver_Enable));
371     UADP_SPT_FIN(&spt_stPNL_OverDriver_Enable[1]);
372 
373     UADP_SPT_BGN(&spt_stPNL_Get_LPLL_Type[0], sizeof(stPNL_Get_LPLL_Type));
374     UADP_SPT_FIN(&spt_stPNL_Get_LPLL_Type[1]);
375 
376     UADP_SPT_BGN(&spt_stPNL_Get_TCON_Capability[0], sizeof(stPNL_Get_TCON_Capability));
377     UADP_SPT_FIN(&spt_stPNL_Get_TCON_Capability[1]);
378 
379     UADP_SPT_BGN(&spt_stPNL_SetPairSwap[0], sizeof(stPNL_SetPairSwap));
380     UADP_SPT_FIN(&spt_stPNL_SetPairSwap[1]);
381 
382     UADP_SPT_BGN(&spt_stPNL_SetExt_LPLL_Type[0], sizeof(stPNL_SetExt_LPLL_Type));
383     UADP_SPT_FIN(&spt_stPNL_SetExt_LPLL_Type[1]);
384 
385     UADP_SPT_BGN(&spt_stPNL_CalExtLPLLSETbyDClk[0], sizeof(stPNL_CalExtLPLLSETbyDClk));
386     UADP_SPT_FIN(&spt_stPNL_CalExtLPLLSETbyDClk[1]);
387 
388     UADP_SPT_BGN(&spt_stPNL_SetDiffSwingLevel[0], sizeof(stPNL_SetDiffSwingLevel));
389     UADP_SPT_FIN(&spt_stPNL_SetDiffSwingLevel[1]);
390 
391     UADP_SPT_BGN(&spt_stPNL_SetPowerState[0], sizeof(stPNL_SetPowerState));
392     UADP_SPT_FIN(&spt_stPNL_SetPowerState[1]);
393 
394     UADP_SPT_BGN(&spt_stPNL_ForceSetPanelDCLK[0], sizeof(stPNL_ForceSetPanelDCLK));
395     UADP_SPT_FIN(&spt_stPNL_ForceSetPanelDCLK[1]);
396 
397     UADP_SPT_BGN(&spt_stPNL_EnableInternalTermination[0], sizeof(stPNL_EnableInternalTermination));
398     UADP_SPT_FIN(&spt_stPNL_EnableInternalTermination[1]);
399 
400     UADP_SPT_BGN(&spt_stPNL_OutputDeviceHandshake[0], sizeof(stPNL_OutputDeviceHandshake));
401     UADP_SPT_FIN(&spt_stPNL_OutputDeviceHandshake[1]);
402 
403     UADP_SPT_BGN(&spt_stPNL_OutputDeviceOCHandshake[0], sizeof(stPNL_OutputDeviceOCHandshake));
404     UADP_SPT_FIN(&spt_stPNL_OutputDeviceOCHandshake[1]);
405 
406     UADP_SPT_BGN(&spt_stPNL_SetOutputInterlaceTiming[0], sizeof(stPNL_SetOutputInterlaceTiming));
407     UADP_SPT_FIN(&spt_stPNL_SetOutputInterlaceTiming[1]);
408 
409     UADP_SPT_NAME0NXT(stPNL_GetOutputInterlaceTiming,stPNL_GetOutputInterlaceTiming);
410 
411     UADP_SPT_NAME1NXT(stPNL_GetPanelData,stPNL_GetPanelData,pstPNLData,PanelType);
412     UADP_SPT_NAME0NXT(stPNL_SetSSC,stPNL_SetSSC);
413     UADP_SPT_NAME0NXT(stPNL_GetPanelOnTiming,stPNL_GetPanelOnTiming);
414     UADP_SPT_NAME0NXT(stPNL_GetPanelOffTiming,stPNL_GetPanelOffTiming);
415     UADP_SPT_NAME0NXT(stPNL_GetPanelDimCtrl,stPNL_GetPanelDimCtrl);
416 
417     //gamma
418     UADP_SPT_BGN(&spt_GammaTab[0], sizeof(MS_U8)*386);
419     UADP_SPT_FIN(&spt_GammaTab[1]);
420     UADP_SPT_NAME3NXT(stPNL_SetGammaTbl,stPNL_SetGammaTbl,pu8GammaTab[0],GammaTab,pu8GammaTab[1],GammaTab,pu8GammaTab[2],GammaTab);
421     //
422     UADP_SPT_NAME0NXT(stPNL_EnablePanel,stPNL_EnablePanel);
423     UADP_SPT_NAME0NXT(stPNL_GetLPLLMode,stPNL_GetLPLLMode);
424     UADP_SPT_NAME0NXT(stPNL_GetDefVFreq,stPNL_GetDefVFreq);
425     UADP_SPT_NAME0NXT(stPNL_ForceSetPanelHStart,stPNL_ForceSetPanelHStart);
426     UADP_SPT_BGN(&spt_PNLName[0], sizeof(char)*20);
427     UADP_SPT_FIN(&spt_PNLName[1]);
428     UADP_SPT_NAME1NXT(stPNL_GetName,stPNL_GetName,pPNLName,PNLName);
429     UADP_SPT_NAME0NXT(stPNL_GetHstart,stPNL_GetHstart);
430     UADP_SPT_NAME0NXT(stPNL_GetVstart,stPNL_GetVstart);
431     UADP_SPT_NAME0NXT(stPNL_GetWidth,stPNL_GetWidth);
432     UADP_SPT_NAME0NXT(stPNL_GetHeight,stPNL_GetHeight);
433     UADP_SPT_NAME0NXT(stPNL_GetHtotal,stPNL_GetHtotal);
434     UADP_SPT_NAME0NXT(stPNL_GetVtotal,stPNL_GetVtotal);
435     UADP_SPT_NAME0NXT(stPNL_GetHsyncWidth,stPNL_GetHsyncWidth);
436     UADP_SPT_NAME0NXT(stPNL_GetHsyncBackPorch,stPNL_GetHsyncBackPorch);
437     UADP_SPT_NAME0NXT(stPNL_GetVsyncBackPorch,stPNL_GetVsyncBackPorch);
438     UADP_SPT_NAME0NXT(stPNL_GetLPLLType,stPNL_GetLPLLType);
439     UADP_SPT_NAME0NXT(stPNL_GetARC,stPNL_GetARC);
440     UADP_SPT_NAME0NXT(stPNL_GetMinSET,stPNL_GetMinSET);
441     UADP_SPT_NAME0NXT(stPNL_GetMaxSET,stPNL_GetMaxSET);
442     UADP_SPT_NAME0NXT(stPNL_GetOutTimingMode,stPNL_GetOutTimingMode);
443     UADP_SPT_NAME0NXT(stPNL_CheckVBY1HandshakeStatus,stPNL_CheckVBY1HandshakeStatus);
444     UADP_SPT_NAME0NXT(stPNL_MOD_Video_HWTrainingMode,stPNL_MOD_Video_HWTrainingMode);
445     UADP_SPT_NAME0NXT(stPNL_MOD_OSD_HWTrainingMode,stPNL_MOD_OSD_HWTrainingMode);
446     UADP_SPT_NAME0NXT(stPNL_GetVideoHWTraining_status,stPNL_GetVideoHWTraining_status);
447     UADP_SPT_NAME0NXT(stPNL_GetOSDHWTraining_status,stPNL_GetOSDHWTraining_status);
448     //bottom
449     UADP_SPT_BGN(&spt_MSIF_Version[0], sizeof(MSIF_Version));
450     UADP_SPT_FIN(&spt_MSIF_Version[1]);
451 
452     UADP_SPT_BGN(&spt_PNL_ApiInfo[0], sizeof(PNL_ApiInfo));
453     UADP_SPT_FIN(&spt_PNL_ApiInfo[1]);
454 
455     UADP_SPT_BGN(&spt_PNL_ApiStatus[0], sizeof(PNL_ApiStatus));
456     UADP_SPT_FIN(&spt_PNL_ApiStatus[1]);
457 
458     UADP_SPT_BGN(&spt_PNL_ApiExtStatus[0], sizeof(PNL_ApiExtStatus));
459     UADP_SPT_FIN(&spt_PNL_ApiExtStatus[1]);
460 
461     UADP_SPT_BGN(&spt_PanelChar[0], sizeof(char));
462     UADP_SPT_FIN(&spt_PanelChar[1]);
463 
464     UADP_SPT_BGN(&spt_PanelType[0], sizeof(PanelType));
465     UADP_SPT_FIN(&spt_PanelType[1]);
466 
467     //UADP_SPT_BGN(&spt_MS_PNL_DST_DispInfo[0], sizeof(MS_PNL_DST_DispInfo));
468     //UADP_SPT_FIN(&spt_MS_PNL_DST_DispInfo[1]);
469 
470     UADP_SPT_BGN(&spt_MS_PNL_ModCaliInfo[0], sizeof(MS_PNL_ModCaliInfo));
471     UADP_SPT_FIN(&spt_MS_PNL_ModCaliInfo[1]);
472 
473     UADP_SDT_NAME2(MS_PNL_OD_INITDATA,MS_PNL_OD_INITDATA,UADP_SDT_AT,u32OD_MSB_Addr,MS_NULL,UADP_SDT_AT,u32OD_LSB_Size,MS_NULL)
474 
475     *pIoctl= (FUtopiaIOctl)PNL_adp_Ioctl;
476     return 0;
477 
478 }
479 
PNL_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)480 MS_U32 PNL_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
481 {
482     MS_U32 u32Ret = 0;
483     char buffer_arg[2048];
484     pu32PNLInst_private = pInstanceTmp;
485     //printk("\033[1;33m[%s:%d]CMD=%ld\033[m\n",__FUNCTION__,__LINE__,u32Cmd);
486     switch(u32Cmd)
487     {
488         case E_PNL_CMD_GETLIBVER:
489             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetLibVer, spt_stPNL_GetLibVer, buffer_arg, sizeof(buffer_arg));
490             break;
491 
492         case E_PNL_CMD_GETINFO:
493             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_GetInfo, buffer_arg, sizeof(buffer_arg));
494             break;
495 
496         case E_PNL_CMD_GETSTATUS:
497             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetStatus, spt_stPNL_GetStatus, buffer_arg, sizeof(buffer_arg));
498             break;
499 
500         case E_PNL_CMD_GETSTATUSEX:
501             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetStatusEx, spt_stPNL_GetStatusEx, buffer_arg, sizeof(buffer_arg));
502             break;
503 
504         case E_PNL_CMD_SETDBGLEVEL:
505             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetDbgLevel, spt_stPNL_SetDbgLevel, buffer_arg, sizeof(buffer_arg));
506             break;
507 
508         case E_PNL_CMD_IOMAPBASEINIT:
509             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_IOMapBaseInit, buffer_arg, sizeof(buffer_arg));
510             break;
511 
512         case E_PNL_CMD_PREINIT:
513             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_PreInit, spt_stPNL_PreInit, buffer_arg, sizeof(buffer_arg));
514             break;
515 
516         case E_PNL_CMD_INIT:
517             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Init, spt_stPNL_Init, buffer_arg, sizeof(buffer_arg));
518             break;
519 
520         case E_PNL_CMD_INIT_EX:
521             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Init_Ex, spt_stPNL_Init_Ex, buffer_arg, sizeof(buffer_arg));
522             break;
523 
524         case E_PNL_CMD_GET_CONFIG:
525             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetConfig, spt_stPNL_GetConfig, buffer_arg, sizeof(buffer_arg));
526             break;
527 
528         case E_PNL_CMD_SETOUTPUT:
529             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetOutput, NULL, buffer_arg, sizeof(buffer_arg));
530             break;
531 
532         case E_PNL_CMD_CHANGEPANELTYPE:
533             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_ChangePanelType, spt_stPNL_ChangePanelType, buffer_arg, sizeof(buffer_arg));
534             break;
535 
536         case E_PNL_CMD_TCONMAP_DUMPTABLE:
537             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_TCONMAP_DumpTable, spt_stPNL_TCONMAP_DumpTable, buffer_arg, sizeof(buffer_arg));
538             break;
539 
540         case E_PNL_CMD_TCONMAP_POWER_SEQUENCE:
541             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_TCONMAP_Power_Sequence, spt_stPNL_TCONMAP_Power_Sequence, buffer_arg, sizeof(buffer_arg));
542             break;
543 
544         case E_PNL_CMD_TCON_COUNT_RESET:
545             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_TCON_Count_Reset, NULL, buffer_arg, sizeof(buffer_arg));
546             break;
547 
548         case E_PNL_CMD_TCON_INIT:
549             u32Ret = UtopiaIoctl(pInstanceTmp, u32Cmd, pArgs);
550             break;
551 
552         case E_PNL_CMD_GETDSTINFO:
553             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetDstInfo, spt_stPNL_GetDstInfo, buffer_arg, sizeof(buffer_arg));
554             break;
555 
556         case E_PNL_CMD_CONTROL_OUT_SWING:
557             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Control_Out_Swing, spt_stPNL_Control_Out_Swing, buffer_arg, sizeof(buffer_arg));
558             break;
559 
560         case E_PNL_CMD_SET_OUTPUT_PATTERN:
561             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetOutputPattern, spt_stPNL_SetOutputPattern, buffer_arg, sizeof(buffer_arg));
562             break;
563 
564         case E_PNL_CMD_MOD_CALIBRATION_SETTING:
565             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Mod_Calibration_Setting, spt_stPNL_Mod_Calibration_Setting, buffer_arg, sizeof(buffer_arg));
566             break;
567 
568         case E_PNL_CMD_MOD_DO_CALIBRATION:
569             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_Mod_Do_Calibration, buffer_arg, sizeof(buffer_arg));
570             break;
571 
572         case E_PNL_CMD_BD_LVDS_OUTPUT_TYPE:
573             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_BD_LVDS_Output_Type, NULL, buffer_arg, sizeof(buffer_arg));
574             break;
575 
576         case E_PNL_CMD_SETLPLLTYPEEXT:
577             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetLPLLTypeExt, NULL, buffer_arg, sizeof(buffer_arg));
578             break;
579 
580         case E_PNL_CMD_INIT_MISC:
581             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Init_MISC, NULL, buffer_arg, sizeof(buffer_arg));
582             break;
583         case E_PNL_CMD_GET_MISC_STATUS:
584             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_Get_MISC_Status, NULL, buffer_arg, sizeof(buffer_arg));
585             break;
586 
587         case E_PNL_CMD_MOD_OUTPUTCONFIG_USER:
588             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_MOD_OutputConfig_User, NULL, buffer_arg, sizeof(buffer_arg));
589             break;
590 
591         case E_PNL_CMD_MOD_OUTPUT_CHANNEL_ORDER:
592             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_MOD_OutputChannelOrder, NULL, buffer_arg, sizeof(buffer_arg));
593             break;
594 
595         case E_PNL_CMD_HWLVDSRESERVEDTOLRFLAG:
596             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_HWLVDSReservedtoLRFlag, NULL, buffer_arg, sizeof(buffer_arg));
597             break;
598 
599         case E_PNL_CMD_MOD_PVDD_POWER_SETTING:
600             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_MOD_PVDD_Power_Setting, NULL, buffer_arg, sizeof(buffer_arg));
601             break;
602 
603         case E_PNL_CMD_SETSSC_EN:
604             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetSSC_En, spt_stPNL_SetSSC_En, buffer_arg, sizeof(buffer_arg));
605             break;
606 
607         case E_PNL_CMD_SETSSC_FMODULATION:
608             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetSSC_Fmodulation, spt_stPNL_SetSSC_Fmodulation, buffer_arg, sizeof(buffer_arg));
609             break;
610 
611         case E_PNL_CMD_SETSSC_RDEVIATION:
612             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetSSC_Rdeviation, spt_stPNL_SetSSC_Rdeviation, buffer_arg, sizeof(buffer_arg));
613             break;
614 
615         case E_PNL_CMD_SETOSDSSC_EN:
616             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetOSDSSC_En, NULL, buffer_arg, sizeof(buffer_arg));
617             break;
618         case E_PNL_CMD_SETOSDSSC_FMODULATION:
619             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetOSDSSC_Fmodulation, NULL, buffer_arg, sizeof(buffer_arg));
620             break;
621         case E_PNL_CMD_SETOSDSSC_RDEVIATION:
622             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetOSDSSC_Rdeviation, NULL, buffer_arg, sizeof(buffer_arg));
623             break;
624         case E_PNL_CMD_SKIPTIMINGCHANGE:
625             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SkipTimingChange, spt_stPNL_SkipTimingChange, buffer_arg, sizeof(buffer_arg));
626             break;
627 
628         case E_PNL_CMD_PRE_SET_MODE_ON:
629             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_PreSetModeOn, NULL, buffer_arg, sizeof(buffer_arg));
630             break;
631         case E_PNL_CMD_OVERDRIVER_INIT:
632             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_OverDriver_Init, spt_stPNL_OverDriver_Init, buffer_arg, sizeof(buffer_arg));
633             break;
634 
635         case E_PNL_CMD_OVERDRIVER_ENABLE:
636             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_OverDriver_Enable, spt_stPNL_OverDriver_Enable, buffer_arg, sizeof(buffer_arg));
637             break;
638 
639         case E_PNL_CMD_GET_LPLL_TYPE:
640             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_Get_LPLL_Type, buffer_arg, sizeof(buffer_arg));
641             break;
642 
643         case E_PNL_CMD_GET_TCON_CAPABILITY:
644             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_Get_TCON_Capability, buffer_arg, sizeof(buffer_arg));
645             break;
646 
647         case E_PNL_CMD_SETPAIRSWAP:
648             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetPairSwap, NULL, buffer_arg, sizeof(buffer_arg));
649             break;
650 
651         case E_PNL_CMD_SET_EXT_LPLL_TYPE:
652             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetExt_LPLL_Type, NULL, buffer_arg, sizeof(buffer_arg));
653             break;
654 
655         case E_PNL_CMD_CALEXTLPLLSETBYDCLK:
656             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_CalExtLPLLSETbyDClk, NULL, buffer_arg, sizeof(buffer_arg));
657             break;
658 
659         case E_PNL_CMD_SETDIFFSWINGLEVEL:
660             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetDiffSwingLevel, spt_stPNL_SetDiffSwingLevel, buffer_arg, sizeof(buffer_arg));
661             break;
662 
663         case E_PNL_CMD_SETPOWERSTATE:
664             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_SetPowerState, spt_stPNL_SetPowerState, buffer_arg, sizeof(buffer_arg));
665             break;
666 
667         case E_PNL_CMD_FORCESETPANELDCLK:
668             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_ForceSetPanelDCLK, spt_stPNL_ForceSetPanelDCLK, buffer_arg, sizeof(buffer_arg));
669             break;
670 
671         case E_PNL_CMD_ENABLEINTERNALTERMINATION:
672             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_EnableInternalTermination, spt_stPNL_EnableInternalTermination, buffer_arg, sizeof(buffer_arg));
673             break;
674 
675         case E_PNL_CMD_OUTPUTDEVICEHANDSHAKE:
676             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_OutputDeviceHandshake, buffer_arg, sizeof(buffer_arg));
677             break;
678 
679         case E_PNL_CMD_OUTPUTDEVICEOCHANDSHAKE:
680             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_OutputDeviceOCHandshake, buffer_arg, sizeof(buffer_arg));
681             break;
682 
683         case E_PNL_CMD_SETOUTPUTINTERLACETIMING:
684             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, NULL, spt_stPNL_SetOutputInterlaceTiming, buffer_arg, sizeof(buffer_arg));
685             break;
686         case E_PNL_CMD_GETOUTPUTINTERLACETIMING:
687             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_stPNL_GetOutputInterlaceTiming, spt_stPNL_SetOutputInterlaceTiming, buffer_arg, sizeof(buffer_arg));
688             break;
689         case E_PNL_CMD_GETPANELDATA:
690             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_GetPanelData, spt_stPNL_GetPanelData, buffer_arg, sizeof(buffer_arg));
691             break;
692         case E_PNL_CMD_DUMPPANELDATA:
693             u32Ret= UtopiaIoctl(pInstanceTmp,u32Cmd,pArgs);
694             break;
695         case E_PNL_CMD_SETSSC:
696             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_SetSSC, NULL, buffer_arg, sizeof(buffer_arg));
697             break;
698         case E_PNL_CMD_GETPANELONTIMING:
699             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_GetPanelOnTiming, spt_stPNL_GetPanelOnTiming, buffer_arg, sizeof(buffer_arg));
700             break;
701         case E_PNL_CMD_GETPANELOFFTIMING:
702             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_GetPanelOffTiming, spt_stPNL_GetPanelOffTiming, buffer_arg, sizeof(buffer_arg));
703             break;
704         case E_PNL_CMD_GETPANELDIMCTRL:
705             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_GetPanelDimCtrl, spt_stPNL_GetPanelDimCtrl, buffer_arg, sizeof(buffer_arg));
706             break;
707         case E_PNL_CMD_GETALLGAMMATBL:
708             break;
709         case E_PNL_CMD_ENABLEPANEL:
710             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_EnablePanel, spt_stPNL_EnablePanel, buffer_arg, sizeof(buffer_arg));
711             break;
712         case E_PNL_CMD_SETGAMMATBL:
713             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_SetGammaTbl, spt_stPNL_SetGammaTbl, buffer_arg, sizeof(buffer_arg));
714             break;
715         case E_PNL_CMD_GETGAMMATBL:
716             break;
717         case E_PNL_CMD_SETGAMMAVALUE:
718             break;
719         case E_PNL_CMD_GETLPLLMODE:
720             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetLPLLMode, buffer_arg, sizeof(buffer_arg));
721             break;
722         case E_PNL_CMD_GETDEFVFREQ:
723             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetDefVFreq, buffer_arg, sizeof(buffer_arg));
724             break;
725         case E_PNL_CMD_FORCESETPANELHSTART:
726             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_ForceSetPanelHStart, spt_stPNL_ForceSetPanelHStart, buffer_arg, sizeof(buffer_arg));
727             break;
728         case E_PNL_CMD_GETPANELNAME:
729             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetName, buffer_arg, sizeof(buffer_arg));
730             break;
731         case E_PNL_CMD_GETHSTART:
732             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetHstart, buffer_arg, sizeof(buffer_arg));
733             break;
734         case E_PNL_CMD_GETVSTART:
735             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetVstart, buffer_arg, sizeof(buffer_arg));
736             break;
737         case E_PNL_CMD_GETWIDTH:
738             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetWidth, buffer_arg, sizeof(buffer_arg));
739             break;
740         case E_PNL_CMD_GETHEIGHT:
741             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetHeight, buffer_arg, sizeof(buffer_arg));
742             break;
743         case E_PNL_CMD_GETHTOTAL:
744             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetHtotal, buffer_arg, sizeof(buffer_arg));
745             break;
746         case E_PNL_CMD_GETVTOTAL:
747             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetVtotal, buffer_arg, sizeof(buffer_arg));
748             break;
749         case E_PNL_CMD_GETHSYNCWIDTH:
750             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetHsyncWidth, buffer_arg, sizeof(buffer_arg));
751             break;
752         case E_PNL_CMD_GETHSYNCBACKPORCH:
753             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetHsyncBackPorch, buffer_arg, sizeof(buffer_arg));
754             break;
755         case E_PNL_CMD_GETVSYNCBACKPORCH:
756             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetVsyncBackPorch, buffer_arg, sizeof(buffer_arg));
757             break;
758         case E_PNL_CMD_GETLPLLTYPE:
759             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetLPLLType, buffer_arg, sizeof(buffer_arg));
760             break;
761         case E_PNL_CMD_GETARC:
762             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetARC, buffer_arg, sizeof(buffer_arg));
763             break;
764         case E_PNL_CMD_GETMINSET:
765             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetMinSET, buffer_arg, sizeof(buffer_arg));
766             break;
767         case E_PNL_CMD_GETMAXSET:
768             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetMaxSET, buffer_arg, sizeof(buffer_arg));
769             break;
770         case E_PNL_CMD_GETOUTTIMINGMODE:
771             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetOutTimingMode, buffer_arg, sizeof(buffer_arg));
772             break;
773         case E_PNL_CMD_CHECKVBY1HANDSHAKESTATUS:
774             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_CheckVBY1HandshakeStatus, buffer_arg, sizeof(buffer_arg));
775             break;
776         case E_PNL_CMD_SET_VIDEOHWTRAINING_MODE:
777             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_MOD_Video_HWTrainingMode, NULL, buffer_arg, sizeof(buffer_arg));
778             break;
779         case E_PNL_CMD_SET_OSDHWTRAINING_MODE:
780             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,spt_stPNL_MOD_OSD_HWTrainingMode, NULL, buffer_arg, sizeof(buffer_arg));
781             break;
782         case E_PNL_CMD_GET_VIDEOHWTRAINING_MODE:
783             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetVideoHWTraining_status, buffer_arg, sizeof(buffer_arg));
784             break;
785         case E_PNL_CMD_GET_OSDHWTRAINING_MODE:
786             u32Ret = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs,NULL, spt_stPNL_GetOSDHWTraining_status, buffer_arg, sizeof(buffer_arg));
787             break;
788 
789         default:
790             break;
791 
792     }
793 
794     return u32Ret;
795 
796 }
797 
798 #endif
799