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_HDMITX_PRIV_H_ 79 #define _API_HDMITX_PRIV_H_ 80 81 82 //////////////////////////////////////////////////////////////////////////////// 83 // Header Files 84 //////////////////////////////////////////////////////////////////////////////// 85 #ifdef __cplusplus 86 extern "C" 87 { 88 #endif 89 90 91 typedef struct __attribute__ ((packed)) 92 { 93 MDrvHDMITX_PARAMETER_LIST stHDMITxInfo; 94 MDrvHdcpTx_PARAMETER_LIST stHdcpTxInfo; 95 MS_BOOL bEnableHDMITxTask; 96 MS_BOOL bSetHPD; 97 MS_BOOL bInit; 98 MS_U32 u32AlignDummy; 99 } HDMITX_RESOURCE_PRIVATE; 100 101 102 #if 1 103 #define _HDMITX_SEMAPHORE_ENTRY(pInst) \ 104 if(MDrv_HDMITx_Get_Semaphore(pInst) != UTOPIA_STATUS_SUCCESS) \ 105 { } 106 107 #define _HDMITX_GET_INST_PRIVATE() \ 108 HDMITX_INSTANCE_PRIVATE *psHDMITXInstPri = NULL; \ 109 UtopiaInstanceGetPrivate(pInstance, (void**)&psHDMITXInstPri); 110 111 112 #define _HDMITX_GET_VARIABLE() \ 113 HDMITX_INSTANCE_PRIVATE *psHDMITXInstPri = NULL; \ 114 UtopiaInstanceGetPrivate(pInstance, (void**)&psHDMITXInstPri); \ 115 HDMITX_RESOURCE_PRIVATE *psHDMITXResPri = NULL; \ 116 UtopiaResourceGetPrivate(pu32HDMITXRes[psHDMITXInstPri->u32DeviceID],(void**)(&psHDMITXResPri)); 117 118 #define _HDMITX_SEMAPHORE_RETURN(pInst) \ 119 MDrv_HDMITx_Release_Semaphore(pInst); 120 #endif 121 122 123 typedef MS_BOOL (*IOCTL_HDMITX_INIT) (void *pInstance); 124 typedef MS_BOOL (*IOCTL_HDMITX_EXIT) (void *pInstance); 125 typedef void (*IOCTL_HDMITX_TUNRONOFF) (void *pInstance, MS_BOOL state); 126 typedef void (*IOCTL_HDMITX_ENABLEPACKETGEN) (void *pInstance, MS_BOOL bflag); 127 typedef void (*IOCTL_HDMITX_SETHDMITXMODE) (void *pInstance, HDMITX_OUTPUT_MODE mode); 128 typedef void (*IOCTL_HDMITX_SETHDMITXMODE_CD) (void *pInstance, HDMITX_OUTPUT_MODE mode, HDMITX_VIDEO_COLORDEPTH_VAL val); 129 typedef void (*IOCTL_HDMITX_SETTMDSONOFF) (void *pInstance, MS_BOOL state); 130 typedef void (*IOCTL_HDMITX_DISABLETMDSCTRL) (void *pInstance, MS_BOOL bFlag); 131 typedef void (*IOCTL_HDMITX_SETRBCHANNELSWAP) (void *pInstance, MS_BOOL state); 132 typedef void (*IOCTL_HDMITX_EXHIBIT) (void *pInstance); 133 typedef MS_BOOL (*IOCTL_HDMITX_GETRXSTATUS) (void); 134 typedef MS_BOOL (*IOCTL_HDMITX_GETRXDCINFOFROMEDID) (void *pInstance, HDMITX_VIDEO_COLORDEPTH_VAL *val); 135 typedef MS_BOOL (*IOCTL_HDMITX_GETRXVIDEOFORMATFROMEDID) (void *pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 136 typedef MS_BOOL (*IOCTL_HDMITX_GETVICLISTFROMEDID) (void* pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 137 typedef MS_BOOL (*IOCTL_HDMITX_GETDATABLOCKLENGTHFROMEDID) (void *pInstance, MS_U8 *pu8Length, MS_U8 u8TagCode); 138 typedef MS_BOOL (*IOCTL_HDMITX_GETCOLORFORMATFROMEDID) (void *pInstance, HDMITX_VIDEO_TIMING timing, HDMITX_EDID_COLOR_FORMAT *pColorFmt); 139 typedef MS_BOOL (*IOCTL_HDMITX_GETRXAUDIOFORMATFROMEDID) (void *pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 140 typedef MS_BOOL (*IOCTL_HDMITX_EDID_HDMISUPPORT) (void *pInstance, MS_BOOL *HDMI_Support); 141 typedef MS_BOOL (*IOCTL_HDMITX_GETRXIDMANUFACTURERNAME) (void *pInstance, MS_U8 *pu8Buffer); 142 typedef MS_BOOL (*IOCTL_HDMITX_GETEDIDDATA) (void *pInstance, MS_U8 *pu8Buffer, MS_BOOL BlockIdx); 143 typedef MS_BOOL (*IOCTL_HDMITX_GETRX3DSTRUCTUREFROMEDID) (void *pInstance, HDMITX_VIDEO_TIMING timing, HDMITX_EDID_3D_STRUCTURE_ALL *p3DStructure); 144 typedef void (*IOCTL_HDMITX_PKT_USER_DEFINE_CLEAR) (void *pInstance); 145 typedef void (*IOCTL_HDMITX_PKT_USER_DEFINE) (void *pInstance, HDMITX_PACKET_TYPE packet_type, MS_BOOL def_flag, HDMITX_PACKET_PROCESS def_process, MS_U8 def_fcnt); 146 typedef MS_BOOL (*IOCTL_HDMITX_PKT_CONTENT_DEFINE) (void *pInstance, HDMITX_PACKET_TYPE packet_type, MS_U8 *data, MS_U8 length); 147 typedef void (*IOCTL_HDMITX_SETVIDEOONOFF) (void *pInstance, MS_BOOL state); 148 typedef void (*IOCTL_HDMITX_SETCOLORFORMAT) (void *pInstance, HDMITX_VIDEO_COLOR_FORMAT in_color, HDMITX_VIDEO_COLOR_FORMAT out_color); 149 typedef void (*IOCTL_HDMITX_SET_VS_INFOFRAME) (void *pInstance, HDMITX_VIDEO_VS_FORMAT vs_format, HDMITX_VIDEO_3D_STRUCTURE vs_3d, HDMITX_VIDEO_4k2k_VIC vs_vic); 150 typedef void (*IOCTL_HDMITX_SETVIDEOOUTPUTTIMING) (void *pInstance, HDMITX_VIDEO_TIMING mode); 151 typedef void (*IOCTL_HDMITX_SETVIDEOOUTPUTASEPECTRATIO) (void *pInstance, HDMITX_VIDEO_ASPECT_RATIO out_ar); 152 typedef void (*IOCTL_HDMITX_SETVIDEOOUTPUTOVERSCAN_AFD) (void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd); 153 typedef void (*IOCTL_HDMITX_SETAUDIOONOFF) (void *pInstance, MS_BOOL state); 154 typedef void (*IOCTL_HDMITX_SETAUDIOFREQUENCY) (void *pInstance, HDMITX_AUDIO_FREQUENCY freq); 155 typedef void (*IOCTL_HDMITX_SETVIDEOOUTPUTOVERSCAN_AFD_II) (void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd, MS_U8 A0); 156 typedef void (*IOCTL_HDMITX_SETAUDIOCONFIGURATION) (void *pInstance, HDMITX_AUDIO_FREQUENCY freq, HDMITX_AUDIO_CHANNEL_COUNT ch, HDMITX_AUDIO_CODING_TYPE type); 157 typedef void (*IOCTL_HDMITX_SETAUDIOSOURCEFORMAT) (void *pInstance, HDMITX_AUDIO_SOURCE_FORMAT fmt); 158 typedef MS_BOOL (*IOCTL_HDMITX_SETAVIINFOEXTCOLORIMETRY) (void *pInstance, HDMITX_AVI_EXTENDED_COLORIMETRY ExtColorimetry, HDMITX_AVI_YCC_QUANT_RANGE YccQuantRange); 159 typedef MS_U32 (*IOCTL_HDMITX_GETAUDIOCTS) (void *pInstance); 160 typedef void (*IOCTL_HDMITX_MUTEAUDIOFIFO) (void *pInstance, MS_BOOL bflag); 161 typedef void (*IOCTL_HDMITX_GETHDCPKEY) (void *pInstance, MS_BOOL useinternalkey, MS_U8 *data); 162 typedef MS_BOOL (*IOCTL_HDMITX_GETBKSV) (void *pInstance, MS_U8 *pdata); 163 typedef MS_BOOL (*IOCTL_HDMITX_GETAKSV) (void *pInstance, MS_U8 *pdata); 164 typedef void (*IOCTL_HDMITX_SETHDCPONOFF) (void *pInstance, MS_BOOL state); 165 typedef void (*IOCTL_HDMITX_SETAVMUTE) (void *pInstance, MS_BOOL bflag); 166 typedef MS_BOOL (*IOCTL_HDMITX_GETAVMUTESTATUS) (void *pInstance); 167 typedef void (*IOCTL_HDMITX_HDCP_REVOCATIONKEY_LIST) (void *pInstance, MS_U8 *data, MS_U16 size); 168 typedef HDMITX_REVOCATION_STATE (*IOCTL_HDMITX_HDCP_REVOCATIONKEY_CHECK) (void *pInstance); 169 typedef MS_BOOL (*IOCTL_HDMITX_HDCP_ISSRMSIGNATUREVALID) (void *pInstance, MS_U8 *data, MS_U32 size); 170 typedef HDMITX_HDCP_STATUS (*IOCTL_HDMITX_GETHDCPSTATUS) (void *pInstance); 171 typedef void (*IOCTL_HDMITX_HDCP_STARTAUTH) (void *pInstance, MS_BOOL bFlag); 172 typedef HDMITX_INT_HDCP_STATUS (*IOCTL_HDMITX_GETINTHDCPSTATUS) (void *pInstance); 173 typedef HDMITX_INT_HDCP_STATUS (*IOCTL_HDMITX_GETHDCP_PRESTATUS) (void *pInstance); 174 typedef MS_BOOL (*IOCTL_HDMITX_GETLIBVER) (void *pInstance, const MSIF_Version **ppVersion); 175 typedef MS_BOOL (*IOCTL_HDMITX_GETINFO) (void *pInstance, HDMI_TX_INFO *pInfo); 176 typedef MS_BOOL (*IOCTL_HDMITX_GETSTATUS) (void *pInstance, HDMI_TX_Status *pStatus); 177 typedef MS_BOOL (*IOCTL_HDMITX_SETDBGLEVEL) (MS_U16 u16DbgSwitch); 178 typedef void (*IOCTL_HDMITX_UNHDCPRXCONTROL) (void *pInstance, HDMITX_UNHDCPRX_CONTROL state); 179 typedef void (*IOCTL_HDMITX_HDCPRXFAILCONTROL) (void *pInstance, HDMITX_HDCPRXFail_CONTROL state); 180 typedef void (*IOCTL_HDMITX_SETHPDGPIOPIN) (void *pInstance, MS_U8 u8pin); 181 typedef void (*IOCTL_HDMITX_ANALOGTUNING) (void *pInstance, HDMITX_ANALOG_TUNING *pInfo); 182 typedef void (*IOCTL_HDMITX_FORCEHDMIOUTPUTMODE) (void *pInstance, MS_BOOL bflag, HDMITX_OUTPUT_MODE output_mode); 183 typedef MS_BOOL (*IOCTL_HDMITX_FORCEHDMIOUTPUTCOLORFORMAT) (void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_COLOR_FORMAT output_color); 184 typedef void (*IOCTL_HDMITX_DISABLEREGWRITE) (void *pInstance, MS_BOOL bFlag); 185 typedef void (*IOCTL_HDMITX_GETEDIDPHYADR) (void *pInstance, MS_U8 *pdata); 186 typedef void (*IOCTL_HDMITX_SETCECONOFF) (void *pInstance, MS_BOOL bflag); 187 typedef MS_BOOL (*IOCTL_HDMITX_GETCECSTATUS) (void *pInstance); 188 typedef MS_BOOL (*IOCTL_HDMITX_EDIDCHECKING) (void *pInstance); 189 typedef MS_BOOL (*IOCTL_HDMITX_RXBYPASS_MODE) (void *pInstance, HDMITX_INPUT_FREQ freq, MS_BOOL bflag); 190 typedef MS_BOOL (*IOCTL_HDMITX_DISABLE_RXBYPASS) (void *pInstance); 191 typedef MS_BOOL (*IOCTL_HDMITX_SETAKSV2R0INTERVAL) (void *pInstance, MS_U32 u32Interval); 192 typedef MS_BOOL (*IOCTL_HDMITX_ISRXVALID) (void *pInstance); 193 typedef MS_BOOL (*IOCTL_HDMITX_GETCHIPCAPS) (void *pInstance, EN_HDMITX_CAPS eCapType, MS_U32* pRet, MS_U32 ret_size); 194 typedef MS_U32 (*IOCTL_HDMITX_SETPOWERSTATE) (void* pInstance, EN_POWER_MODE u16PowerState); 195 typedef MS_BOOL (*IOCTL_HDMITX_GETEDIDDATABLOCK) (void* pInstance, HDMITX_CEA_DB_TAG_CODE enTagCode, HDMITX_CEA_EXT_TAG_CODE enExtTagCode, MS_U8* pu8Data, MS_U32 u32DataLen, MS_U32* pu32RealLen); 196 typedef MS_BOOL (*IOCTL_HDMITX_GETKSVLIST) (void* pInstance, MS_U8 *pu8Bstatus, MS_U8* pu8KSVList, MS_U16 u16BufLen, MS_U16 *pu16KSVLength); 197 typedef MS_BOOL (*IOCTL_HDMITX_HDCP2ACCESSX74OFFSET) (void* pInstance, MS_U8 u8PortIdx, MS_U8 u8OffsetAddr, MS_U8 u8OpCode, MS_U8 *pu8RdBuf, MS_U16 u16RdLen, MS_U8 *pu8WRBuff, MS_U16 u16WrLen); 198 typedef void (*IOCTL_HDMITX_HDCP2TxInit) (void* pInstance, MS_U8 u8PortIdx, MS_BOOL bEnable); 199 typedef void (*IOCTL_HDMITX_HDCP2TxEnableEncrypt) (void* pInstance, MS_U8 u8PortIdx, MS_BOOL bEnable); 200 typedef void (*IOCTL_HDMITX_HDCP2TxFillCipherKey) (void* pInstance, MS_U8 u8PortIdx, MS_U8 *pu8Riv, MS_U8 *pu8KsXORLC128); 201 typedef MS_BOOL (*IOCTL_HDMITX_GENERALCTRL) (void* pInstance, MS_U32 u32Cmd, MS_U8* pu8Buf, MS_U32 u32BufSize); 202 typedef MS_BOOL (*IOCTL_HDMITX_CMD_COLOR_AND_RANGE_TRANSFORM) (void* pInstance, HDMITX_VIDEO_COLOR_FORMAT incolor, HDMITX_VIDEO_COLOR_FORMAT outcolor, HDMITX_QUANT_RANGE inange, HDMITX_QUANT_RANGE outrange); 203 typedef MS_BOOL (*IOCTL_HDMITX_CMD_SSC_ENABLE) (void* pInstance, MS_U8 ubSSCEn); 204 typedef MS_U8 (*IOCTL_HDMITX_CMD_SET_COLORIMETRY) (void* pInstance, HDMITX_AVI_COLORIMETRY enColorimetry); 205 typedef MS_U32 (*IOCTL_HDMITX_CMD_GET_FULL_RX_STATUS) (void* pInstance); 206 typedef HDMITX_TIMING_ERROR (*IOCTL_HDMITX_CMD_TIMING_CAPABILITY_CHECK) (void* pInstance, HDMITX_OUTPUT_MODE eOutputMode, HDMITX_VIDEO_TIMING idx, HDMITX_VIDEO_COLOR_FORMAT incolor_fmt, HDMITX_VIDEO_COLOR_FORMAT outcolor_fmt, HDMITX_VIDEO_COLORDEPTH_VAL color_depth); 207 typedef MS_U32 (*IOCTL_HDMITX_CMD_GET_TMDS_STATUS) (void* pInstance); 208 typedef void (*IOCTL_HDMITX_SETVIDEOOUTPUTTIMINGBYCUSTOMER) (void* pInstance, HDMITX_VIDEO_TIMING u8Mode, HDMITX_TIMING_INFO_BY_CUSTOMER stTiminginfo); 209 210 #if defined(VANCLEEF_MCP) || defined(RAPTORS_MCP) 211 typedef MS_BOOL (*IOCTL_HDMITX_VANCLEEF_LOADHDCPKEY) (void *pInstance, MS_U8* pu8HdcpKey, MS_U32 u32Size); 212 #endif 213 214 // OBSOLETE FUNCTION POINTER END 215 216 typedef struct 217 { 218 MS_U32 u32DeviceID; 219 #ifdef UTOPIA_20 220 IOCTL_HDMITX_INIT fpHDMITX_INIT; 221 IOCTL_HDMITX_EXIT fpHDMITX_EXIT; 222 IOCTL_HDMITX_TUNRONOFF fpHDMITX_TUNRONOFF; 223 IOCTL_HDMITX_ENABLEPACKETGEN fpHDMITX_ENABLEPACKETGEN; 224 IOCTL_HDMITX_SETHDMITXMODE fpHDMITX_SETHDMITXMODE; 225 IOCTL_HDMITX_SETHDMITXMODE_CD fpHDMITX_SETHDMITXMODE_CD; 226 IOCTL_HDMITX_SETTMDSONOFF fpHDMITX_SETTMDSONOFF; 227 IOCTL_HDMITX_DISABLETMDSCTRL fpHDMITX_DISABLETMDSCTRL; 228 IOCTL_HDMITX_SETRBCHANNELSWAP fpHDMITX_SETRBCHANNELSWAP; 229 IOCTL_HDMITX_EXHIBIT fpHDMITX_EXHIBIT; 230 231 IOCTL_HDMITX_GETRXSTATUS fpHDMITX_GETRXSTATUS; 232 IOCTL_HDMITX_GETRXDCINFOFROMEDID fpHDMITX_GETRXDCINFOFROMEDID; 233 IOCTL_HDMITX_GETRXVIDEOFORMATFROMEDID fpHDMITX_GETRXVIDEOFORMATFROMEDID; 234 IOCTL_HDMITX_GETVICLISTFROMEDID fpHDMITX_GETVICLISTFROMEDID; 235 IOCTL_HDMITX_GETDATABLOCKLENGTHFROMEDID fpHDMITX_GETDATABLOCKLENGTHFROMEDID; 236 IOCTL_HDMITX_GETCOLORFORMATFROMEDID fpHDMITX_GETCOLORFORMATFROMEDID; 237 IOCTL_HDMITX_GETRXAUDIOFORMATFROMEDID fpHDMITX_GETRXAUDIOFORMATFROMEDID; 238 IOCTL_HDMITX_EDID_HDMISUPPORT fpHDMITX_EDID_HDMISUPPORT; 239 IOCTL_HDMITX_GETRXIDMANUFACTURERNAME fpHDMITX_GETRXIDMANUFACTURERNAME; 240 IOCTL_HDMITX_GETEDIDDATA fpHDMITX_GETEDIDDATA; 241 IOCTL_HDMITX_GETRX3DSTRUCTUREFROMEDID fpHDMITX_GETRX3DSTRUCTUREFROMEDID; 242 IOCTL_HDMITX_PKT_USER_DEFINE_CLEAR fpHDMITX_PKT_USER_DEFINE_CLEAR; 243 244 IOCTL_HDMITX_PKT_USER_DEFINE fpHDMITX_PKT_USER_DEFINE; 245 IOCTL_HDMITX_PKT_CONTENT_DEFINE fpHDMITX_PKT_CONTENT_DEFINE; 246 IOCTL_HDMITX_SETVIDEOONOFF fpHDMITX_SETVIDEOONOFF; 247 IOCTL_HDMITX_SETCOLORFORMAT fpHDMITX_SETCOLORFORMAT; 248 IOCTL_HDMITX_SET_VS_INFOFRAME fpHDMITX_SET_VS_INFOFRAME; 249 IOCTL_HDMITX_SETVIDEOOUTPUTTIMING fpHDMITX_SETVIDEOOUTPUTTIMING; 250 IOCTL_HDMITX_SETVIDEOOUTPUTASEPECTRATIO fpHDMITX_SETVIDEOOUTPUTASEPECTRATIO; 251 IOCTL_HDMITX_SETVIDEOOUTPUTOVERSCAN_AFD fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD; 252 IOCTL_HDMITX_SETAUDIOONOFF fpHDMITX_SETAUDIOONOFF; 253 IOCTL_HDMITX_SETAUDIOFREQUENCY fpHDMITX_SETAUDIOFREQUENCY; 254 255 IOCTL_HDMITX_SETVIDEOOUTPUTOVERSCAN_AFD_II fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD_II; 256 IOCTL_HDMITX_SETAUDIOCONFIGURATION fpHDMITX_SETAUDIOCONFIGURATION; 257 IOCTL_HDMITX_SETAUDIOSOURCEFORMAT fpHDMITX_SETAUDIOSOURCEFORMAT; 258 IOCTL_HDMITX_SETAVIINFOEXTCOLORIMETRY fpHDMITX_SETAVIINFOCOLORIMETRY; 259 IOCTL_HDMITX_GETAUDIOCTS fpHDMITX_GETAUDIOCTS; 260 IOCTL_HDMITX_MUTEAUDIOFIFO fpHDMITX_MUTEAUDIOFIFO; 261 IOCTL_HDMITX_GETHDCPKEY fpHDMITX_GETHDCPKEY; 262 IOCTL_HDMITX_GETBKSV fpHDMITX_GETBKSV; 263 IOCTL_HDMITX_GETAKSV fpHDMITX_GETAKSV; 264 IOCTL_HDMITX_SETHDCPONOFF fpHDMITX_SETHDCPONOFF; 265 IOCTL_HDMITX_SETAVMUTE fpHDMITX_SETAVMUTE; 266 267 IOCTL_HDMITX_GETAVMUTESTATUS fpHDMITX_GETAVMUTESTATUS; 268 IOCTL_HDMITX_HDCP_REVOCATIONKEY_LIST fpHDMITX_HDCP_REVOCATIONKEY_LIST; 269 IOCTL_HDMITX_HDCP_REVOCATIONKEY_CHECK fpHDMITX_HDCP_REVOCATIONKEY_CHECK; 270 IOCTL_HDMITX_HDCP_ISSRMSIGNATUREVALID fpHDMITX_HDCP_ISSRMSIGNATUREVALID; 271 IOCTL_HDMITX_GETHDCPSTATUS fpHDMITX_GETHDCPSTATUS; 272 IOCTL_HDMITX_HDCP_STARTAUTH fpHDMITX_HDCP_STARTAUTH; 273 IOCTL_HDMITX_GETINTHDCPSTATUS fpHDMITX_GETINTHDCPSTATUS; 274 IOCTL_HDMITX_GETHDCP_PRESTATUS fpHDMITX_GETHDCP_PRESTATUS; 275 IOCTL_HDMITX_UNHDCPRXCONTROL fpHDMITX_UNHDCPRXCONTROL; 276 IOCTL_HDMITX_HDCPRXFAILCONTROL fpHDMITX_HDCPRXFAILCONTROL; 277 278 IOCTL_HDMITX_GETLIBVER fpHDMITX_GETLIBVER; 279 IOCTL_HDMITX_GETINFO fpHDMITX_GETINFO; 280 IOCTL_HDMITX_GETSTATUS fpHDMITX_GETSTATUS; 281 IOCTL_HDMITX_SETDBGLEVEL fpHDMITX_SETDBGLEVEL; 282 IOCTL_HDMITX_SETHPDGPIOPIN fpHDMITX_SETHPDGPIOPIN; 283 IOCTL_HDMITX_ANALOGTUNING fpHDMITX_ANALOGTUNING; 284 IOCTL_HDMITX_FORCEHDMIOUTPUTMODE fpHDMITX_FORCEHDMIOUTPUTMODE; 285 IOCTL_HDMITX_FORCEHDMIOUTPUTCOLORFORMAT fpHDMITX_FORCEHDMIOUTPUTCOLORFORMAT; 286 IOCTL_HDMITX_DISABLEREGWRITE fpHDMITX_DISABLEREGWRITE; 287 IOCTL_HDMITX_GETEDIDPHYADR fpHDMITX_GETEDIDPHYADR; 288 289 IOCTL_HDMITX_SETCECONOFF fpHDMITX_SETCECONOFF; 290 IOCTL_HDMITX_GETCECSTATUS fpHDMITX_GETCECSTATUS; 291 IOCTL_HDMITX_EDIDCHECKING fpHDMITX_EDIDCHECKING; 292 IOCTL_HDMITX_RXBYPASS_MODE fpHDMITX_RXBYPASS_MODE; 293 IOCTL_HDMITX_DISABLE_RXBYPASS fpHDMITX_DISABLE_RXBYPASS; 294 IOCTL_HDMITX_SETAKSV2R0INTERVAL fpHDMITX_SETAKSV2R0INTERVAL; 295 IOCTL_HDMITX_ISRXVALID fpHDMITX_ISRXVALID; 296 IOCTL_HDMITX_GETCHIPCAPS fpHDMITX_GETCHIPCAPS; 297 IOCTL_HDMITX_SETPOWERSTATE fpHDMITX_SETPOWERSTATE; 298 IOCTL_HDMITX_GETEDIDDATABLOCK fpHDMITX_GETEDIDDATABLOCK; 299 IOCTL_HDMITX_GETKSVLIST fpHDMITX_GETKSVLIST; 300 IOCTL_HDMITX_HDCP2ACCESSX74OFFSET fpHDMITX_HDCP2ACCESSX74OFFSET; 301 IOCTL_HDMITX_HDCP2TxInit fpHDMITx_HDCP2TxInit; 302 IOCTL_HDMITX_HDCP2TxEnableEncrypt fpHDMITx_HDCP2TxEnableEncrypt; 303 IOCTL_HDMITX_HDCP2TxFillCipherKey fpHDMITx_HDCP2TxFillCipherKey; 304 IOCTL_HDMITX_GENERALCTRL fpHDMITx_GeneralCtrl; 305 IOCTL_HDMITX_CMD_COLOR_AND_RANGE_TRANSFORM fpHDMITx_Cmd_ColorAndRangeTransform; 306 IOCTL_HDMITX_CMD_SSC_ENABLE fpHDMITx_Cmd_SSCEnable; 307 IOCTL_HDMITX_CMD_SET_COLORIMETRY fpHDMITx_Cmd_Set_Colorimetry; 308 IOCTL_HDMITX_CMD_GET_FULL_RX_STATUS fpHDMITx_Cmd_Get_Full_Rx_Status; 309 IOCTL_HDMITX_CMD_TIMING_CAPABILITY_CHECK fpHDMITx_Cmd_Timing_Capability_Check; 310 IOCTL_HDMITX_CMD_GET_TMDS_STATUS fpHDMITx_Cmd_Get_TMDS_Status; 311 IOCTL_HDMITX_SETVIDEOOUTPUTTIMINGBYCUSTOMER fpHDMITX_SETVIDEOOUTPUTTIMINGBYCUSTOMER; 312 313 #if defined(VANCLEEF_MCP) || defined(RAPTORS_MCP) 314 IOCTL_HDMITX_VANCLEEF_LOADHDCPKEY fpHDMITX_VANCLEEF_LOADHDCPKEY; 315 #endif 316 #endif 317 // OBSOLETE FUNCTION POINTER START 318 // avoid using these functions pointers!!!! 319 }HDMITX_INSTANCE_PRIVATE; 320 321 322 323 MS_BOOL MApi_HDMITx_Init_U2(void *pInstance); 324 MS_BOOL MApi_HDMITx_Exit_U2(void *pInstance); 325 void MApi_HDMITx_TurnOnOff_U2(void *pInstance, MS_BOOL state); 326 void MApi_HDMITx_EnablePacketGen_U2(void *pInstance, MS_BOOL bflag); 327 void MApi_HDMITx_SetHDMITxMode_U2(void *pInstance, HDMITX_OUTPUT_MODE mode); 328 void MApi_HDMITx_SetHDMITxMode_CD_U2(void *pInstance, HDMITX_OUTPUT_MODE mode, HDMITX_VIDEO_COLORDEPTH_VAL val); 329 void MApi_HDMITx_SetTMDSOnOff_U2(void *pInstance, MS_BOOL state); 330 void MApi_HDMITx_DisableTMDSCtrl_U2(void *pInstance, MS_BOOL bFlag); 331 void MApi_HDMITx_SetRBChannelSwap_U2(void *pInstance, MS_BOOL state); 332 void MApi_HDMITx_Exhibit_U2(void *pInstance); 333 MS_BOOL MApi_HDMITx_GetRxStatus_U2(void); 334 MS_BOOL MApi_HDMITx_GetRxDCInfoFromEDID_U2(void *pInstance, HDMITX_VIDEO_COLORDEPTH_VAL *val); 335 MS_BOOL MApi_HDMITx_GetRxVideoFormatFromEDID_U2(void *pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 336 MS_BOOL MApi_HDMITx_GetVICListFromEDID_U2(void* pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 337 MS_BOOL MApi_HDMITx_GetDataBlockLengthFromEDID_U2(void *pInstance, MS_U8 *pu8Length, MS_U8 u8TagCode); 338 MS_BOOL MApi_HDMITx_GetRxAudioFormatFromEDID_U2(void *pInstance, MS_U8 *pu8Buffer, MS_U8 u8BufSize); 339 MS_BOOL MApi_HDMITx_EDID_HDMISupport_U2(void *pInstance, MS_BOOL *HDMI_Support); 340 MS_BOOL MApi_HDMITx_GetRxIDManufacturerName_U2(void *pInstance, MS_U8 *pu8Buffer); 341 MS_BOOL MApi_HDMITx_GetEDIDData_U2(void *pInstance, MS_U8 *pu8Buffer, MS_BOOL BlockIdx); 342 MS_BOOL MApi_HDMITx_GetRx3DStructureFromEDID_U2(void *pInstance, HDMITX_VIDEO_TIMING timing, HDMITX_EDID_3D_STRUCTURE_ALL *p3DStructure); 343 MS_BOOL MApi_HDMITx_GetColorFormatFromEDID_U2(void* pInstance, HDMITX_VIDEO_TIMING timing, HDMITX_EDID_COLOR_FORMAT *pColorFmt); 344 void MApi_HDMITx_PKT_User_Define_Clear_U2(void *pInstance); 345 void MApi_HDMITx_PKT_User_Define_U2(void *pInstance, HDMITX_PACKET_TYPE packet_type, MS_BOOL def_flag, HDMITX_PACKET_PROCESS def_process, MS_U8 def_fcnt); 346 MS_BOOL MApi_HDMITx_PKT_Content_Define_U2(void *pInstance, HDMITX_PACKET_TYPE packet_type, MS_U8 *data, MS_U8 length); 347 void MApi_HDMITx_SetVideoOnOff_U2(void *pInstance, MS_BOOL state); 348 void MApi_HDMITx_SetColorFormat_U2(void *pInstance, HDMITX_VIDEO_COLOR_FORMAT in_color, HDMITX_VIDEO_COLOR_FORMAT out_color); 349 void MApi_HDMITx_Set_VS_InfoFrame_U2(void *pInstance, HDMITX_VIDEO_VS_FORMAT vs_format, HDMITX_VIDEO_3D_STRUCTURE vs_3d, HDMITX_VIDEO_4k2k_VIC vs_vic); 350 void MApi_HDMITx_SetVideoOutputTiming_U2(void *pInstance, HDMITX_VIDEO_TIMING mode); 351 void MApi_HDMITx_SetVideoOutputAsepctRatio_U2(void *pInstance, HDMITX_VIDEO_ASPECT_RATIO out_ar); 352 void MApi_HDMITx_SetVideoOutputOverscan_AFD_U2(void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd); 353 void MApi_HDMITx_SetAudioOnOff_U2(void *pInstance, MS_BOOL state); 354 void MApi_HDMITx_SetAudioFrequency_U2(void *pInstance, HDMITX_AUDIO_FREQUENCY freq); 355 void MApi_HDMITx_SetVideoOutputOverscan_AFD_II_U02(void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd, MS_U8 A0); 356 void MApi_HDMITx_SetAudioConfiguration_U2(void *pInstance, HDMITX_AUDIO_FREQUENCY freq, HDMITX_AUDIO_CHANNEL_COUNT ch, HDMITX_AUDIO_CODING_TYPE type); 357 void MApi_HDMITx_SetAudioSourceFormat_U2(void *pInstance, HDMITX_AUDIO_SOURCE_FORMAT fmt); 358 MS_BOOL MApi_HDMITx_SetAVIInfoExtColorimetry_U2(void* pInstance, HDMITX_AVI_EXTENDED_COLORIMETRY enExtColorimetry, HDMITX_AVI_YCC_QUANT_RANGE enYccQuantRange); 359 MS_U32 MApi_HDMITx_GetAudioCTS_U2(void *pInstance); 360 void MApi_HDMITx_MuteAudioFIFO_U2(void *pInstance, MS_BOOL bflag); 361 void MApi_HDMITx_GetHdcpKey_U2(void *pInstance, MS_BOOL useinternalkey, MS_U8 *data); 362 MS_BOOL MApi_HDMITx_GetBksv_U2(void *pInstance, MS_U8 *pdata); 363 MS_BOOL MApi_HDMITx_GetAksv_U2(void *pInstance, MS_U8 *pdata); 364 void MApi_HDMITx_SetHDCPOnOff_U2(void *pInstance, MS_BOOL state); 365 void MApi_HDMITx_SetAVMUTE_U2(void *pInstance, MS_BOOL bflag); 366 MS_BOOL MApi_HDMITx_GetAVMUTEStatus_U2(void *pInstance); 367 void MApi_HDMITx_HDCP_RevocationKey_List_U2(void *pInstance, MS_U8 *data, MS_U16 size); 368 HDMITX_REVOCATION_STATE MApi_HDMITx_HDCP_RevocationKey_Check_U2(void *pInstance); 369 MS_BOOL MApi_HDMITx_HDCP_IsSRMSignatureValid_U2(void *pInstance, MS_U8 *data, MS_U32 size); 370 HDMITX_HDCP_STATUS MApi_HDMITx_GetHDCPStatus_U2(void *pInstance); 371 void MApi_HDMITx_HDCP_StartAuth_U2(void *pInstance, MS_BOOL bFlag); 372 HDMITX_INT_HDCP_STATUS MApi_HDMITx_GetINTHDCPStatus_U2(void *pInstance); 373 HDMITX_INT_HDCP_STATUS MApi_HDMITx_GetHDCP_PreStatus_U2(void *pInstance); 374 void MApi_HDMITx_UnHDCPRxControl_U2(void *pInstance, HDMITX_UNHDCPRX_CONTROL state); 375 void MApi_HDMITx_HDCPRxFailControl_U2(void *pInstance, HDMITX_HDCPRXFail_CONTROL state); 376 MS_BOOL MApi_HDMITx_GetLibVer_U2(void *pInstance, const MSIF_Version **ppVersion); 377 MS_BOOL MApi_HDMITx_GetInfo_U2(void *pInstance, HDMI_TX_INFO *pInfo); 378 MS_BOOL MApi_HDMITx_GetStatus_U2(void *pInstance, HDMI_TX_Status *pStatus); 379 MS_BOOL MApi_HDMITx_SetDbgLevel_U2(MS_U16 u16DbgSwitch); 380 void MApi_HDMITx_SetHPDGpioPin_U2(void *pInstance, MS_U8 u8pin); 381 void MApi_HDMITx_AnalogTuning_U2(void *pInstance, HDMITX_ANALOG_TUNING *pInfo); 382 void MApi_HDMITx_ForceHDMIOutputMode_U2(void *pInstance, MS_BOOL bflag, HDMITX_OUTPUT_MODE output_mode); 383 MS_BOOL MApi_HDMITx_ForceHDMIOutputColorFormat_U2(void *pInstance, MS_BOOL bflag, HDMITX_VIDEO_COLOR_FORMAT output_color); 384 void MApi_HDMITx_DisableRegWrite_U2(void *pInstance, MS_BOOL bFlag); 385 void MApi_HDMITx_GetEDIDPhyAdr_U2(void *pInstance, MS_U8 *pdata); 386 void MApi_HDMITx_SetCECOnOff_U2(void *pInstance, MS_BOOL bflag); 387 MS_BOOL MApi_HDMITx_GetCECStatus_U2(void *pInstance); 388 MS_BOOL MApi_HDMITx_EdidChecking_U2(void *pInstance); 389 MS_BOOL MApi_HDMITx_RxBypass_Mode_U2(void *pInstance, HDMITX_INPUT_FREQ freq, MS_BOOL bflag); 390 MS_BOOL MApi_HDMITx_Disable_RxBypass_U2(void *pInstance); 391 MS_BOOL MApi_HDMITx_SetAksv2R0Interval_U2(void *pInstance, MS_U32 u32Interval); 392 MS_BOOL MApi_HDMITx_IsHDCPRxValid_U2(void *pInstance); 393 MS_BOOL MApi_HDMITx_GetChipCaps_U2(void *pInstance, EN_HDMITX_CAPS eCapType, MS_U32* pRet, MS_U32 ret_size); 394 MS_U32 MApi_HDMITx_SetPowerState_U2(void *pInstance, EN_POWER_MODE u16PowerState); 395 MS_BOOL MApi_HDMITx_GetEdidDataBlocks_U2(void* pInstance, HDMITX_CEA_DB_TAG_CODE enTagCode, HDMITX_CEA_EXT_TAG_CODE enExtTagCode, MS_U8* pu8Data, MS_U32 u32DataLen, MS_U32* pu32RealLen); 396 MS_BOOL MApi_HDMITx_GetKSVList_U2(void* pInstance, MS_U8 *pu8Bstatus, MS_U8* pu8KSVList, MS_U16 u16BufLen, MS_U16 *pu16KSVLength); 397 MS_BOOL MApi_HDMITx_HDCP2AccessX74_U2(void* pInstance, MS_U8 u8PortIdx, MS_U8 u8OffsetAddr, MS_U8 u8OpCode, MS_U8 *pu8RdBuf, MS_U16 u16RdLen, MS_U8 *pu8WRBuff, MS_U16 u16WrLen); 398 void MApi_HDMITx_HDCP2TxInit_U2(void *pInstance, MS_U8 u8PortIdx, MS_BOOL bEnable); 399 void MApi_HDMITx_HDCP2TxEnableEncrypt_U2(void *pInstance, MS_U8 u8PortIdx, MS_BOOL bEnable); 400 void MApi_HDMITx_HDCP2TxFillCipherKey_U2(void *pInstance, MS_U8 u8PortIdx, MS_U8 *pu8Riv, MS_U8 *pu8KsXORLC128); 401 MS_BOOL MApi_HDMITx_GeneralCtrl_U2(void* pInstance, MS_U32 u32Cmd, MS_U8* pu8Buf, MS_U32 u32BufSize); 402 MS_BOOL MApi_HDMITx_ColorandRange_Transform_U2(void* pInstance, HDMITX_VIDEO_COLOR_FORMAT incolor, HDMITX_VIDEO_COLOR_FORMAT outcolor, HDMITX_QUANT_RANGE inange, HDMITX_QUANT_RANGE outrange); 403 MS_BOOL MApi_HDMITx_SSC_Enable_U2(void* pInstance, MS_U8 ubSSCEn); 404 MS_U8 MApi_HDMITx_SetAVIInfoColorimetry_U2(void* pInstance, HDMITX_AVI_COLORIMETRY enColorimetry); 405 MS_U32 MApi_HDMITx_GetFullRxStatus_U2(void* pInstance); 406 HDMITX_TIMING_ERROR MApi_HDMITx_CheckLegalTiming_U2(void* pInstance, HDMITX_OUTPUT_MODE eOutputMode, HDMITX_VIDEO_TIMING idx, HDMITX_VIDEO_COLOR_FORMAT incolor_fmt, HDMITX_VIDEO_COLOR_FORMAT outcolor_fmt, HDMITX_VIDEO_COLORDEPTH_VAL color_depth); 407 MS_U32 MApi_HDMITx_GetTMDSStatus_U2(void* pInstance); 408 void MApi_HDMITx_SetVideoOutputTimingByCustomer_U2(void* pInstance, HDMITX_VIDEO_TIMING u8Mode, HDMITX_TIMING_INFO_BY_CUSTOMER stTiminginfo); 409 410 #if defined(VANCLEEF_MCP) || defined(RAPTORS_MCP) 411 MS_BOOL MApi_HDMITx_Vancleef_LoadHDCPKey_U2(void *pInstance, MS_U8* pu8HdcpKey, MS_U32 u32Size); 412 #endif 413 414 415 416 //internal use only 417 MS_U32 _HDMITX_GET_DEVICE_NUM(void); 418 419 void HDMITXRegisterToUtopia(FUtopiaOpen ModuleType); 420 MS_U32 HDMITXOpen(void** ppInstance, const void* const pAttribute); 421 MS_U32 HDMITXClose(void* pInstance); 422 MS_U32 HDMITXIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs); 423 424 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT 425 MS_U32 HDMITXMdbIoctl(MS_U32 cmd, const void* const pArgs); 426 #endif 427 428 #ifdef __cplusplus 429 } 430 #endif 431 432 #undef _API_HDMITX_PRIV_H_ 433 #endif // _API_ACE_PRIV_H_ 434 435