xref: /utopia/UTPA2-700.0.x/mxlib/include/drvXC_HDMI_if_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 _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