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 _XC_HDMI_IF_H_ 79 #define _XC_HDMI_IF_H_ 80 81 #include "MsTypes.h" 82 #include "UFO.h" 83 84 #ifdef __cplusplus 85 extern "C" 86 { 87 #endif 88 89 #if !defined(UFO_PUBLIC_HEADER_500_3) 90 typedef enum 91 { 92 //HDMI Rx property 93 MAPI_CMD_HDMIRX_INITIAL, 94 MAPI_CMD_HDMIRX_STABLE_POLLING, 95 MAPI_CMD_HDMIRX_GET_SOURCE_VERSION, 96 MAPI_CMD_HDMIRX_CHECK_HDCP_STATE, 97 MAPI_CMD_HDMIRX_CHECK_HDCP_ENC_STATE, 98 MAPI_CMD_HDMIRX_CHECK_HDCP14_KEY, 99 MAPI_CMD_HDMIRX_GET_HDCP14_KEY_VAILD, 100 MAPI_CMD_HDMIRX_SET_HPD_INVERT_FLAG, 101 MAPI_CMD_HDMIRX_GET_PACKET_RECEIVE, 102 /*************************** HDCP Repeater ***************************/ 103 MAPI_CMD_HDMIRX_WRITE_X74, 104 MAPI_CMD_HDMIRX_READ_X74, 105 MAPI_CMD_HDMIRX_SET_REPEATER, 106 MAPI_CMD_HDMIRX_SET_BSTATUS, 107 MAPI_CMD_HDMIRX_SET_HDMI_MODE, 108 MAPI_CMD_HDMIRX_GET_INTERRUPT_STATUS, 109 MAPI_CMD_HDMIRX_WRITE_KSV_LIST, 110 MAPI_CMD_HDMIRX_SET_VPRIME, 111 MAPI_CMD_HDMIRX_HDCP22_FILL_CIPHER_KEY, 112 MAPI_CMD_HDMIRX_HDCP22_PORT_INIT, 113 MAPI_CMD_HDMIRX_HDCP22_POLLING_READ_DONE, 114 MAPI_CMD_HDMIRX_HDCP22_ENABLE_CIPHER, 115 MAPI_CMD_HDMIRX_HDCP22_SEND_MESSAGE, 116 MAPI_CMD_HDMIRX_HDCP22_HANDLER, 117 MAPI_CMD_HDMIRX_HDCP22_WAIT_EVENT, 118 /*************************** HDCP Repeater ***************************/ 119 }E_HDMIRX_API_CMD_TYPE; 120 #endif 121 122 typedef struct 123 { 124 stHDMI_INITIAL_TABLE stInitialTable; 125 } stHDMI_INITIAL_SETTING, *pstHDMI_INITIAL_SETTING; 126 127 typedef struct 128 { 129 MS_U16 u16ReturnValue; 130 } stHDMI_FUNC_CAPS, *pstHDMI_FUNC_CAPS; 131 132 typedef struct 133 { 134 HDMI_REST_t breset; 135 } stHDMI_PKT_RESET, *pstHDMI_PKT_RESET; 136 137 typedef struct 138 { 139 MS_BOOL bHighLow; 140 E_MUX_INPUTPORT enInputPortType; 141 MS_BOOL bInverse; 142 } stHDMI_PULLHPD, *pstHDMI_PULLHPD; 143 144 typedef struct 145 { 146 HDMI_GControl_INFO_t gcontrol; 147 MS_U16 u16ReturnValue; 148 MS_U8 ucHDMIInfoSource; 149 } stHDMI_GC_INFO, *pstHDMI_GC_INFO; 150 151 typedef struct 152 { 153 #if defined(UFO_PUBLIC_HEADER_212) ||defined(UFO_PUBLIC_HEADER_500_3) 154 MS_BOOL bEnable; 155 MS_HDMI_PACKET_VALUE_t stReturnValue; 156 #else 157 MS_U32 ulPacketStatus; 158 MS_BOOL bEnable; 159 MS_U8 ucHDMIInfoSource; 160 #endif 161 } stHDMI_PACKET_RECEIVED, *pstHDMI_PACKET_RECEIVED; 162 163 typedef struct 164 { 165 MS_HDMI_COLOR_FORMAT eReturnValue; 166 MS_U8 ucHDMIInfoSource; 167 } stHDMI_GET_COLORFORMAT, *pstHDMI_GET_COLORFORMAT; 168 169 typedef struct 170 { 171 EN_HDMI_COLOR_RANGE eReturnValue; 172 MS_U8 ucHDMIInfoSource; 173 } stHDMI_GET_COLORRANGE, *pstHDMI_GET_COLORRANGE; 174 175 typedef struct 176 { 177 MS_HDMI_EQ enEq; 178 MS_U8 u8EQValue; 179 } stHDMI_SET_EQ, *pstHDMI_SET_EQ; 180 181 typedef struct 182 { 183 MS_HDMI_EQ enEq; 184 MS_U8 u8EQValue; 185 E_MUX_INPUTPORT enInputPortType; 186 MS_BOOL bReturnValue; 187 } stHDMI_SET_EQ_TO_PORT, *pstHDMI_SET_EQ_TO_PORT; 188 189 typedef struct 190 { 191 MS_U16 u16MuteEvent; 192 MS_U16 u16MuteMask; 193 } stHDMI_AUDIO_MUTE_ENABLE, *pstHDMI_AUDIO_MUTE_ENABLE; 194 195 typedef struct 196 { 197 MS_BOOL bEn_PAR; 198 MS_BOOL bEn_AFAR; 199 MS_HDMI_AR_TYPE eReturnValue; 200 MS_U8 ucHDMIInfoSource; 201 } stHDMI_GET_ASPECTRATIO, *pstHDMI_GET_ASPECTRATIO; 202 203 typedef struct 204 { 205 MS_BOOL bEn_AFAR; 206 MS_HDMI_AR_TYPE eReturnValue; 207 MS_U8 ucHDMIInfoSource; 208 } stHDMI_GET_ACTIVEFORMAT_ASPECTRATIO, *pstHDMI_GET_ACTIVEFORMAT_ASPECTRATIO; 209 210 typedef struct 211 { 212 EN_AVI_INFOFRAME_VERSION eReturnValue; 213 MS_U8 ucHDMIInfoSource; 214 } stHDMI_GET_AVIINFOFRAMEVER, *pstHDMI_GET_AVIINFOFRAMEVER; 215 216 typedef struct 217 { 218 MS_U8 u8value; 219 MS_BOOL bread; 220 MS_U8 u8ReturnValue; 221 MS_U8 ucHDMIInfoSource; 222 } stHDMI_ERR_STATUS_UPDATE, *pstHDMI_ERR_STATUS_UPDATE; 223 224 typedef struct 225 { 226 MS_U16 u8ReturnValue; 227 } stHDMI_GET_TMDS_FREQ, *pstHDMI_GET_TMDS_FREQ; 228 229 typedef struct 230 { 231 HDMI_POLLING_STATUS_t **pStatus; 232 } stHDMI_GET_POLLINGSTATUS, *pstHDMI_GET_POLLINGSTATUS; 233 234 typedef struct 235 { 236 MS_BOOL bReturnValue; 237 } stHDMI_ISHDMI_MODE, *pstHDMI_ISHDMI_MODE; 238 239 typedef struct DLL_PACKED 240 { 241 MS_U8 * pu8ManufactorData; 242 MS_U8 ucHDMIInfoSource; 243 } stHDMI_GET_MID_INFO, *pstHDMI_GET_MID_INFO; 244 245 typedef struct DLL_PACKED 246 { 247 MS_HDMI_PACKET_STATE_t u8state; 248 MS_U8 u8byte_idx; 249 MS_U8 *pValue; 250 MS_BOOL bReturnValue; 251 MS_U8 ucHDMIInfoSource; 252 } stHDMI_GET_PACKET_VALUE, *pstHDMI_GET_PACKET_VALUE; 253 254 typedef struct 255 { 256 MS_DVI_CHANNEL_TYPE u8Channel; 257 MS_U16 u16ReturnValue; 258 } stDVI_CHANNELPHASESTATUS, *pstDVI_CHANNELPHASESTATUS; 259 260 typedef struct 261 { 262 MS_U16 u16Reset; 263 } stDVI_SOFTWARERESET, *pstDVI_SOFTWARERESET; 264 265 typedef struct 266 { 267 MS_BOOL bReturnValue; 268 MS_U8 ucHDMIInfoSource; 269 } stHDMI_GET_AVIIINFO_ACTIVEINFOPRESENT, *pstHDMI_GET_AVIIINFO_ACTIVEINFOPRESENT; 270 271 typedef struct 272 { 273 MS_BOOL bPullLow; 274 E_MUX_INPUTPORT enInputPortType; 275 } stDVI_CLKPULLLOW, *pstDVI_CLKPULLLOW; 276 277 typedef struct 278 { 279 E_MUX_INPUTPORT enInputPortType; 280 MS_U8 ucHDMIInfoSource; 281 } stDVI_SWITCHSRC, *pstDVI_SWITCHSRC; 282 283 typedef struct 284 { 285 E_MUX_INPUTPORT enInputPortType; 286 MS_BOOL bReturnValue; 287 } stHDMI_SETFORCLOCKLESSTHAN70MHZ, *pstHDMI_SETFORCLOCKLESSTHAN70MHZ; 288 289 typedef struct 290 { 291 MS_BOOL bClockLessThan70MHz; 292 } stHDMI_DVI_ADJUST, *pstHDMI_DVI_ADJUST; 293 294 typedef struct 295 { 296 INPUT_SOURCE_TYPE_t enInputSourceType; 297 } stHDMI_SETUPDATEPHASELINECOUNT, *pstHDMI_SETUPDATEPHASELINECOUNT; 298 299 typedef struct 300 { 301 MS_BOOL bEnable; 302 } stHDCP_ENABLE, *pstHDCP_ENABLE; 303 304 typedef struct 305 { 306 E_MUX_INPUTPORT enInputPortType; 307 MS_BOOL bEnable; 308 MS_BOOL bReturnValue; 309 } stHDMI_SET_HDCPENABLE, *pstHDMI_SET_HDCPENABLE; 310 311 typedef struct DLL_PACKED 312 { 313 MS_U8 * pu8HdcpKeyData; 314 } stHDCP_INITPRODUCTIONKEY, *pstHDCP_INITPRODUCTIONKEY; 315 316 typedef struct DLL_PACKED 317 { 318 #if defined(UFO_PUBLIC_HEADER_212) 319 MS_HDCP_STATUS_INFO_t* stReturnValue; 320 #else 321 MS_U16 usHDCPStatus; 322 #endif 323 } stHDCP_GETSTATUS, *pstHDCP_GETSTATUS; 324 325 typedef struct 326 { 327 MS_BOOL bStable; 328 } stHDCP_VSYNC_END_EN, *pstHDCP_VSYNC_END_EN; 329 330 typedef struct 331 { 332 MS_BOOL bEnable; 333 } stHDMI_AUDIO_OUTPUT, *pstHDMI_AUDIO_OUTPUT; 334 335 typedef struct 336 { 337 MS_U8 u8ReturnValue; 338 MS_U8 ucHDMIInfoSource; 339 } stHDMI_AUDIO_CP_HDR_INFO, *pstHDMI_AUDIO_CP_HDR_INFO; 340 341 typedef struct 342 { 343 MS_U8 u8byte; 344 MS_U8 u8ReturnValue; 345 MS_U8 ucHDMIInfoSource; 346 } stHDMI_AUDIO_CHANNEL_STATUS, *pstHDMI_AUDIO_CHANNEL_STATUS; 347 348 typedef struct DLL_PACKED 349 { 350 const MSIF_Version **ppVersion; 351 HDMI_Ret_Value eReturnValue; 352 } stHDMI_GETLIBVER, *pstHDMI_GETLIBVER; 353 354 typedef struct DLL_PACKED 355 { 356 MS_HDMI_INFO *pInfo; 357 HDMI_Ret_Value eReturnValue; 358 } stHDMI_GETINFO, *pstHDMI_GETINFO; 359 360 typedef struct DLL_PACKED 361 { 362 MS_HDMI_Status *pStatus; 363 HDMI_Ret_Value eReturnValue; 364 } stHDMI_GETSTATUS, *pstHDMI_GETSTATUS; 365 366 typedef struct DLL_PACKED 367 { 368 XC_DDCRAM_PROG_INFO *pstDDCRam_Info; 369 MS_U32 u32SizeOfInfo; 370 } stHDMI_READ_DDCRAM, *pstHDMI_READ_DDCRAM; 371 372 typedef struct DLL_PACKED 373 { 374 XC_DDCRAM_PROG_INFO *pstDDCRam_Info; 375 MS_U32 u32SizeOfInfo; 376 } stHDMI_PROG_DDCRAM, *pstHDMI_PROG_DDCRAM; 377 378 typedef struct 379 { 380 MS_HDMI_CONTENT_TYPE enReturnValue; 381 MS_U8 ucHDMIInfoSource; 382 } stHDMI_GET_CONTENT_TYPE, *pstHDMI_GET_CONTENT_TYPE; 383 384 typedef struct 385 { 386 MS_HDMI_EXT_COLORIMETRY_FORMAT enReturnValue; 387 MS_U8 ucHDMIInfoSource; 388 } stHDMI_GET_EXT_COLORIMETRY, *pstHDMI_GET_EXT_COLORIMETRY; 389 390 typedef struct 391 { 392 MS_U8 u8ReturnValue; 393 MS_U8 ucHDMIInfoSource; 394 } stHDMI_GET_PIXEL_REPETITION, *pstHDMI_GET_PIXEL_REPETITION; 395 396 typedef struct 397 { 398 MS_BOOL bReturnValue; 399 MS_U8 ucHDMIInfoSource; 400 } stHDMI_CHECK_4K2K, *pstHDMI_CHECK_4K2K; 401 402 typedef struct 403 { 404 MS_U8 ucHDMIInfoSource; 405 } stHDMI_3D_4K2K_PROCESS, *pstHDMI_3D_4K2K_PROCESS; 406 407 typedef struct 408 { 409 MS_BOOL bTrue; 410 MS_U8 ucHDMIInfoSource; 411 } stHDMI_AVG_SCALERINGDOWN, *pstHDMI_AVG_SCALERINGDOWN; 412 413 typedef struct 414 { 415 E_HDMI_ADDITIONAL_VIDEO_FORMAT eReturnValue; 416 MS_U8 ucHDMIInfoSource; 417 } stHDMI_CHECK_ADDITIONAL_FORMAT, *pstHDMI_CHECK_ADDITIONAL_FORMAT; 418 419 typedef struct 420 { 421 E_XC_3D_INPUT_MODE eReturnValue; 422 MS_U8 ucHDMIInfoSource; 423 } stHDMI_GET_3D_STRUCTURE, *pstHDMI_GET_3D_STRUCTURE; 424 425 typedef struct 426 { 427 E_HDMI_3D_EXT_DATA_T eReturnValue; 428 MS_U8 ucHDMIInfoSource; 429 } stHDMI_GET_3D_EXT_DATA, *pstHDMI_GET_3D_EXT_DATA; 430 431 typedef struct DLL_PACKED 432 { 433 sHDMI_3D_META_FIELD *pdata; 434 MS_U8 ucHDMIInfoSource; 435 } stHDMI_GET_3D_META_FIELD, *pstHDMI_GET_3D_META_FIELD; 436 437 typedef struct 438 { 439 MS_U8 u8ReturnValue; 440 MS_U8 ucHDMIInfoSource; 441 } stHDMI_GET_VIC_CODE, *pstHDMI_GET_VIC_CODE; 442 443 typedef struct 444 { 445 E_HDMI_VIC_4Kx2K_CODE eReturnValue; 446 MS_U8 ucHDMIInfoSource; 447 } stHDMI_GET_4KX2K_VIC_CODE, *pstHDMI_GET_4KX2K_VIC_CODE; 448 449 typedef struct 450 { 451 E_MUX_INPUTPORT enInputPortType; 452 MS_BOOL bEnable; 453 MS_BOOL bDrivingHigh; 454 } stHDMI_ARC_PINCONTROL, *pstHDMI_ARC_PINCONTROL; 455 456 typedef struct 457 { 458 E_MUX_INPUTPORT enInputPortType; 459 MS_U16 u16Reset; 460 } stDVI_SOFTWARE_RESET, *pstDVI_SOFTWARE_RESET; 461 462 typedef struct 463 { 464 EN_POWER_MODE enPowerState; 465 MS_U32 u32ReturnValue; 466 } stHDMI_SET_POWERSTATE, *pstHDMI_SET_POWERSTATE; 467 468 typedef struct 469 { 470 E_MUX_INPUTPORT enInputPortType; 471 MS_BOOL bReturnValue; 472 } stHDMI_CheckHDMI20_Setting, *pstHDMI_CheckHDMI20_Setting; 473 474 typedef struct 475 { 476 E_MUX_INPUTPORT enInputPortType; 477 MS_BOOL bReturnValue; 478 } stHDMI_CHECK_HDMI20_SETTING, *pstHDMI_CHECK_HDMI20_SETTING; 479 480 typedef struct 481 { 482 E_MUX_INPUTPORT enInputPortType; 483 MS_U8 ucSourceVersion; 484 } stHDMI_Get_Source_Version, *pstHDMI_Get_Source_Version; 485 486 typedef struct 487 { 488 E_MUX_INPUTPORT enInputPortType; 489 MS_U8 ucSourceVersion; 490 } stHDMI_GET_SOURCE_VERSION, *pstHDMI_GET_SOURCE_VERSION; 491 492 typedef struct 493 { 494 MS_U32 ul5VDetectGPIOSelect; 495 } stHDMI_Set5VDetectGPIOSelect, *pstHDMI_Set5VDetectGPIOSelect; 496 497 typedef struct 498 { 499 MS_U32 ul5VDetectGPIOSelect; 500 } stHDMI_SET_5V_DETECT_GPIO_SELECT, *pstHDMI_SET_5V_DETECT_GPIO_SELECT; 501 502 typedef struct 503 { 504 E_MUX_INPUTPORT enInputPortType; 505 MS_BOOL bStatus; 506 } stHDMI_Get_De_Stable_Status, *pstHDMI_Get_De_Stable_Status; 507 508 typedef struct 509 { 510 E_MUX_INPUTPORT enInputPortType; 511 MS_BOOL bStatus; 512 } stHDMI_GET_DE_STABLE_STATUS, *pstHDMI_GET_DE_STABLE_STATUS; 513 514 typedef struct 515 { 516 MS_BOOL ucHDCP14_flag; 517 } stHDMI_Check_HDCP14, *pstHDMI_Check_HDCP14; 518 519 typedef struct 520 { 521 MS_BOOL bHDCP14KeyVaildFlag; 522 } stHDMI_GET_HDCP14_KEY_VAILD, *pstHDMI_GET_HDCP14_KEY_VAILD; 523 524 typedef struct 525 { 526 E_MUX_INPUTPORT enInputPortType; 527 MS_U8 ucHDCPState; 528 } stHDMI_CHECK_HDCP_STATE, *pstHDMI_CHECK_HDCP_STATE; 529 530 typedef struct 531 { 532 E_MUX_INPUTPORT enInputPortType; 533 MS_U8 ucHDCPENCState; 534 } stHDMI_CHECK_HDCP_ENC_STATE, *pstHDMI_CHECK_HDCP_ENC_STATE; 535 536 typedef struct 537 { 538 MS_BOOL bInverse; 539 E_MUX_INPUTPORT enInputPortType; 540 } stHDMI_SET_HPD_INVERT_FLAG, *pstHDMI_SET_HPD_INVERT_FLAG; 541 542 typedef struct 543 { 544 MS_U16 usReturnValue; 545 E_HDMI_GET_DATA_INFO enInfo; 546 MS_U8 ucHDMIInfoSource; 547 } stHDMI_GET_DATA_INFO, *pstHDMI_GET_DATA_INFO; 548 549 /*************************** HDCP22 ***************************/ 550 typedef struct 551 { 552 MS_U8 ucPortIdx; 553 MS_U8* pucRiv; 554 MS_U8* pucSessionKey; 555 } stHDCP22_FillCipherKey, *pstHDCP22_FillCipherKey; 556 557 typedef struct DLL_PACKED 558 { 559 MS_U8 ucPortIdx; 560 MS_U8* pucRiv; 561 MS_U8* pucSessionKey; 562 } stHDCP22_FILL_CIPHER_KEY, *pstHDCP22_FILL_CIPHER_KEY; 563 564 typedef struct DLL_PACKED 565 { 566 HDCP22_Recv_CBF pCBFunc; 567 void* pContext; 568 } stHDCP22_InitCBFunc, *pstHDCP22_InitCBFunc; 569 570 typedef struct 571 { 572 MS_U8 ucPortIdx; 573 } stHDCP22_PortInit, *pstHDCP22_PortInit; 574 575 typedef struct 576 { 577 MS_U8 ucPortIdx; 578 } stHDCP22_PORT_INIT, *pstHDCP22_PORT_INIT; 579 580 typedef struct 581 { 582 MS_U8 ucPortIdx; 583 MS_BOOL bReturnValue; 584 } stHDCP22_PollingReadDone, *pstHDCP22_PollingReadDone; 585 586 typedef struct 587 { 588 MS_U8 ucPortIdx; 589 MS_BOOL bReturnValue; 590 } stHDCP22_POLLING_READ_DONE, *pstHDCP22_POLLING_READ_DONE; 591 592 typedef struct 593 { 594 MS_U8 ucPortType; 595 MS_U8 ucPortIdx; 596 MS_BOOL bIsEnable; 597 } stHDCP22_EnableCipher, *pstHDCP22_EnableCipher; 598 599 typedef struct 600 { 601 MS_U8 ucPortType; 602 MS_U8 ucPortIdx; 603 MS_BOOL bIsEnable; 604 } stHDCP22_ENABLE_CIPHER, *pstHDCP22_ENABLE_CIPHER; 605 606 typedef struct 607 { 608 MS_U8 ucPortType; 609 MS_U8 ucPortIdx; 610 MS_U8* pucData; 611 MS_U32 dwDataLen; 612 void* pDummy; 613 } stHDCP22_SendMsg, *pstHDCP22_SendMsg; 614 615 typedef struct DLL_PACKED 616 { 617 MS_U8 ucPortType; 618 MS_U8 ucPortIdx; 619 MS_U8* pucData; 620 MS_U32 dwDataLen; 621 void* pDummy; 622 } stHDCP22_SEND_MESSAGE, *pstHDCP22_SEND_MESSAGE; 623 624 typedef struct 625 { 626 MS_U8 ucPortIdx; 627 } stHDCP22_Handler, *pstHDCP22_Handler; 628 629 typedef struct 630 { 631 MS_BOOL bHdcp22RecvMsgFlag; 632 MS_BOOL bIRQModeFlag; 633 MS_U8 ucPortIdx; 634 MS_U8 ucHdcp22PortType; 635 MS_U8 pucHdcp22MsgData[129]; 636 MS_U32 ucHdcp22MsgLen; 637 } stHDCP22_HANDLER, *pstHDCP22_HANDLER; 638 639 typedef struct 640 { 641 MS_U8 ucHDCPWriteDoneIndex; 642 } stHDCP22_WAIT_EVENT, *pstHDCP22_WAIT_EVENT; 643 644 typedef struct 645 { 646 MS_U32 u32Cmd; 647 void *pBuf; 648 MS_U32 u32BufSize; 649 MS_BOOL bRet; 650 } stHDMI_Ctrl, *pstHDMI_Ctrl; 651 652 /*************************** HDCP22 ***************************/ 653 typedef struct DLL_PACKED 654 { 655 MS_U32 u32Cmd; 656 void *pBuf; 657 MS_U32 u32BufSize; 658 MS_BOOL bRet; 659 MS_U8 ucHDMIInfoSource; 660 } stHDMI_CONTROL, *pstHDMI_CONTROL; 661 662 /************************ HDCP Repeater ************************/ 663 typedef struct 664 { 665 E_MUX_INPUTPORT enInputPortType; 666 MS_U8 ucOffset; 667 MS_U8 ucData; 668 } stHDCP_WRITE_X74, *pstHDCP_WRITE_X74; 669 670 typedef struct 671 { 672 E_MUX_INPUTPORT enInputPortType; 673 MS_U8 ucOffset; 674 MS_U8 ucRetData; 675 } stHDCP_READ_X74, *pstHDCP_READ_X74; 676 677 typedef struct 678 { 679 E_MUX_INPUTPORT enInputPortType; 680 MS_BOOL bIsRepeater; 681 } stHDCP_SET_REPEATER, *pstHDCP_SET_REPEATER; 682 683 typedef struct 684 { 685 E_MUX_INPUTPORT enInputPortType; 686 MS_U16 usBstatus; 687 } stHDCP_SET_BSTATUS, *pstHDCP_SET_BSTATUS; 688 689 typedef struct 690 { 691 E_MUX_INPUTPORT enInputPortType; 692 MS_BOOL bHDMIMode; 693 } stHDCP_SET_HDMI_MODE, *pstHDCP_SET_HDMI_MODE; 694 695 typedef struct 696 { 697 E_MUX_INPUTPORT enInputPortType; 698 MS_U8 ucRetIntStatus; 699 } stHDCP_GET_INTERRUPT_STATUS, *pstHDCP_GET_INTERRUPT_STATUS; 700 701 typedef struct DLL_PACKED 702 { 703 E_MUX_INPUTPORT enInputPortType; 704 MS_U8* pucKSV; 705 MS_U32 ulLen; 706 } stHDCP_WRITE_KSV_LIST, *pstHDCP_WRITE_KSV_LIST; 707 708 typedef struct DLL_PACKED 709 { 710 E_MUX_INPUTPORT enInputPortType; 711 MS_U8* pucVPrime; 712 } stHDCP_SET_VPRIME, *pstHDCP_SET_VPRIME; 713 /************************ HDCP Repeater ************************/ 714 715 #ifdef __cplusplus 716 } 717 #endif 718 719 #endif //_XC_HDMI_IF_H_ 720