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