xref: /utopia/UTPA2-700.0.x/mxlib/include/apiPNL_v2.h (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 #ifndef _API_XC_PANEL_V2_H_
79 #define _API_XC_PANEL_V2_H_
80 
81 #ifdef __cplusplus
82 extern "C"
83 {
84 #endif
85 
86 #include "MsTypes.h"
87 #include "UFO.h"
88 //******** ENUM DEFINITIONS ********//
89 typedef enum
90 {
91     E_PNL_POOL_ID_INTERNAL = 0,
92     E_PNL_POOL_ID_INTERNAL1 = 1,
93 
94     E_PNL_POOL_ID_NUM,
95     E_PNL_POOL_ID_MAX = E_PNL_POOL_ID_NUM,
96 } E_PNL_POOL_ID;
97 
98 /// Define PNL device ID
99 typedef enum
100 {
101     E_PNL_DEVICE_ID_0 = 0,
102     E_PNL_DEVICE_ID_1 = 1,
103     E_PNL_DEVICE_ID_NUM,
104     E_PNL_DEVICE_ID_MAX = E_PNL_DEVICE_ID_NUM,
105 } E_PNL_DEVICE_ID;
106 
107 // For multi-device
108 #define PNL_GET_INTERNAL_POOL_ID(u32Id)\
109             ((u32Id == E_PNL_DEVICE_ID_1) ? E_PNL_POOL_ID_INTERNAL1 : E_PNL_POOL_ID_INTERNAL)
110 
111 typedef enum
112 {
113     E_PNL_CMD_GETLIBVER,
114     E_PNL_CMD_GETINFO,
115     E_PNL_CMD_GETSTATUS,
116     E_PNL_CMD_GETSTATUSEX,
117     E_PNL_CMD_SETDBGLEVEL,
118     E_PNL_CMD_IOMAPBASEINIT,
119     E_PNL_CMD_PREINIT,
120     E_PNL_CMD_INIT,
121     E_PNL_CMD_INIT_EX,
122     E_PNL_CMD_GET_CONFIG,
123     E_PNL_CMD_SETOUTPUT,
124     E_PNL_CMD_CHANGEPANELTYPE,
125     E_PNL_CMD_TCONMAP_DUMPTABLE,
126     E_PNL_CMD_TCONMAP_POWER_SEQUENCE,
127     E_PNL_CMD_TCON_COUNT_RESET,
128     E_PNL_CMD_TCON_INIT,
129     E_PNL_CMD_GETDSTINFO,
130     E_PNL_CMD_CONTROL_OUT_SWING,
131     E_PNL_CMD_SET_OUTPUT_PATTERN,
132     E_PNL_CMD_MOD_CALIBRATION_SETTING,
133     E_PNL_CMD_MOD_DO_CALIBRATION,
134     E_PNL_CMD_BD_LVDS_OUTPUT_TYPE,
135     E_PNL_CMD_SETLPLLTYPEEXT,
136     E_PNL_CMD_INIT_MISC,
137     E_PNL_CMD_GET_MISC_STATUS,
138     E_PNL_CMD_MOD_OUTPUTCONFIG_USER,
139     E_PNL_CMD_MOD_OUTPUT_CHANNEL_ORDER,
140     E_PNL_CMD_HWLVDSRESERVEDTOLRFLAG,
141     E_PNL_CMD_MOD_PVDD_POWER_SETTING,
142     E_PNL_CMD_SETSSC_EN,
143     E_PNL_CMD_SETSSC_FMODULATION,
144     E_PNL_CMD_SETSSC_RDEVIATION,
145     E_PNL_CMD_SETOSDSSC_EN,
146     E_PNL_CMD_SETOSDSSC_FMODULATION,
147     E_PNL_CMD_SETOSDSSC_RDEVIATION,
148     E_PNL_CMD_SKIPTIMINGCHANGE,
149     E_PNL_CMD_PRE_SET_MODE_ON,
150     E_PNL_CMD_OVERDRIVER_INIT,
151     E_PNL_CMD_OVERDRIVER_SETTING,
152     E_PNL_CMD_OVERDRIVER_ENABLE,
153     E_PNL_CMD_GET_LPLL_TYPE,
154     E_PNL_CMD_GET_TCON_CAPABILITY,
155     E_PNL_CMD_SETPAIRSWAP,
156     E_PNL_CMD_SET_EXT_LPLL_TYPE,
157     E_PNL_CMD_CALEXTLPLLSETBYDCLK,
158     E_PNL_CMD_SETDIFFSWINGLEVEL,
159     E_PNL_CMD_SETPOWERSTATE,
160     E_PNL_CMD_FORCESETPANELDCLK,
161     E_PNL_CMD_ENABLEINTERNALTERMINATION,
162     E_PNL_CMD_OUTPUTDEVICEHANDSHAKE,
163     E_PNL_CMD_OUTPUTDEVICEOCHANDSHAKE,
164     E_PNL_CMD_SETOUTPUTINTERLACETIMING,
165     E_PNL_CMD_GETOUTPUTINTERLACETIMING,
166     E_PNL_CMD_GETPANELDATA,
167     E_PNL_CMD_DUMPPANELDATA,
168     E_PNL_CMD_SETSSC,
169     E_PNL_CMD_GETPANELONTIMING,
170     E_PNL_CMD_GETPANELOFFTIMING,
171     E_PNL_CMD_GETPANELDIMCTRL,
172     E_PNL_CMD_GETALLGAMMATBL,
173     E_PNL_CMD_ENABLEPANEL,
174     E_PNL_CMD_SETGAMMATBL,
175     E_PNL_CMD_GETGAMMATBL,
176     E_PNL_CMD_SETPNLGAMMATBL,
177     E_PNL_CMD_SETGAMMAVALUE,
178     E_PNL_CMD_GETLPLLMODE,
179     E_PNL_CMD_GETDEFVFREQ,
180     E_PNL_CMD_FORCESETPANELHSTART,
181     E_PNL_CMD_GETPANELNAME,
182     E_PNL_CMD_GETHSTART,
183     E_PNL_CMD_GETVSTART,
184     E_PNL_CMD_GETWIDTH,
185     E_PNL_CMD_GETHEIGHT,
186     E_PNL_CMD_GETHTOTAL,
187     E_PNL_CMD_GETVTOTAL,
188     E_PNL_CMD_GETHSYNCWIDTH,
189     E_PNL_CMD_GETHSYNCBACKPORCH,
190     E_PNL_CMD_GETVSYNCBACKPORCH,
191     E_PNL_CMD_GETLPLLTYPE,
192     E_PNL_CMD_GETARC,
193     E_PNL_CMD_GETMINSET,
194     E_PNL_CMD_GETMAXSET,
195     E_PNL_CMD_GETOUTTIMINGMODE,
196 #if defined(UFO_PUBLIC_HEADER_300) || defined(UFO_PUBLIC_HEADER_212)
197     E_PNL_CMD_GETSUPPORTMAXDCLK,
198     E_PNL_CMD_INIT_LOCALDIMMING,
199 #else
200     E_PNL_CMD_CHECKVBY1HANDSHAKESTATUS,
201     E_PNL_CMD_SET_VIDEOHWTRAINING_MODE,
202     E_PNL_CMD_SET_OSDHWTRAINING_MODE,
203     E_PNL_CMD_GET_VIDEOHWTRAINING_MODE,
204     E_PNL_CMD_GET_OSDHWTRAINING_MODE,
205     E_PNL_CMD_Setting,
206 #endif
207     E_PNL_CMD_NUM,
208     E_PNL_CMD_MAX = E_PNL_CMD_NUM,
209 } E_PNL_IOCTL_CMDS;
210 
211 typedef struct DLL_PACKED  _stPNL_GetLibVer
212 {
213     const MSIF_Version **ppVersion;
214     APIPNL_Result eResult;
215 } stPNL_GetLibVer, *pstPNL_GetLibVer;
216 
217 typedef struct DLL_PACKED  _stPNL_GetInfo
218 {
219     const PNL_ApiInfo *pApiInfo;
220 } stPNL_GetInfo, *pstPNL_GetInfo;
221 
222 typedef struct DLL_PACKED  _stPNL_GetStatus
223 {
224     PNL_ApiStatus *pPnlStatus;
225     MS_BOOL bReturn;
226 } stPNL_GetStatus, *pstPNL_GetStatus;
227 
228 typedef struct DLL_PACKED  _stPNL_GetStatusEx
229 {
230     PNL_ApiExtStatus *pPnlExtStatus;
231     MS_BOOL bReturn;
232 } stPNL_GetStatusEx, *pstPNL_GetStatusEx;
233 
234 typedef struct _stPNL_SetDbgLevel
235 {
236     MS_U16 u16DbgSwitch;
237     MS_BOOL bReturn;
238 } stPNL_SetDbgLevel, *pstPNL_SetDbgLevel;
239 
240 typedef struct _stPNL_IOMapBaseInit
241 {
242     MS_BOOL bReturn;
243 } stPNL_IOMapBaseInit, *pstPNL_IOMapBaseInit;
244 
245 typedef struct _stPNL_PreInit
246 {
247     E_PNL_PREINIT_OPTIONS eInitParam;
248     MS_BOOL bReturn;
249 } stPNL_PreInit, *pstPNL_PreInit;
250 
251 typedef struct DLL_PACKED  _stPNL_Init
252 {
253     PanelType *pSelPanelType;
254     MS_BOOL bReturn;
255 } stPNL_Init, *pstPNL_Init;
256 
257 typedef struct DLL_PACKED  _stPNL_Init_Ex
258 {
259     PanelType *pSelPanelType;
260     MSIF_Version LIBVER;
261     MS_BOOL bReturn;
262 } stPNL_Init_Ex, *pstPNL_Init_Ex;
263 
264 typedef struct DLL_PACKED  _stPNL_GetConfig
265 {
266     PanelType *pSelPanelType;
267     APIPNL_Result eReturn;
268 } stPNL_GetConfig, *pstPNL_GetConfig;
269 
270 typedef struct _stPNL_SetOutput
271 {
272     APIPNL_OUTPUT_MODE eOutputMode;
273 } stPNL_SetOutput, *pstPNL_SetOutput;
274 
275 typedef struct DLL_PACKED  _stPNL_ChangePanelType
276 {
277     PanelType *pSelPanelType;
278     MS_BOOL bReturn;
279 } stPNL_ChangePanelType, *pstPNL_ChangePanelType;
280 
281 typedef struct DLL_PACKED  _stPNL_TCONMAP_DumpTable
282 {
283     MS_U8 *pTCONTable;
284     MS_U8 u8Tcontype;
285     MS_BOOL bReturn;
286 } stPNL_TCONMAP_DumpTable, *pstPNL_TCONMAP_DumpTable;
287 
288 typedef struct DLL_PACKED  _stPNL_TCONMAP_Power_Sequence
289 {
290     MS_U8 *pTCONTable;
291     MS_BOOL bEnable;
292     MS_BOOL bReturn;
293 } stPNL_TCONMAP_Power_Sequence, *pstPNL_TCONMAP_Power_Sequence;
294 
295 typedef struct _stPNL_TCON_Count_Reset
296 {
297     MS_BOOL bEnable;
298 } stPNL_TCON_Count_Reset, *pstPNL_TCON_Count_Reset;
299 
300 typedef struct _stPNL_TCON_Init
301 {
302 } stPNL_TCON_Init, *pstPNL_TCON_Init;
303 
304 typedef struct DLL_PACKED  _stPNL_GetDstInfo
305 {
306     MS_PNL_DST_DispInfo *pDstInfo;
307     MS_U32 u32SizeofDstInfo;
308     MS_BOOL bReturn;
309 } stPNL_GetDstInfo, *pstPNL_GetDstInfo;
310 
311 typedef struct _stPNL_Control_Out_Swing
312 {
313     MS_U16 u16Swing_Level;
314     MS_BOOL bReturn;
315 } stPNL_Control_Out_Swing, *pstPNL_Control_Out_Swing;
316 
317 typedef struct _stPNL_SetOutputPattern
318 {
319     MS_BOOL bEnable;
320     MS_U16 u16Red;
321     MS_U16 u16Green;
322     MS_U16 u16Blue;
323 } stPNL_SetOutputPattern, *pstPNL_SetOutputPattern;
324 
325 typedef struct DLL_PACKED  _stPNL_Mod_Calibration_Setting
326 {
327 	MS_PNL_ModCaliInfo *pstModCaliInfo;
328 	MS_BOOL bReturn;
329 } stPNL_Mod_Calibration_Setting, *pstPNL_Mod_Calibration_Setting;
330 
331 typedef struct _stPNL_Mod_Do_Calibration
332 {
333     MS_BOOL bReturn;
334 } stPNL_Mod_Do_Calibration, *pstPNL_Mod_Do_Calibration;
335 
336 typedef struct _stPNL_BD_LVDS_Output_Type
337 {
338     MS_U16 Type;
339 } stPNL_BD_LVDS_Output_Type, *pstPNL_BD_LVDS_Output_Type;
340 
341 typedef struct _stPNL_SetLPLLTypeExt
342 {
343     APIPNL_LINK_EXT_TYPE eLPLL_TypeExt;
344 } stPNL_SetLPLLTypeExt, *pstPNL_SetLPLLTypeExt;
345 
346 typedef struct _stPNL_Init_MISC
347 {
348     APIPNL_MISC ePNL_MISC;
349 } stPNL_Init_MISC, *pstPNL_Init_MISC;
350 
351 typedef struct _stPNL_Get_MISC_Status
352 {
353     MS_U32 u32Status;
354 } stPNL_Get_MISC_Status, *pstPNL_Get_MISC_Status;
355 
356 typedef struct _stPNL_MOD_OutputConfig_User
357 {
358     MS_U32 u32OutputCFG0_7;
359     MS_U32 u32OutputCFG8_15;
360     MS_U32 u32OutputCFG16_21;
361 } stPNL_MOD_OutputConfig_User, *pstPNL_MOD_OutputConfig_User;
362 
363 typedef struct _stPNL_MOD_OutputChannelOrder
364 {
365     MS_U8  u8OutputOrderType;
366     MS_U16 u16OutputOrder0_3;
367     MS_U16 u16OutputOrder4_7;
368     MS_U16 u16OutputOrder8_11;
369     MS_U16 u16OutputOrder12_13;
370 } stPNL_MOD_OutputChannelOrder, *pstPNL_MOD_OutputChannelOrder;
371 
372 typedef struct _stPNL_HWLVDSReservedtoLRFlag
373 {
374     MS_PNL_HW_LVDSResInfo lvdsresinfo;
375 } stPNL_HWLVDSReservedtoLRFlag, *pstPNL_HWLVDSReservedtoLRFlag;
376 
377 typedef struct _stPNL_MOD_PVDD_Power_Setting
378 {
379     MS_BOOL bIs2p5;
380 } stPNL_MOD_PVDD_Power_Setting, *pstPNL_MOD_PVDD_Power_Setting;
381 
382 typedef struct _stPNL_SetSSC_En
383 {
384     MS_BOOL bEnable;
385     APIPNL_Result eReturn;
386 } stPNL_SetSSC_En, *pstPNL_SetSSC_En;
387 
388 typedef struct _stPNL_SetSSC_Fmodulation
389 {
390     MS_U16 u16Fmodulation;
391     APIPNL_Result eReturn;
392 } stPNL_SetSSC_Fmodulation, *pstPNL_SetSSC_Fmodulation;
393 
394 typedef struct _stPNL_SetSSC_Rdeviation
395 {
396     MS_U16 u16Rdeviation;
397     APIPNL_Result eReturn;
398 } stPNL_SetSSC_Rdeviation, *pstPNL_SetSSC_Rdeviation;
399 
400 typedef struct _stPNL_SetOSDSSC_En
401 {
402     MS_BOOL bEnable;
403     APIPNL_Result eReturn;
404 } stPNL_SetOSDSSC_En, *pstPNL_SetOSDSSC_En;
405 
406 typedef struct _stPNL_SetOSDSSC_Fmodulation
407 {
408     MS_U16 u16Fmodulation;
409     APIPNL_Result eReturn;
410 } stPNL_SetOSDSSC_Fmodulation, *pstPNL_SetOSDSSC_Fmodulation;
411 
412 typedef struct _stPNL_SetOSDSSC_Rdeviation
413 {
414     MS_U16 u16Rdeviation;
415     APIPNL_Result eReturn;
416 } stPNL_SetOSDSSC_Rdeviation, *pstPNL_SetOSDSSC_Rdeviation;
417 
418 typedef struct _stPNL_SkipTimingChange
419 {
420     MS_BOOL bFlag;
421     APIPNL_Result eResult;
422 } stPNL_SkipTimingChange, *pstPNL_SkipTimingChange;
423 
424 typedef struct _stPNL_PreSetModeOn
425 {
426     MS_BOOL bSetMode;
427     APIPNL_Result eResult;
428 } stPNL_PreSetModeOn, *pstPNL_PreSetModeOn;
429 
430 typedef struct DLL_PACKED  _stPNL_OverDriver_Init
431 {
432     MS_PNL_OD_INITDATA *pPNL_ODInitData;
433     MS_U32 u32ODInitDataLen;
434     APIPNL_Result eResult;
435 } stPNL_OverDriver_Init, *pstPNL_OverDriver_Init;
436 
437 typedef struct DLL_PACKED  _stPNL_OverDriver_Setting
438 {
439     MS_PNL_OD_SETTING *pPNL_ODSetting;
440     MS_U32 u32ODInitDataLen;
441     APIPNL_Result eResult;
442 } stPNL_OverDriver_Setting, *pstPNL_OverDriver_Setting;
443 
444 
445 typedef struct _stPNL_OverDriver_Enable
446 {
447     MS_BOOL bEnable;
448     APIPNL_Result eResult;
449 } stPNL_OverDriver_Enable, *pstPNL_OverDriver_Enable;
450 
451 typedef struct _stPNL_Get_LPLL_Type
452 {
453     MS_U8 u8Return;
454 } stPNL_Get_LPLL_Type, *pstPNL_Get_LPLL_Type;
455 
456 typedef struct _stPNL_Get_TCON_Capability
457 {
458     MS_BOOL bReturn;
459 } stPNL_Get_TCON_Capability, *pstPNL_Get_TCON_Capability;
460 
461 typedef struct _stPNL_SetPairSwap
462 {
463     MS_U32 u32Polarity;
464 } stPNL_SetPairSwap, *pstPNL_SetPairSwap;
465 
466 typedef struct _stPNL_SetExt_LPLL_Type
467 {
468     MS_U16 u16Ext_lpll_type;
469 } stPNL_SetExt_LPLL_Type, *pstPNL_SetExt_LPLL_Type;
470 
471 typedef struct _stPNL_CalExtLPLLSETbyDClk
472 {
473     MS_U32 ldHz;
474 } stPNL_CalExtLPLLSETbyDClk, *pstPNL_CalExtLPLLSETbyDClk;
475 
476 typedef struct _stPNL_SetDiffSwingLevel
477 {
478     MS_U8 u8Swing_Level;
479     MS_BOOL bReturn;
480 } stPNL_SetDiffSwingLevel, *pstPNL_SetDiffSwingLevel;
481 
482 typedef struct _stPNL_SetPowerState
483 {
484     EN_POWER_MODE ePowerState;
485     MS_U32 u32Return;
486 } stPNL_SetPowerState, *pstPNL_SetPowerState;
487 
488 typedef struct _stPNL_ForceSetPanelDCLK
489 {
490     MS_U16 u16PanelDCLK;
491     MS_BOOL bSetDCLKEnable;
492     MS_BOOL bReturn;
493 } stPNL_ForceSetPanelDCLK, *pstPNL_ForceSetPanelDCLK;
494 
495 typedef struct _stPNL_ForceSetPanelHStart
496 {
497     MS_U16 u16PanelHStart;
498     MS_BOOL bSetHStartEnable;
499     MS_BOOL bReturn;
500 } stPNL_ForceSetPanelHStart, *pstPNL_ForceSetPanelHStart;
501 
502 typedef struct _stPNL_EnableInternalTermination
503 {
504     MS_BOOL bEnable;
505     MS_BOOL bReturn;
506 } stPNL_EnableInternalTermination, *pstPNL_EnableInternalTermination;
507 
508 typedef struct _stPNL_OutputDeviceHandshake
509 {
510     MS_BOOL bReturn;
511 } stPNL_OutputDeviceHandshake, *pstPNL_OutputDeviceHandshake;
512 
513 typedef struct _stPNL_OutputDeviceOCHandshake
514 {
515     MS_BOOL bReturn;
516 } stPNL_OutputDeviceOCHandshake, *pstPNL_OutputDeviceOCHandshake;
517 
518 typedef struct _stPNL_SetOutputInterlaceTiming
519 {
520     MS_BOOL bEnable;
521     APIPNL_Result eReturn;
522 } stPNL_SetOutputInterlaceTiming, *pstPNL_SetOutputInterlaceTiming;
523 
524 typedef struct _stPNL_GetOutputInterlaceTiming
525 {
526     MS_BOOL bReturn;
527 } stPNL_GetOutputInterlaceTiming, *pstPNL_GetOutputInterlaceTiming;
528 
529 typedef struct DLL_PACKED  _stPNL_GetPanelData
530 {
531     PanelType* pstPNLData;
532 } stPNL_GetPanelData, *pstPNL_GetPanelData;
533 
534 typedef struct _stPNL_SetSSC
535 {
536     MS_U16 u16Fmodulation;
537     MS_U16 u16Rdeviation;
538     MS_BOOL bEnable;
539 } stPNL_SetSSC, *pstPNL_SetSSC;
540 
541 typedef struct _stPNL_GetPanelOnTiming
542 {
543     APIPNL_POWER_TIMING_SEQ seq;
544     MS_U16 u16Return;
545 } stPNL_GetPanelOnTiming, *pstPNL_GetPanelOnTiming;
546 
547 typedef struct _stPNL_GetPanelOffTiming
548 {
549     APIPNL_POWER_TIMING_SEQ seq;
550     MS_U16 u16Return;
551 } stPNL_GetPanelOffTiming, *pstPNL_GetPanelOffTiming;
552 
553 typedef struct _stPNL_GetPanelDimCtrl
554 {
555     APIPNL_DIMMING_CTRL dim_type;
556     MS_U8 u8Return;
557 } stPNL_GetPanelDimCtrl, *pstPNL_GetPanelDimCtrl;
558 
559 typedef struct DLL_PACKED  _stPNL_GetAllGammaTbl
560 {
561     MS_U8** ppu8Return;
562 } stPNL_GetAllGammaTbl, *pstPNL_GetAllGammaTbl;
563 
564 typedef struct _stPNL_EnablePanel
565 {
566     MS_BOOL bPanelOn;
567     MS_BOOL bReturn;
568 } stPNL_EnablePanel, *pstPNL_EnablePanel;
569 
570 typedef struct  DLL_PACKED  _stPNL_SetGammaTbl
571 {
572     APIPNL_GAMMA_TYPE eGammaType;
573     MS_U8* pu8GammaTab[3];
574     APIPNL_GAMMA_MAPPEING_MODE Gamma_Map_Mode;
575     MS_BOOL bReturn;
576 } stPNL_SetGammaTbl, *pstPNL_SetGammaTbl;
577 
578 typedef struct DLL_PACKED  _stPNL_GetGammaTbl
579 {
580     APIPNL_GAMMA_TYPE eGammaType;
581     MS_U8* pu8GammaTab[3];
582     APIPNL_GAMMA_MAPPEING_MODE Gamma_Map_Mode;
583     MS_BOOL bReturn;
584 } stPNL_GetGammaTbl, *pstPNL_GetGammaTbl;
585 
586 typedef struct DLL_PACKED  _stPNL_SetPNLGammaTbl
587 {
588     MS_U8* pu8GammaTab;
589     MS_U8 u8Index;
590     MS_BOOL bReturn;
591 } stPNL_SetPNLGammaTbl, *pstPNL_SetPNLGammaTbl;
592 
593 
594 typedef struct _stPNL_SetGammaValue
595 {
596     MS_U8 u8Channel;
597     MS_U16 u16Offset;
598     MS_U16 u16GammaValue;
599     MS_BOOL bReturn;
600 } stPNL_SetGammaValue, *pstPNL_SetGammaValue;
601 
602 typedef struct _stPNL_GetLPLLMode
603 {
604     MS_U8 u8Return;
605 } stPNL_GetLPLLMode, *pstPNL_GetLPLLMode;
606 
607 typedef struct _stPNL_GetDefVFreqe
608 {
609     MS_U16 u16Return;
610 } stPNL_GetDefVFreq, *pstPNL_GetDefVFreq;
611 
612 typedef struct DLL_PACKED  _stPNL_GetName
613 {
614     const char* pPNLName;
615 }stPNL_GetName, *pstPNL_GetName;
616 
617 typedef struct _stPNL_GetHstart
618 {
619     MS_U16 u16Return;
620 } stPNL_GetHstart, *pstPNL_GetHstart;
621 
622 typedef struct _stPNL_GetVstart
623 {
624     MS_U16 u16Return;
625 } stPNL_GetVstart, *pstPNL_GetVstart;
626 
627 typedef struct _stPNL_GetWidth
628 {
629     MS_U16 u16Return;
630 } stPNL_GetWidth, *pstPNL_GetWidth;
631 
632 typedef struct _stPNL_GetHeight
633 {
634     MS_U16 u16Return;
635 } stPNL_GetHeight, *pstPNL_GetHeight;
636 
637 typedef struct _stPNL_GetHtotal
638 {
639     MS_U16 u16Return;
640 } stPNL_GetHtotal, *pstPNL_GetHtotal;
641 
642 typedef struct _stPNL_GetVtotal
643 {
644     MS_U16 u16Return;
645 } stPNL_GetVtotal, *pstPNL_GetVtotal;
646 
647 typedef struct stPNL_GetHsyncWidth
648 {
649     MS_U8 u8Return;
650 } stPNL_GetHsyncWidth,*pstPNL_GetHsyncWidth;
651 
652 typedef struct _stPNL_GetHsyncBackPorch
653 {
654     MS_U8 u8Return;
655 } stPNL_GetHsyncBackPorch,*pstPNL_GetHsyncBackPorch;
656 
657 typedef struct _stPNL_GetVsyncBackPorch
658 {
659     MS_U8 u8Return;
660 } stPNL_GetVsyncBackPorch,*pstPNL_GetVsyncBackPorch;
661 
662 typedef struct _stPNL_GetLPLLType
663 {
664     MS_U8 u8Return;
665 } stPNL_GetLPLLType,*pstPNL_GetLPLLType;
666 
667 typedef struct _stPNL_GetARC
668 {
669     E_PNL_ASPECT_RATIO ePanelAspectRatio;
670 } stPNL_GetARC,*pstPNL_GetARC;
671 
672 typedef struct _stPNL_GetMinSET
673 {
674     MS_U32 u32Return;
675 } stPNL_GetMinSET,*pstPNL_GetMinSET;
676 
677 typedef struct _stPNL_GetMaxSET
678 {
679     MS_U32 u32Return;
680 } stPNL_GetMaxSET,*pstPNL_GetMaxSET;
681 
682 typedef struct _stPNL_GetOutTimingMode
683 {
684     APIPNL_OUT_TIMING_MODE ePanelOutTimingMode;
685 } stPNL_GetOutTimingMode,*pstPNL_GetOutTimingMode;
686 
687 typedef struct _stPNL_GetSupportMaxDclk
688 {
689     MS_U16 u16Return;
690 } stPNL_GetSupportMaxDclk,*pstPNL_GetSupportMaxDclk;
691 
692 typedef struct _stPNL_Init_LocalDimming
693 {
694     pstPNL_Init_LocalDimming_Parameters pLD_InitData;
695     MS_U16 u16DataLen;
696     MS_U16 u16Return;
697 } stPNL_Init_LocalDimming, *pstPNL_Init_LocalDimming;
698 
699 typedef struct _stPNL_CheckVBY1HandshakeStatus
700 {
701     MS_BOOL bResult;
702 } stPNL_CheckVBY1HandshakeStatus,*pstPNL_CheckVBY1HandshakeStatus;
703 
704 typedef struct _stPNL_MOD_Video_HWTrainingMode
705 {
706     MS_BOOL bEnable;
707 }stPNL_MOD_Video_HWTrainingMode,*pstPNL_MOD_Video_HWTrainingMode;
708 
709 typedef struct _stPNL_MOD_OSD_HWTrainingMode
710 {
711     MS_BOOL bEnable;
712 }stPNL_MOD_OSD_HWTrainingMode,*pstPNL_MOD_OSD_HWTrainingMode;
713 
714 typedef struct _stPNL_GetVideoHWTraining_status
715 {
716     MS_BOOL bStatus;
717 }stPNL_GetVideoHWTraining_status,*pstPNL_GetVideoHWTraining_status;
718 
719 typedef struct _stPNL_GetOSDHWTraining_status
720 {
721     MS_BOOL bStatus;
722 }stPNL_GetOSDHWTraining_status,*pstPNL_GetOSDHWTraining_status;
723 
724 typedef struct DLL_PACKED _stPNL_Setting
725 {
726     MS_U32 u32Cmd;
727     void *pCmdArgs;
728     MS_U32 u32CmdArgsSize;
729     APIPNL_Result eReturnValue;
730 }stPNL_Setting,*pstPNL_Setting;
731 
732 #ifdef __cplusplus
733 }
734 #endif
735 
736 #endif
737