xref: /utopia/UTPA2-700.0.x/modules/hdmi/api/hdmitx/HDMITX_private.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 
78 #ifndef _API_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