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_PNL_PRIV_H_ 79 #define _API_PNL_PRIV_H_ 80 81 82 //////////////////////////////////////////////////////////////////////////////// 83 // Header Files 84 //////////////////////////////////////////////////////////////////////////////// 85 #ifdef __cplusplus 86 extern "C" 87 { 88 #endif 89 90 typedef APIPNL_Result (*IOCTL_PNL_GETLIBVER) (void*, const MSIF_Version**); 91 typedef const PNL_ApiInfo* (*IOCTL_PNL_GETINFO) (void*); 92 typedef MS_BOOL (*IOCTL_PNL_GETSTATUS) (void*, PNL_ApiStatus*); 93 typedef MS_BOOL (*IOCTL_PNL_GETSTATUSEX) (void*, PNL_ApiExtStatus*); 94 typedef MS_BOOL (*IOCTL_PNL_SETDBGLEVEL) (void*, MS_U16); 95 typedef MS_BOOL (*IOCTL_PNL_IOMAPBASEINIT) (void*); 96 typedef MS_BOOL (*IOCTL_PNL_PREINIT) (void*, E_PNL_PREINIT_OPTIONS); 97 typedef MS_BOOL (*IOCTL_PNL_INIT) (void*, PanelType*); 98 typedef MS_BOOL (*IOCTL_PNL_INIT_EX) (void*, PanelType*, MSIF_Version); 99 typedef APIPNL_Result (*IOCTL_PNL_GETCONFIG) (void*, PanelType*); 100 typedef void (*IOCTL_PNL_SETOUTPUT) (void*, APIPNL_OUTPUT_MODE); 101 typedef MS_BOOL (*IOCTL_PNL_CHANGEPANELTYPE) (void*, PanelType*); 102 typedef MS_BOOL (*IOCTL_PNL_TCONMAP_DUMPTABLE) (void*, MS_U8* ,MS_U8); 103 typedef MS_BOOL (*IOCTL_PNL_TCONMAP_POWRE_SEQUENCE) (void*, MS_U8* ,MS_BOOL); 104 typedef void (*IOCTL_PNL_TCON_COUNT_RESET) (void*, MS_BOOL); 105 typedef void (*IOCTL_PNL_TCON_INIT) (void*); 106 typedef MS_BOOL (*IOCTL_PNL_GETDSTINFO) (void*, MS_PNL_DST_DispInfo* ,MS_U32); 107 typedef MS_BOOL (*IOCTL_PNL_CONTROL_OUT_SWING) (void*, MS_U16); 108 typedef void (*IOCTL_PNL_SETOUTPUTPATTERN) (void*, MS_BOOL ,MS_U16 ,MS_U16 ,MS_U16); 109 typedef MS_BOOL (*IOCTL_PNL_MOD_CALIBRATION_SETTING) (void*, MS_PNL_ModCaliInfo*); 110 typedef MS_BOOL (*IOCTL_PNL_MOD_DO_CALIBRATION) (void*); 111 typedef void (*IOCTL_PNL_BD_LVDS_OUTPUT_TYPE) (void*, MS_U16); 112 typedef void (*IOCTL_PNL_SETLPLLTYPEEXT) (void*, APIPNL_LINK_EXT_TYPE); 113 typedef void (*IOCTL_PNL_INIT_MISC) (void*, APIPNL_MISC); 114 typedef MS_U32 (*IOCTL_PNL_GET_MISC_STATUS) (void*); 115 typedef void (*IOCTL_PNL_MOD_OUTPUTCONFIG_USER) (void*, MS_U32 ,MS_U32 ,MS_U32); 116 typedef void (*IOCTL_PNL_MOD_OUTPUTCHANNELORDER) (void*, MS_U8, MS_U16, MS_U16, MS_U16, MS_U16); 117 typedef void (*IOCTL_PNL_HWLVDSRESERVEDTOLRFLAG) (void*, MS_PNL_HW_LVDSResInfo); 118 typedef void (*IOCTL_PNL_MOD_PVDD_POWER_SETTING) (void*, MS_BOOL); 119 typedef APIPNL_Result (*IOCTL_PNL_SETSSC_EN) (void*, MS_BOOL); 120 typedef APIPNL_Result (*IOCTL_PNL_SETSSC_FMODULATION) (void*, MS_U16); 121 typedef APIPNL_Result (*IOCTL_PNL_SETSSC_RDEVIATION) (void*, MS_U16); 122 typedef APIPNL_Result (*IOCTL_PNL_SETOSDSSC_EN) (void*, MS_BOOL); 123 typedef APIPNL_Result (*IOCTL_PNL_SETOSDSSC_FMODULATION) (void*, MS_U16); 124 typedef APIPNL_Result (*IOCTL_PNL_SETOSDSSC_RDEVIATION) (void*, MS_U16); 125 typedef APIPNL_Result (*IOCTL_PNL_SKIPTIMINGCHANGE) (void*, MS_BOOL); 126 typedef APIPNL_Result (*IOCTL_PNL_PRE_SET_MODE_ON) (void*, MS_BOOL); 127 typedef APIPNL_Result (*IOCTL_PNL_OVERDRIVER_INIT) (void*, MS_PNL_OD_INITDATA*, MS_U32); 128 typedef APIPNL_Result (*IOCTL_PNL_OVERDRIVER_ENABLE) (void*, MS_BOOL); 129 typedef MS_U8 (*IOCTL_PNL_GET_LPLL_TYPE) (void*); 130 typedef MS_BOOL (*IOCTL_PNL_GET_TCON_CAPABILITY) (void*); 131 typedef void (*IOCTL_PNL_SETPAIRSWAP) (void*, MS_U32); 132 typedef void (*IOCTL_PNL_SET_EXT_LPLL_TYPE) (void*, MS_U16); 133 typedef void (*IOCTL_PNL_CALEXTLPLLSETBYDClk) (void*, MS_U32); 134 typedef MS_BOOL (*IOCTL_PNL_SETDIFFSWINGLEVEL) (void*, MS_U8); 135 typedef MS_U32 (*IOCTL_PNL_SETPOWERSTATE) (void*, EN_POWER_MODE); 136 typedef MS_BOOL (*IOCTL_PNL_FORCESETPANELDCLK) (void*, MS_U16, MS_BOOL); 137 typedef MS_BOOL (*IOCTL_PNL_FORCESETPANELHSTART) (void*, MS_U16, MS_BOOL); 138 typedef MS_BOOL (*IOCTL_PNL_EABLEINTERNALTERMINATION) (void*, MS_BOOL); 139 typedef MS_BOOL (*IOCTL_PNL_OUTPUTDEVICEHANDSHAKE) (void*); 140 typedef MS_BOOL (*IOCTL_PNL_OUTPUTDEVICEOCHANDSHAKE) (void*); 141 typedef APIPNL_Result (*IOCTL_PNL_SETOUTPUTINTERLACETIMING) (void*, MS_BOOL); 142 typedef MS_BOOL (*IOCTL_PNL_GETOUTPUTINTERLACETIMING) (void*); 143 typedef void (*IOCTL_PNL_GETPANELDATA) (void*, PanelType*); 144 typedef void (*IOCTL_PNL_DUMPPANELDATA) (void*); 145 typedef void (*IOCTL_PNL_SETSSC) (void*, MS_U16, MS_U16, MS_BOOL); 146 typedef MS_U16 (*IOCTL_PNL_GETPANELONTIMING) (void*, APIPNL_POWER_TIMING_SEQ); 147 typedef MS_U16 (*IOCTL_PNL_GETPANELOFFTIMING) (void*, APIPNL_POWER_TIMING_SEQ); 148 typedef MS_U8 (*IOCTL_PNL_GETPANELDIMCTRL) (void*, APIPNL_DIMMING_CTRL); 149 typedef MS_U8** (*IOCTL_PNL_GETALLGAMMATBL) (void*); 150 typedef MS_BOOL (*IOCTL_PNL_ENABLEPANEL) (void*, MS_BOOL); 151 typedef MS_BOOL (*IOCTL_PNL_SETGAMMATBL) (void*, APIPNL_GAMMA_TYPE, MS_U8*[], APIPNL_GAMMA_MAPPEING_MODE); 152 typedef MS_BOOL (*IOCTL_PNL_GETGAMMATBL) (void*, APIPNL_GAMMA_TYPE, MS_U8*[], APIPNL_GAMMA_MAPPEING_MODE); 153 typedef MS_BOOL (*IOCTL_PNL_SETGAMMAVALUE) (void*, MS_U8, MS_U16, MS_U16); 154 typedef MS_U8 (*IOCTL_PNL_GETLPLLMODE) (void*); 155 typedef MS_U16 (*IOCTL_PNL_GETDEFVFREQ) (void*); 156 typedef const char* (*IOCTL_PNL_GETPANELNAME) (void*); 157 typedef MS_U16 (*IOCTL_PNL_GETHSTART) (void*); 158 typedef MS_U16 (*IOCTL_PNL_GETVSTART) (void*); 159 typedef MS_U16 (*IOCTL_PNL_GETWIDTH) (void*); 160 typedef MS_U16 (*IOCTL_PNL_GETHEIGHT) (void*); 161 typedef MS_U16 (*IOCTL_PNL_GETHTOTAL) (void*); 162 typedef MS_U16 (*IOCTL_PNL_GETVTOTAL) (void*); 163 typedef MS_U8 (*IOCTL_PNL_GETHSYNCWIDTH) (void*); 164 typedef MS_U8 (*IOCTL_PNL_GETHSYNCBACKPORCH) (void*); 165 typedef MS_U8 (*IOCTL_PNL_GETVSYNCBACKPORCH) (void*); 166 typedef MS_U8 (*IOCTL_PNL_GETLPLLTYPE) (void*); 167 typedef E_PNL_ASPECT_RATIO (*IOCTL_PNL_GETARC) (void*); 168 typedef MS_U32 (*IOCTL_PNL_GETMINSET) (void*); 169 typedef MS_U32 (*IOCTL_PNL_GETMAXSET) (void*); 170 typedef APIPNL_OUT_TIMING_MODE (*IOCTL_PNL_GETOUTTIMINGMODE) (void*); 171 typedef MS_BOOL (*IOCTL_PNL_CHECKVBY1HANDSHAKESTATUS) (void*); 172 typedef void (*IOCTL_PNL_SETVIDEOHWTRAINING) (void*, MS_BOOL); 173 typedef void (*IOCTL_PNL_SETOSDHWTRAINING) (void*, MS_BOOL); 174 typedef MS_BOOL (*IOCTL_PNL_GETVIDEOHWTRAINING) (void*); 175 typedef MS_BOOL (*IOCTL_PNL_GETOSDHWTRAINING) (void*); 176 typedef APIPNL_Result (*IOCTL_PNL_SETTING) (void* ,MS_U32 ,void* ,MS_U32); 177 178 typedef struct __attribute__((packed)) 179 { 180 #ifdef UTOPIA_20 181 IOCTL_PNL_GETLIBVER fpPNL_GetLibVer; 182 IOCTL_PNL_GETINFO fpPNL_GetInfo; 183 IOCTL_PNL_GETSTATUS fpPNL_GetStatus; 184 IOCTL_PNL_GETSTATUSEX fpPNL_GetStatusEx; 185 IOCTL_PNL_SETDBGLEVEL fpPNL_SetDbgLevel; 186 IOCTL_PNL_IOMAPBASEINIT fpPNL_IOMapBaseInit; 187 IOCTL_PNL_PREINIT fpPNL_PreInit; 188 IOCTL_PNL_INIT fpPNL_Init; 189 IOCTL_PNL_INIT_EX fpPNL_Init_Ex; 190 IOCTL_PNL_GETCONFIG fpPNL_GetConfig; 191 IOCTL_PNL_SETOUTPUT fpPNL_SetOutput; 192 IOCTL_PNL_CHANGEPANELTYPE fpPNL_ChangePanelType; 193 IOCTL_PNL_TCONMAP_DUMPTABLE fpPNL_TCONMAP_DumpTable; 194 IOCTL_PNL_TCONMAP_POWRE_SEQUENCE fpPNL_TCONMAP_Power_Sequence; 195 IOCTL_PNL_TCON_COUNT_RESET fpPNL_TCON_Count_Reset; 196 IOCTL_PNL_TCON_INIT fpPNL_TCON_Init; 197 IOCTL_PNL_GETDSTINFO fpPNL_GetDstInfo; 198 IOCTL_PNL_CONTROL_OUT_SWING fpPNL_Control_Out_Swing; 199 IOCTL_PNL_SETOUTPUTPATTERN fpPNL_SetOutputPattern; 200 IOCTL_PNL_MOD_CALIBRATION_SETTING fpPNL_Mod_Calibration_Setting; 201 IOCTL_PNL_MOD_DO_CALIBRATION fpPNL_Mod_Do_Calibration; 202 IOCTL_PNL_BD_LVDS_OUTPUT_TYPE fpPNL_BD_LVDS_Output_Type; 203 IOCTL_PNL_SETLPLLTYPEEXT fpPNL_SetLPLLTypeExt; 204 IOCTL_PNL_INIT_MISC fpPNL_Init_MISC; 205 IOCTL_PNL_GET_MISC_STATUS fpPNL_Get_MISC_Status; 206 IOCTL_PNL_MOD_OUTPUTCONFIG_USER fpPNL_MOD_OutputConfig_User; 207 IOCTL_PNL_MOD_OUTPUTCHANNELORDER fpPNL_MOD_OutputChannelOrder; 208 IOCTL_PNL_HWLVDSRESERVEDTOLRFLAG fpPNL_HWLVDSReservedtoLRFlag; 209 IOCTL_PNL_MOD_PVDD_POWER_SETTING fpPNL_MOD_PVDD_Power_Setting; 210 IOCTL_PNL_SETSSC_EN fpPNL_SetSSC_En; 211 IOCTL_PNL_SETSSC_FMODULATION fpPNL_SetSSC_Fmodulation; 212 IOCTL_PNL_SETSSC_RDEVIATION fpPNL_SetSSC_Rdeviation; 213 IOCTL_PNL_SETOSDSSC_EN fpPNL_SetOSDSSC_En; 214 IOCTL_PNL_SETOSDSSC_FMODULATION fpPNL_SetOSDSSC_Fmodulation; 215 IOCTL_PNL_SETOSDSSC_RDEVIATION fpPNL_SetOSDSSC_Rdeviation; 216 IOCTL_PNL_SKIPTIMINGCHANGE fpPNL_SkipTimingChange; 217 IOCTL_PNL_PRE_SET_MODE_ON fpPNL_PreSetModeOn; 218 IOCTL_PNL_OVERDRIVER_INIT fpPNL_OverDriver_Init; 219 IOCTL_PNL_OVERDRIVER_ENABLE fpPNL_OverDriver_Enable; 220 IOCTL_PNL_GET_LPLL_TYPE fpPNL_Get_LPLL_Type; 221 IOCTL_PNL_GET_TCON_CAPABILITY fpPNL_Get_TCON_Capability; 222 IOCTL_PNL_SETPAIRSWAP fpPNL_SetPairSwap; 223 IOCTL_PNL_SET_EXT_LPLL_TYPE fpPNL_SetExt_LPLL_Type; 224 IOCTL_PNL_CALEXTLPLLSETBYDClk fpPNL_CalExtLPLLSETbyDClk; 225 IOCTL_PNL_SETDIFFSWINGLEVEL fpPNL_SetDiffSwingLevel; 226 IOCTL_PNL_SETPOWERSTATE fpPNL_SetPowerState; 227 IOCTL_PNL_FORCESETPANELDCLK fpPNL_ForceSetPanelDCLK; 228 IOCTL_PNL_FORCESETPANELHSTART fpPNL_ForceSetPanelHStart; 229 IOCTL_PNL_EABLEINTERNALTERMINATION fpPNL_EnableInternalTermination; 230 IOCTL_PNL_OUTPUTDEVICEHANDSHAKE fpPNL_OutputDeviceHandshake; 231 IOCTL_PNL_OUTPUTDEVICEOCHANDSHAKE fpPNL_OutputDeviceOCHandshake; 232 IOCTL_PNL_SETOUTPUTINTERLACETIMING fpPNL_SetOutputInterlaceTiming; 233 IOCTL_PNL_GETOUTPUTINTERLACETIMING fpPNL_GetOutputInterlaceTiming; 234 IOCTL_PNL_GETPANELDATA fpPNL_GetPanelData; 235 IOCTL_PNL_DUMPPANELDATA fpPNL_DumpPanelData; 236 IOCTL_PNL_SETSSC fpPNL_SetSSC; 237 IOCTL_PNL_GETPANELONTIMING fpPNL_GetPanelOnTiming; 238 IOCTL_PNL_GETPANELOFFTIMING fpPNL_GetPanelOffTiming; 239 IOCTL_PNL_GETPANELDIMCTRL fpPNL_GetPanelDimCtrl; 240 IOCTL_PNL_GETALLGAMMATBL fpPNL_GetAllGammaTbl; 241 IOCTL_PNL_ENABLEPANEL fpPNL_EnablePanel; 242 IOCTL_PNL_SETGAMMATBL fpPNL_SetGammaTbl; 243 IOCTL_PNL_GETGAMMATBL fpPNL_GetGammaTbl; 244 IOCTL_PNL_SETGAMMAVALUE fpPNL_SetGammaValue; 245 IOCTL_PNL_GETLPLLMODE fpPNL_GetLPLLMode; 246 IOCTL_PNL_GETDEFVFREQ fpPNL_GetDefVFreq; 247 IOCTL_PNL_GETPANELNAME fpPNL_GetPanelName; 248 IOCTL_PNL_GETHSTART fpPNL_GetHStart; 249 IOCTL_PNL_GETVSTART fpPNL_GetVStart; 250 IOCTL_PNL_GETWIDTH fpPNL_GetWidth; 251 IOCTL_PNL_GETHEIGHT fpPNL_GetHeight; 252 IOCTL_PNL_GETHTOTAL fpPNL_GetHtotal; 253 IOCTL_PNL_GETVTOTAL fpPNL_GetVtotal; 254 IOCTL_PNL_GETHSYNCWIDTH fpPNL_GetHsyncwidth; 255 IOCTL_PNL_GETHSYNCBACKPORCH fpPNL_GetHsyncBackPorch; 256 IOCTL_PNL_GETVSYNCBACKPORCH fpPNL_GetVsyncBackPorch; 257 IOCTL_PNL_GETLPLLTYPE fpPNL_GetLPLLType; 258 IOCTL_PNL_GETARC fpPNL_GetARC; 259 IOCTL_PNL_GETMINSET fpPNL_GetMinSET; 260 IOCTL_PNL_GETMAXSET fpPNL_GetMaxSET; 261 IOCTL_PNL_GETOUTTIMINGMODE fpPNL_GetOutTimingMode; 262 IOCTL_PNL_CHECKVBY1HANDSHAKESTATUS fpPNL_CheckVBY1HandshakeStatus; 263 IOCTL_PNL_SETVIDEOHWTRAINING fpPNL_SetVideoHWTraining; 264 IOCTL_PNL_SETOSDHWTRAINING fpPNL_SetOSDHWTraining; 265 IOCTL_PNL_GETVIDEOHWTRAINING fpPNL_GetVideoHWTraining_Status; 266 IOCTL_PNL_GETOSDHWTRAINING fpPNL_GetOSDHWTraining_Status; 267 IOCTL_PNL_SETTING fpPNL_Setting; 268 #endif 269 // Device ID 270 MS_U32 u32DeviceID; 271 }PNL_INSTANCE_PRIVATE; 272 273 // apiPNL.c 274 #define GammaTblSize 386 275 typedef struct __attribute__((packed)) 276 { 277 PanelType _stPanelTypeSaved; 278 MS_U8 **m_ppAllGammaTbls; 279 #if !defined (__aarch64__) 280 MS_U32 u32AlignmentDummy0; 281 #endif 282 APIPNL_GAMMA_TYPE _eGammaType; 283 APIPNL_GAMMA_MAPPEING_MODE _eGammaMapMode; 284 MS_U8 _pu8GammaTab[3][GammaTblSize]; 285 MS_BOOL _bSkipTimingChange; 286 287 // Library info 288 PNL_ApiInfo _cstPnlInfo; 289 PNL_ApiStatus _stPnlStatus; 290 291 MS_U16 _u16PanelDCLK; 292 MS_BOOL _bForceSetDCLKEnable; 293 294 MS_U16 _u16PanelHStart; 295 MS_BOOL _bForceSetHStartEnable; 296 297 // MApi_PNL_SetPowerState() 298 EN_POWER_MODE ePrevPowerState; 299 } ST_APIPNL; 300 301 // drvPNL.h 302 typedef struct __attribute__((packed)) 303 { 304 PNL_InitData _stPnlInitData; 305 MS_BOOL g_bDrvPnl_UseTConTable_Mod; 306 } ST_DRVPNL; 307 308 // halPNL.c 309 typedef struct __attribute__((packed)) 310 { 311 // Output swing = 150mV + Code * 10mV. 312 // Designer recommand value. 0x15 = 21 = 250mv 313 MS_U16 _u16PnlDefault_SwingLevel; 314 PNL_OUTPUT_MODE _eDrvPnlInitOptions; 315 MS_U8 _u8MOD_CALI_TARGET; ///< MOD_REG(0x7D),[10:9]00: 250mV ,01: 350mV ,10:300mV ,11:200mV 316 MS_U8 _u8MOD_CALI_PAIR_SEL; ///< MOD_REG(0x7D)[3:2]00: ch2, 01:ch6, 10:ch8, 11:ch12 317 318 MS_S8 _usMOD_CALI_OFFSET; ///< MOD_REG(0x7D),[5:0]+ _usMOD_CALI_OFFSET 319 MS_U8 _u8MOD_CALI_VALUE; /// Final value 320 321 MS_U8 _u8MOD_LVDS_Pair_Shift; ///< 0:default setting, LVDS pair Shift 322 MS_U8 _u8MOD_LVDS_Pair_Type; ///< 0:default setting, LVDS data differential pair 323 MS_U8 _u8PnlDiffSwingLevel; 324 MS_BOOL _bPVDD_2V5; 325 } ST_HALPNL; 326 327 typedef struct __attribute__((packed)) 328 { 329 MSIF_Version _api_pnl_version_sel ; 330 MS_BOOL bResourceRegistered; 331 332 ST_APIPNL stapiPNL; 333 ST_DRVPNL stdrvPNL; 334 ST_HALPNL sthalPNL; 335 }PNL_RESOURCE_PRIVATE; 336 typedef struct 337 { 338 MS_U16 BD_LVDS_Output_Type; 339 PanelType pSelPanelType; 340 }PNL_REGS_SAVE_AREA; 341 APIPNL_Result MApi_PNL_GetLibVer_U2(void* pInstance, const MSIF_Version **ppVersion); 342 const PNL_ApiInfo* MApi_PNL_GetInfo_U2(void *pInstance); 343 MS_BOOL MApi_PNL_GetStatus_U2(void *pInstance, PNL_ApiStatus *pPnlStatus); 344 MS_BOOL MApi_PNL_GetStatusEx_U2(void *pInstance, PNL_ApiExtStatus *pPnlExtStatus); 345 MS_BOOL MApi_PNL_SetDbgLevel_U2(void *pInstance, MS_U16 u16DbgSwitch); 346 MS_BOOL MApi_PNL_IOMapBaseInit_U2(void *pInstance); 347 MS_BOOL MApi_PNL_PreInit_U2(void *pInstance, E_PNL_PREINIT_OPTIONS eInitParam); 348 MS_BOOL MApi_PNL_Init_U2(void *pInstance, PanelType *pSelPanelType/* <in > */); 349 MS_BOOL MApi_PNL_Init_Ex_U2(void *pInstance, PanelType *pSelPanelType/* <in > */, MSIF_Version LIBVER); 350 APIPNL_Result MApi_PNL_GetConfig_U2(void *pInstance, PanelType *pSelPanelType); 351 void MApi_PNL_SetOutput_U2(void *pInstance, APIPNL_OUTPUT_MODE eOutputMode); 352 MS_BOOL MApi_PNL_ChangePanelType_U2(void *pInstance, PanelType *pSelPanelType); 353 MS_BOOL MApi_PNL_TCONMAP_DumpTable_U2(void *pInstance, MS_U8 *pTCONTable, MS_U8 u8Tcontype); 354 MS_BOOL MApi_PNL_TCONMAP_Power_Sequence_U2(void *pInstance, MS_U8 *pTCONTable, MS_BOOL bEnable); 355 void MApi_PNL_TCON_Count_Reset_U2 (void *pInstance, MS_BOOL bEnable ); 356 void MApi_PNL_TCON_Init_U2(void *pInstance); 357 MS_BOOL MApi_PNL_GetDstInfo_U2(void *pInstance, MS_PNL_DST_DispInfo *pDstInfo, MS_U32 u32SizeofDstInfo); 358 MS_BOOL MApi_PNL_Control_Out_Swing_U2(void *pInstance, MS_U16 u16Swing_Level); 359 void MApi_PNL_SetOutputPattern_U2(void *pInstance, MS_BOOL bEnable, MS_U16 u16Red , MS_U16 u16Green, MS_U16 u16Blue); 360 MS_BOOL MApi_Mod_Calibration_Setting_U2(void *pInstance, MS_PNL_ModCaliInfo *pstModCaliInfo); 361 MS_BOOL MApi_Mod_Do_Calibration_U2(void *pInstance); 362 void MApi_BD_LVDS_Output_Type_U2(void *pInstance, MS_U16 Type); 363 void MApi_PNL_SetLPLLTypeExt_U2(void *pInstance, APIPNL_LINK_EXT_TYPE eLPLL_TypeExt); 364 void MApi_PNL_Init_MISC_U2(void *pInstance, APIPNL_MISC ePNL_MISC); 365 MS_U32 MApi_PNL_GetMiscStatus_U2(void* pInstance); 366 void MApi_PNL_MOD_OutputConfig_User_U2(void *pInstance, MS_U32 u32OutputCFG0_7, MS_U32 u32OutputCFG8_15, MS_U32 u32OutputCFG16_21); 367 void MApi_PNL_MOD_OutputChannelOrder_U2(void* pInstance, 368 MS_U8 u8OutputOrderType, 369 MS_U16 u16OutputOrder0_3, 370 MS_U16 u16OutputOrder4_7, 371 MS_U16 u16OutputOrder8_11, 372 MS_U16 u16OutputOrder12_13); 373 void MApi_PNL_HWLVDSReservedtoLRFlag_U2(void *pInstance, MS_PNL_HW_LVDSResInfo lvdsresinfo); 374 void MApi_MOD_PVDD_Power_Setting_U2(void *pInstance, MS_BOOL bIs2p5); 375 APIPNL_Result MApi_PNL_SetSSC_En_U2(void *pInstance, MS_BOOL bEnable); 376 APIPNL_Result MApi_PNL_SetSSC_Fmodulation_U2(void *pInstance, MS_U16 u16Fmodulation); 377 APIPNL_Result MApi_PNL_SetSSC_Rdeviation_U2(void *pInstance, MS_U16 u16Rdeviation); 378 APIPNL_Result MApi_PNL_SetOSDSSC_En_U2(void *pInstance, MS_BOOL bEnable); 379 APIPNL_Result MApi_PNL_SetOSDSSC_Fmodulation_U2(void *pInstance, MS_U16 u16Fmodulation); 380 APIPNL_Result MApi_PNL_SetOSDSSC_Rdeviation_U2(void *pInstance, MS_U16 u16Rdeviation); 381 APIPNL_Result MApi_PNL_SkipTimingChange_U2(void *pInstance, MS_BOOL bFlag); 382 APIPNL_Result MApi_PNL_PreSetModeOn_U2(void *pInstance, MS_BOOL bSetMode); 383 APIPNL_Result MApi_PNL_OverDriver_Init_U2(void *pInstance, MS_PNL_OD_INITDATA *pPNL_ODInitData, MS_U32 u32ODInitDataLen); 384 APIPNL_Result MApi_PNL_OverDriver_Enable_U2(void *pInstance, MS_BOOL bEnable); 385 MS_U8 MApi_Pnl_Get_LPLL_Type_U2(void *pInstance); 386 MS_BOOL MApi_PNL_Get_TCON_Capability_U2(void *pInstance); 387 void MApi_PNL_SetPairSwap_U2(void *pInstance, MS_U32 u32Polarity); 388 void MApi_PNL_SetExt_LPLL_Type_U2(void *pInstance, MS_U16 u16Ext_lpll_type); 389 void MApi_PNL_CalExtLPLLSETbyDClk_U2(void *pInstance, MS_U32 ldHz); 390 MS_BOOL MApi_PNL_SetDiffSwingLevel_U2(void *pInstance, MS_U8 u8Swing_Level); 391 MS_U32 MApi_PNL_SetPowerState_U2(void *pInstance, EN_POWER_MODE); 392 MS_BOOL MApi_PNL_ForceSetPanelDCLK_U2(void *pInstance, MS_U16 u16PanelDCLK, MS_BOOL bSetDCLKEnable); 393 MS_BOOL MApi_PNL_ForceSetPanelHStart_U2(void *pInstance, MS_U16 u16PanelHStart ,MS_BOOL bSetHStartEnable); 394 MS_BOOL MApi_PNL_EnableInternalTermination_U2(void *pInstance, MS_BOOL bEnable); 395 MS_BOOL MApi_PNL_OutputDeviceHandshake_U2(void *pInstance); 396 MS_BOOL MApi_PNL_OutputDeviceOCHandshake_U2(void *pInstance); 397 APIPNL_Result MApi_PNL_SetOutputInterlaceTiming_U2(void* pInstance, MS_BOOL bEnable); 398 MS_BOOL MApi_PNL_GetOutputInterlaceTiming_U2(void *pInstance); 399 void MApi_PNL_GetPanelData_U2(void* pInstance, PanelType* pstPNLData); 400 void MApi_PNL_DumpPanelData_U2(void* pInstance); 401 void MApi_PNL_SetSSC_U2(void* pInstance, MS_U16 u16Fmodulation, MS_U16 u16Rdeviation, MS_BOOL bEnable); 402 MS_U16 MApi_PNL_GetPanelOnTiming_U2(void* pInstance, APIPNL_POWER_TIMING_SEQ seq); 403 MS_U16 MApi_PNL_GetPanelOffTiming_U2(void* pInstance, APIPNL_POWER_TIMING_SEQ seq); 404 MS_U8 MApi_PNL_GetPanelDimCtrl_U2(void* pInstance, APIPNL_DIMMING_CTRL dim_type); 405 MS_U8** MApi_PNL_GetAllGammaTbl_U2(void* pInstance); 406 MS_BOOL MApi_PNL_EnablePanel_U2(void* pInstance, MS_BOOL bPanelOn); 407 MS_BOOL MApi_PNL_SetGammaTbl_U2(void* pInstance, APIPNL_GAMMA_TYPE eGammaType, MS_U8* pu8GammaTab[3], APIPNL_GAMMA_MAPPEING_MODE Gamma_Map_Mode); 408 MS_BOOL MApi_PNL_GetGammaTbl_U2(void* pInstance, APIPNL_GAMMA_TYPE eGammaType, MS_U8* pu8GammaTab[3], APIPNL_GAMMA_MAPPEING_MODE Gamma_Map_Mode); 409 MS_BOOL MApi_PNL_SetGammaValue_U2(void* pInstance, MS_U8 u8Channel, MS_U16 u16Offset, MS_U16 u16GammaValue); 410 MS_U8 MApi_PNL_GetLPLLMode_U2(void *pInstance); 411 MS_U16 MApi_PNL_GetDefVFreq_U2(void *pInstance); 412 const char* MApi_PNL_GetName_U2(void *pInstance); 413 MS_U16 MAPI_PNL_GetPNLHstart_U2(void *pInstance); 414 MS_U16 MAPI_PNL_GetPNLVstart_U2(void *pInstance); 415 MS_U16 MAPI_PNL_GetPNLWidth_U2(void *pInstance); 416 MS_U16 MAPI_PNL_GetPNLHeight_U2(void *pInstance); 417 MS_U16 MAPI_PNL_GetPNLHtotal_U2(void *pInstance); 418 MS_U16 MAPI_PNL_GetPNLVtotal_U2(void *pInstance); 419 MS_U8 MAPI_PNL_GetPNLHsyncWidth_U2(void *pInstance); 420 MS_U8 MAPI_PNL_GetPNLHsyncBackPorch_U2(void *pInstance); 421 MS_U8 MAPI_PNL_GetPNLVsyncBackPorch_U2(void *pInstance); 422 MS_U8 MApi_PNL_GetLPLLType_U2(void *pInstance); 423 E_PNL_ASPECT_RATIO MApi_PNL_GetARC_U2(void *pInstance); 424 MS_U32 MApi_PNL_GetMinSET_U2(void *pInstance); 425 MS_U32 MApi_PNL_GetMaxSET_U2(void *pInstance); 426 APIPNL_OUT_TIMING_MODE MApi_PNL_GetOutTimingMode_U2(void *pInstance); 427 void MApi_PNL_SetVideoHWTraining_U2(void *pInstance, MS_BOOL bEnable); 428 void MApi_PNL_SetOSDHWTraining_U2(void *pInstance, MS_BOOL bEnable); 429 MS_BOOL MApi_PNL_GetVideoHWTraining_Status_U2(void *pInstance); 430 MS_BOOL MApi_PNL_GetOSDHWTraining_Status_U2(void *pInstance); 431 APIPNL_Result MApi_PNL_Setting_U2(void* pInstance,MS_U32 u32Cmd,void *pCmdArgs,MS_U32 u32CmdArgsSize); 432 433 434 void PNLRegisterToUtopia(FUtopiaOpen ModuleType); 435 MS_U32 PNLOpen(void** ppInstance, const void* const pAttribute); 436 MS_U32 PNLClose(void* pInstance); 437 MS_U32 PNLIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs); 438 439 //internal use only 440 MS_U32 _XC_PNL_GET_DEVICE_NUM(void); 441 MS_BOOL MApi_PNL_Check_VBY1_Handshake_Status_U2(void *pInstance); 442 443 #ifdef __cplusplus 444 } 445 #endif 446 447 #undef _API_PNL_PRIV_H_ 448 #endif // _API_PNL_PRIV_H_ 449