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