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 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94
95 ////////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// file apiHDMITx_v2.c
98 /// @brief Demux 1.0 API wrapper for Demux 2.0
99 /// @author MStar Semiconductor,Inc.
100 ////////////////////////////////////////////////////////////////////////////////////////////////////
101
102 #include "MsTypes.h"
103 #include "MsCommon.h"
104 #ifndef MSOS_TYPE_LINUX_KERNEL
105 #include <stdio.h>
106 #include <string.h>
107 #endif
108 #include "utopia_dapi.h"
109 #include "apiHDMITx.h"
110 #include "drvHDMITx.h"
111 #include "HDMITX_private.h"
112 #include "apiHDMITx_v2.h"
113 #include "utopia.h"
114
115
116 /*********************************************************************/
117 /* */
118 /* Defines */
119 /* */
120 /*********************************************************************/
121 #define EN_HDMITX_V2_DBG (0)
122
123 #if (EN_HDMITX_V2_DBG == 1)
124 #define DBG_HDMITX_V2(_f) _f
125 #else
126 #define DBG_HDMITX_V2(_f)
127 #endif
128
129 void* pModuleHDMITX = NULL;
130
HDMITXRegisterToUtopia(FUtopiaOpen ModuleType)131 void HDMITXRegisterToUtopia(FUtopiaOpen ModuleType)
132 {
133 // 1. deal with module
134 printf("HDMITxRegisterToUtopia..................\r\n");
135 UtopiaModuleCreate(MODULE_HDMITX, 0, &pModuleHDMITX);
136 UtopiaModuleRegister(pModuleHDMITX);
137
138 // register func for module, after register here, then ap call UtopiaOpen/UtopiaIoctl/UtopiaClose can call to these registered standard func
139 UtopiaModuleSetupFunctionPtr(pModuleHDMITX,
140 (FUtopiaOpen)HDMITXOpen,
141 (FUtopiaClose)HDMITXClose,
142 (FUtopiaIOctl)HDMITXIoctl);
143
144 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
145 UtopiaModuleRegisterMdbNode("HDMITX", (FUtopiaMdbIoctl)HDMITXMdbIoctl);
146 #endif
147
148 // 2. deal with resource
149 void* psResource = NULL;
150
151 UtopiaModuleAddResourceStart(pModuleHDMITX, E_HDMITX_POOL_ID_INTERNAL_0);
152 UtopiaResourceCreate("HDMITX", sizeof(HDMITX_RESOURCE_PRIVATE), &psResource);
153 UtopiaResourceRegister(pModuleHDMITX, psResource, E_HDMITX_POOL_ID_INTERNAL_0);
154 UtopiaModuleAddResourceEnd(pModuleHDMITX, E_HDMITX_POOL_ID_INTERNAL_0);
155 DBG_HDMITX_V2(printf("%s(): end\n", __FUNCTION__));
156
157 }
158
HDMITXOpen(void ** ppInstance,const void * const pAttribute)159 MS_U32 HDMITXOpen(void** ppInstance, const void* const pAttribute)
160 {
161 HDMITX_INSTANCE_PRIVATE* psHDMITXInstPri = NULL;
162 DBG_HDMITX_V2(printf("%s(): start...\n", __FUNCTION__));
163
164 //Create instance
165 UtopiaInstanceCreate(sizeof(HDMITX_INSTANCE_PRIVATE), ppInstance);
166 UtopiaInstanceGetPrivate(*ppInstance, (void**)&psHDMITXInstPri);
167
168 #ifdef UTOPIA_20
169 psHDMITXInstPri->fpHDMITX_INIT = MApi_HDMITx_Init_U2;
170 psHDMITXInstPri->fpHDMITX_EXIT = MApi_HDMITx_Exit_U2;
171 psHDMITXInstPri->fpHDMITX_TUNRONOFF = MApi_HDMITx_TurnOnOff_U2;
172 psHDMITXInstPri->fpHDMITX_ENABLEPACKETGEN = MApi_HDMITx_EnablePacketGen_U2;
173 psHDMITXInstPri->fpHDMITX_SETHDMITXMODE = MApi_HDMITx_SetHDMITxMode_U2;
174 psHDMITXInstPri->fpHDMITX_SETHDMITXMODE_CD = MApi_HDMITx_SetHDMITxMode_CD_U2;
175 psHDMITXInstPri->fpHDMITX_SETTMDSONOFF = MApi_HDMITx_SetTMDSOnOff_U2;
176 psHDMITXInstPri->fpHDMITX_DISABLETMDSCTRL = MApi_HDMITx_DisableTMDSCtrl_U2;
177 psHDMITXInstPri->fpHDMITX_SETRBCHANNELSWAP = MApi_HDMITx_SetRBChannelSwap_U2;
178 psHDMITXInstPri->fpHDMITX_EXHIBIT = MApi_HDMITx_Exhibit_U2;
179
180 psHDMITXInstPri->fpHDMITX_GETRXSTATUS = MApi_HDMITx_GetRxStatus_U2;
181 psHDMITXInstPri->fpHDMITX_GETRXDCINFOFROMEDID = MApi_HDMITx_GetRxDCInfoFromEDID_U2;
182 psHDMITXInstPri->fpHDMITX_GETRXVIDEOFORMATFROMEDID = MApi_HDMITx_GetRxVideoFormatFromEDID_U2;
183 psHDMITXInstPri->fpHDMITX_GETVICLISTFROMEDID = MApi_HDMITx_GetVICListFromEDID_U2;
184 psHDMITXInstPri->fpHDMITX_GETCOLORFORMATFROMEDID = MApi_HDMITx_GetColorFormatFromEDID_U2;
185 psHDMITXInstPri->fpHDMITX_GETDATABLOCKLENGTHFROMEDID = MApi_HDMITx_GetDataBlockLengthFromEDID_U2;
186 psHDMITXInstPri->fpHDMITX_GETRXAUDIOFORMATFROMEDID = MApi_HDMITx_GetRxAudioFormatFromEDID_U2;
187 psHDMITXInstPri->fpHDMITX_EDID_HDMISUPPORT = MApi_HDMITx_EDID_HDMISupport_U2;
188 psHDMITXInstPri->fpHDMITX_GETRXIDMANUFACTURERNAME = MApi_HDMITx_GetRxIDManufacturerName_U2;
189 psHDMITXInstPri->fpHDMITX_GETEDIDDATA = MApi_HDMITx_GetEDIDData_U2;
190 psHDMITXInstPri->fpHDMITX_GETRX3DSTRUCTUREFROMEDID = MApi_HDMITx_GetRx3DStructureFromEDID_U2;
191 psHDMITXInstPri->fpHDMITX_PKT_USER_DEFINE_CLEAR = MApi_HDMITx_PKT_User_Define_Clear_U2;
192
193 psHDMITXInstPri->fpHDMITX_PKT_USER_DEFINE = MApi_HDMITx_PKT_User_Define_U2;
194 psHDMITXInstPri->fpHDMITX_PKT_CONTENT_DEFINE = MApi_HDMITx_PKT_Content_Define_U2;
195 psHDMITXInstPri->fpHDMITX_SETVIDEOONOFF = MApi_HDMITx_SetVideoOnOff_U2;
196 psHDMITXInstPri->fpHDMITX_SETCOLORFORMAT = MApi_HDMITx_SetColorFormat_U2;
197 psHDMITXInstPri->fpHDMITX_SET_VS_INFOFRAME = MApi_HDMITx_Set_VS_InfoFrame_U2;
198 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTTIMING = MApi_HDMITx_SetVideoOutputTiming_U2;
199 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTASEPECTRATIO = MApi_HDMITx_SetVideoOutputAsepctRatio_U2;
200 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD = MApi_HDMITx_SetVideoOutputOverscan_AFD_U2;
201 psHDMITXInstPri->fpHDMITX_SETAUDIOONOFF = MApi_HDMITx_SetAudioOnOff_U2;
202 psHDMITXInstPri->fpHDMITX_SETAUDIOFREQUENCY = MApi_HDMITx_SetAudioFrequency_U2;
203
204 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD_II = MApi_HDMITx_SetVideoOutputOverscan_AFD_II_U02;
205 psHDMITXInstPri->fpHDMITX_SETAUDIOCONFIGURATION = MApi_HDMITx_SetAudioConfiguration_U2;
206 psHDMITXInstPri->fpHDMITX_SETAUDIOSOURCEFORMAT = MApi_HDMITx_SetAudioSourceFormat_U2;
207 psHDMITXInstPri->fpHDMITX_SETAVIINFOCOLORIMETRY = MApi_HDMITx_SetAVIInfoExtColorimetry_U2;
208 psHDMITXInstPri->fpHDMITX_GETAUDIOCTS = MApi_HDMITx_GetAudioCTS_U2;
209 psHDMITXInstPri->fpHDMITX_MUTEAUDIOFIFO = MApi_HDMITx_MuteAudioFIFO_U2;
210 psHDMITXInstPri->fpHDMITX_GETHDCPKEY = MApi_HDMITx_GetHdcpKey_U2;
211 psHDMITXInstPri->fpHDMITX_GETBKSV = MApi_HDMITx_GetBksv_U2;
212 psHDMITXInstPri->fpHDMITX_GETAKSV = MApi_HDMITx_GetAksv_U2;
213 psHDMITXInstPri->fpHDMITX_SETHDCPONOFF = MApi_HDMITx_SetHDCPOnOff_U2;
214 psHDMITXInstPri->fpHDMITX_SETAVMUTE = MApi_HDMITx_SetAVMUTE_U2;
215
216 psHDMITXInstPri->fpHDMITX_GETAVMUTESTATUS = MApi_HDMITx_GetAVMUTEStatus_U2;
217 psHDMITXInstPri->fpHDMITX_HDCP_REVOCATIONKEY_LIST = MApi_HDMITx_HDCP_RevocationKey_List_U2;
218 psHDMITXInstPri->fpHDMITX_HDCP_REVOCATIONKEY_CHECK = MApi_HDMITx_HDCP_RevocationKey_Check_U2;
219 psHDMITXInstPri->fpHDMITX_HDCP_ISSRMSIGNATUREVALID = MApi_HDMITx_HDCP_IsSRMSignatureValid_U2;
220 psHDMITXInstPri->fpHDMITX_GETHDCPSTATUS = MApi_HDMITx_GetHDCPStatus_U2;
221 psHDMITXInstPri->fpHDMITX_HDCP_STARTAUTH = MApi_HDMITx_HDCP_StartAuth_U2;
222 psHDMITXInstPri->fpHDMITX_GETINTHDCPSTATUS = MApi_HDMITx_GetINTHDCPStatus_U2;
223 psHDMITXInstPri->fpHDMITX_GETHDCP_PRESTATUS = MApi_HDMITx_GetHDCP_PreStatus_U2;
224 psHDMITXInstPri->fpHDMITX_UNHDCPRXCONTROL = MApi_HDMITx_UnHDCPRxControl_U2;
225 psHDMITXInstPri->fpHDMITX_HDCPRXFAILCONTROL = MApi_HDMITx_HDCPRxFailControl_U2;
226
227 psHDMITXInstPri->fpHDMITX_GETLIBVER = MApi_HDMITx_GetLibVer_U2;
228 psHDMITXInstPri->fpHDMITX_GETINFO = MApi_HDMITx_GetInfo_U2;
229 psHDMITXInstPri->fpHDMITX_GETSTATUS = MApi_HDMITx_GetStatus_U2;
230 psHDMITXInstPri->fpHDMITX_SETDBGLEVEL = MApi_HDMITx_SetDbgLevel_U2;
231 psHDMITXInstPri->fpHDMITX_SETHPDGPIOPIN = MApi_HDMITx_SetHPDGpioPin_U2;
232 psHDMITXInstPri->fpHDMITX_ANALOGTUNING = MApi_HDMITx_AnalogTuning_U2;
233 psHDMITXInstPri->fpHDMITX_FORCEHDMIOUTPUTMODE = MApi_HDMITx_ForceHDMIOutputMode_U2;
234 psHDMITXInstPri->fpHDMITX_FORCEHDMIOUTPUTCOLORFORMAT = MApi_HDMITx_ForceHDMIOutputColorFormat_U2;
235 psHDMITXInstPri->fpHDMITX_DISABLEREGWRITE = MApi_HDMITx_DisableRegWrite_U2;
236 psHDMITXInstPri->fpHDMITX_GETEDIDPHYADR = MApi_HDMITx_GetEDIDPhyAdr_U2;
237
238 psHDMITXInstPri->fpHDMITX_SETCECONOFF = MApi_HDMITx_SetCECOnOff_U2;
239 psHDMITXInstPri->fpHDMITX_GETCECSTATUS = MApi_HDMITx_GetCECStatus_U2;
240 psHDMITXInstPri->fpHDMITX_EDIDCHECKING = MApi_HDMITx_EdidChecking_U2;
241 psHDMITXInstPri->fpHDMITX_RXBYPASS_MODE = MApi_HDMITx_RxBypass_Mode_U2;
242 psHDMITXInstPri->fpHDMITX_DISABLE_RXBYPASS = MApi_HDMITx_Disable_RxBypass_U2;
243 psHDMITXInstPri->fpHDMITX_SETAKSV2R0INTERVAL = MApi_HDMITx_SetAksv2R0Interval_U2;
244 psHDMITXInstPri->fpHDMITX_ISRXVALID = MApi_HDMITx_IsHDCPRxValid_U2;
245 psHDMITXInstPri->fpHDMITX_GETCHIPCAPS = MApi_HDMITx_GetChipCaps_U2;
246 psHDMITXInstPri->fpHDMITX_SETPOWERSTATE = MApi_HDMITx_SetPowerState_U2;
247 psHDMITXInstPri->fpHDMITX_GETEDIDDATABLOCK = MApi_HDMITx_GetEdidDataBlocks_U2;
248 psHDMITXInstPri->fpHDMITX_GETKSVLIST = MApi_HDMITx_GetKSVList_U2;
249 psHDMITXInstPri->fpHDMITX_HDCP2ACCESSX74OFFSET = MApi_HDMITx_HDCP2AccessX74_U2;
250 psHDMITXInstPri->fpHDMITx_HDCP2TxInit = MApi_HDMITx_HDCP2TxInit_U2;
251 psHDMITXInstPri->fpHDMITx_HDCP2TxEnableEncrypt = MApi_HDMITx_HDCP2TxEnableEncrypt_U2;
252 psHDMITXInstPri->fpHDMITx_HDCP2TxFillCipherKey = MApi_HDMITx_HDCP2TxFillCipherKey_U2;
253 psHDMITXInstPri->fpHDMITx_GeneralCtrl = MApi_HDMITx_GeneralCtrl_U2;
254 psHDMITXInstPri->fpHDMITx_Cmd_ColorAndRangeTransform = MApi_HDMITx_ColorandRange_Transform_U2;
255 psHDMITXInstPri->fpHDMITx_Cmd_SSCEnable = MApi_HDMITx_SSC_Enable_U2;
256 psHDMITXInstPri->fpHDMITx_Cmd_Set_Colorimetry = MApi_HDMITx_SetAVIInfoColorimetry_U2;
257 psHDMITXInstPri->fpHDMITx_Cmd_Get_Full_Rx_Status = MApi_HDMITx_GetFullRxStatus_U2;
258 psHDMITXInstPri->fpHDMITx_Cmd_Timing_Capability_Check = MApi_HDMITx_CheckLegalTiming_U2;
259 psHDMITXInstPri->fpHDMITx_Cmd_Get_TMDS_Status = MApi_HDMITx_GetTMDSStatus_U2;
260 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTTIMINGBYCUSTOMER = MApi_HDMITx_SetVideoOutputTimingByCustomer_U2;
261 #if defined(VANCLEEF_MCP) || defined(RAPTORS_MCP)
262 psHDMITXInstPri->fpHDMITX_VANCLEEF_LOADHDCPKEY = MApi_HDMITx_Vancleef_LoadHDCPKey_U2;
263 #endif
264 #endif
265 return UTOPIA_STATUS_SUCCESS;
266 }
267
268
269 #ifdef CONFIG_UTOPIA_PROC_DBG_SUPPORT
270 //**************************************************************************
271 // [Function Name]:
272 // HDMITXMdbIoctl()
273 // [Description]
274 //
275 // [Arguments]:
HDMITXIoctl(void * pInstance,MS_U32 u32Cmd,void * pArgs)276 //
277 // [Return]:
278 //
279 //**************************************************************************
280 MS_U32 HDMITXMdbIoctl(MS_U32 cmd, const void* const pArgs)
281 {
282 void* pInstance = NULL;
283 MS_U32 ulReturnValue = UTOPIA_STATUS_SUCCESS;
284 MDBCMD_CMDLINE_PARAMETER *paraCmdLine;
285 MDBCMD_GETINFO_PARAMETER *paraGetInfo;
286
287 pInstance = UtopiaModuleGetLocalInstantList(MODULE_HDMITX, pInstance);
288
289 switch(cmd)
290 {
291 case MDBCMD_CMDLINE:
292 paraCmdLine = (MDBCMD_CMDLINE_PARAMETER *)pArgs;
293 MdbPrint(paraCmdLine->u64ReqHdl,"u32CmdSize: %d\n", paraCmdLine->u32CmdSize);
294 MDrv_HDMITx_MDCMDEchoCommand(pInstance, paraCmdLine->u64ReqHdl, paraCmdLine->pcCmdLine);
295 paraCmdLine->result = MDBRESULT_SUCCESS_FIN;
296 break;
297
298 case MDBCMD_GETINFO:
299 paraGetInfo = (MDBCMD_GETINFO_PARAMETER *)pArgs;
300 MDrv_HDMITx_MDCMDGetInfo(pInstance, paraGetInfo->u64ReqHdl);
301 paraGetInfo->result = MDBRESULT_SUCCESS_FIN;
302 break;
303
304 default:
305 paraGetInfo = (MDBCMD_GETINFO_PARAMETER *)pArgs;
306 MdbPrint(paraGetInfo->u64ReqHdl,"unknown cmd\n", __LINE__);
307 break;
308 };
309
310 return ulReturnValue;
311 }
312 #endif
313
314 MS_U32 HDMITXIoctl(void* pInstance, MS_U32 u32Cmd, void* pArgs)
315 {
316 #ifdef UTOPIA_20
317 void* pModule = NULL;
318 HDMITX_INSTANCE_PRIVATE* psHDMITXInstPri = NULL;
319 UtopiaInstanceGetPrivate(pInstance, (void*)&psHDMITXInstPri);
320 UtopiaInstanceGetModule(pInstance, &pModule);
321 //printf("[%s,%5d] u32Cmd type = %ld\n",__FUNCTION__,__LINE__,u32Cmd);
322
323 switch(u32Cmd)
324 {
325
326 case E_HDMITX_CMD_INIT:
327 {
328 pstHDMITx_Init pHDMITXArgs = (pstHDMITx_Init)pArgs;
329 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_INIT(pInstance);
330
331 return UTOPIA_STATUS_SUCCESS;
332 break;
333 }
334
335 case E_HDMITX_CMD_EXIT:
336 {
337 pstHDMITx_Exit pHDMITXArgs = (pstHDMITx_Exit)pArgs;
338 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_EXIT(pInstance);
339
340 return UTOPIA_STATUS_SUCCESS;
341 break;
342 }
343
344
345 case E_HDMITX_CMD_TURNONOFF:
346 {
347 pstHDMITx_TurnOnOff pHDMITXArgs = (pstHDMITx_TurnOnOff)pArgs;
348 psHDMITXInstPri->fpHDMITX_TUNRONOFF(pInstance,pHDMITXArgs->state);
349
350 return UTOPIA_STATUS_SUCCESS;
351 break;
352 }
353
354 case E_HDMITX_CMD_ENABLEPACKETGEN:
355 {
356 pstHDMITx_EnablePacketGen pHDMITXArgs = (pstHDMITx_EnablePacketGen)pArgs;
357 psHDMITXInstPri->fpHDMITX_ENABLEPACKETGEN(pInstance,pHDMITXArgs->bflag);
358
359 return UTOPIA_STATUS_SUCCESS;
360 break;
361 }
362
363 case E_HDMITX_CMD_SETHDMITXMODE:
364 {
365 pstHDMITx_SetHDMITxMode pHDMITXArgs = (pstHDMITx_SetHDMITxMode)pArgs;
366 psHDMITXInstPri->fpHDMITX_SETHDMITXMODE(pInstance, pHDMITXArgs->mode);
367
368 return UTOPIA_STATUS_SUCCESS;
369 break;
370 }
371
372 case E_HDMITX_CMD_SETHDMITXMODE_CD:
373 {
374 pstHDMITx_SetHDMITxMode_CD pHDMITXArgs = (pstHDMITx_SetHDMITxMode_CD)pArgs;
375 psHDMITXInstPri->fpHDMITX_SETHDMITXMODE_CD(pInstance, pHDMITXArgs->mode, pHDMITXArgs->val);
376
377 return UTOPIA_STATUS_SUCCESS;
378 break;
379 }
380
381 case E_HDMITX_CMD_SETTMDSONOFF:
382 {
383 pstHDMITx_SetTMDSOnOff pHDMITXArgs = (pstHDMITx_SetTMDSOnOff)pArgs;
384 psHDMITXInstPri->fpHDMITX_SETTMDSONOFF(pInstance, pHDMITXArgs->state);
385
386 return UTOPIA_STATUS_SUCCESS;
387 break;
388 }
389
390 case E_HDMITX_CMD_DISABLETMDSCTRL:
391 {
392 pstHDMITx_DisableTMDSCtrl pHDMITXArgs = (pstHDMITx_DisableTMDSCtrl)pArgs;
393 psHDMITXInstPri->fpHDMITX_DISABLETMDSCTRL(pInstance, pHDMITXArgs->bFlag);
394
395 return UTOPIA_STATUS_SUCCESS;
396 break;
397 }
398
399 case E_HDMITX_CMD_SETRBCHANNELSWAP:
400 {
401 pstHDMITx_SetRBChannelSwap pHDMITXArgs = (pstHDMITx_SetRBChannelSwap)pArgs;
402 psHDMITXInstPri->fpHDMITX_SETRBCHANNELSWAP(pInstance, pHDMITXArgs->state);
403
404 return UTOPIA_STATUS_SUCCESS;
405 break;
406 }
407
408 case E_HDMITX_CMD_EXHIBIT:
409 {
410 psHDMITXInstPri->fpHDMITX_EXHIBIT(pInstance);
411
412 return UTOPIA_STATUS_SUCCESS;
413 break;
414 }
415
416 case E_HDMITX_CMD_GETRXSTATUS:
417 {
418 pstHDMITx_GetRxStatus pHDMITXArgs = (pstHDMITx_GetRxStatus)pArgs;
419 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRXSTATUS();
420
421 return UTOPIA_STATUS_SUCCESS;
422 break;
423 }
424
425 case E_HDMITX_CMD_GETRXDCINFOFROMEDID:
426 {
427 pstHDMITx_GetRxDCInfoFromEDID pHDMITXArgs = (pstHDMITx_GetRxDCInfoFromEDID)pArgs;
428 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRXDCINFOFROMEDID(pInstance, pHDMITXArgs->val);
429
430 return UTOPIA_STATUS_SUCCESS;
431 break;
432 }
433
434 case E_HDMITX_CMD_GETRXVIDEODORMATFROMEDID:
435 {
436 pstHDMITx_GetRxVideoFormatFromEDID pHDMITXArgs = (pstHDMITx_GetRxVideoFormatFromEDID)pArgs;
437 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRXVIDEOFORMATFROMEDID(pInstance, pHDMITXArgs->pu8Buffer, pHDMITXArgs->u8BufSize);
438
439 return UTOPIA_STATUS_SUCCESS;
440 break;
441 }
442
443 case E_HDMITX_CMD_GETVICLISTFROMEDID:
444 {
445 pstHDMITx_GetVICListFromEDID pHDMITXArgs = (pstHDMITx_GetVICListFromEDID)pArgs;
446 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETVICLISTFROMEDID(pInstance, pHDMITXArgs->pu8Buffer, pHDMITXArgs->u8BufSize);
447
448 return UTOPIA_STATUS_SUCCESS;
449 break;
450 }
451
452 case E_HDMITX_CMD_GETDATABLOCKLENGTHFROMEDID:
453 {
454 pstHDMITx_GetDataBlockLengthFromEDID pHDMITXArgs = (pstHDMITx_GetDataBlockLengthFromEDID)pArgs;
455 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETDATABLOCKLENGTHFROMEDID(pInstance, pHDMITXArgs->pu8Length, pHDMITXArgs->u8TagCode);
456
457 return UTOPIA_STATUS_SUCCESS;
458 break;
459 }
460
461 case E_HDMITX_CMD_GETCOLORFORMATFROMEDID:
462 {
463 pstHDMITx_GetColorFormatFromEDID pHDMITXArgs = (pstHDMITx_GetColorFormatFromEDID)pArgs;
464 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETCOLORFORMATFROMEDID(pInstance, pHDMITXArgs->timing, pHDMITXArgs->pColorFmt);
465
466 break;
467 }
468
469 case E_HDMITX_CMD_GETRXAUDIOFORMATFROMEDID:
470 {
471 pstHDMITx_GetRxAudioFormatFromEDID pHDMITXArgs = (pstHDMITx_GetRxAudioFormatFromEDID)pArgs;
472 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRXAUDIOFORMATFROMEDID(pInstance, pHDMITXArgs->pu8Buffer, pHDMITXArgs->u8BufSize);
473
474 return UTOPIA_STATUS_SUCCESS;
475 break;
476 }
477
478 case E_HDMITX_CMD_EDID_HDMISUPPORT:
479 {
480 pstHDMITx_EDID_HDMISupport pHDMITXArgs = (pstHDMITx_EDID_HDMISupport)pArgs;
481 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_EDID_HDMISUPPORT(pInstance, pHDMITXArgs->HDMI_Support);
482
483 return UTOPIA_STATUS_SUCCESS;
484 break;
485 }
486
487 case E_HDMITX_CMD_GETRXIDMANUFACTURERNAME:
488 {
489 pstHDMITx_GetRxIDManufacturerName pHDMITXArgs = (pstHDMITx_GetRxIDManufacturerName)pArgs;
490 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRXIDMANUFACTURERNAME(pInstance, pHDMITXArgs->pu8Buffer);
491
492 return UTOPIA_STATUS_SUCCESS;
493 break;
494 }
495
496 case E_HDMITX_CMD_GETEDIDDATA:
497 {
498 pstHDMITx_GetEDIDData pHDMITXArgs = (pstHDMITx_GetEDIDData)pArgs;
499 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETEDIDDATA(pInstance, pHDMITXArgs->pu8Buffer, pHDMITXArgs->BlockIdx);
500
501 return UTOPIA_STATUS_SUCCESS;
502 break;
503 }
504
505 case E_HDMITX_CMD_GETRX3DSTRUCTUREFROMEDID:
506 {
507 pstHDMITx_GetRx3DStructureFromEDID pHDMITXArgs = (pstHDMITx_GetRx3DStructureFromEDID)pArgs;
508 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETRX3DSTRUCTUREFROMEDID(pInstance, pHDMITXArgs->timing, pHDMITXArgs->p3DStructure);
509
510 return UTOPIA_STATUS_SUCCESS;
511 break;
512 }
513
514 case E_HDMITX_CMD_PKT_USER_DEFINE_CLEAR:
515 {
516 psHDMITXInstPri->fpHDMITX_PKT_USER_DEFINE_CLEAR(pInstance);
517
518 return UTOPIA_STATUS_SUCCESS;
519 break;
520 }
521
522 case E_HDMITX_CMD_PKT_USER_DEFINE:
523 {
524 pstHDMITx_PKT_User_Define pHDMITXArgs = (pstHDMITx_PKT_User_Define)pArgs;
525 psHDMITXInstPri->fpHDMITX_PKT_USER_DEFINE(pInstance, pHDMITXArgs->packet_type, pHDMITXArgs->def_flag, pHDMITXArgs->def_process, pHDMITXArgs->def_fcnt);
526
527 return UTOPIA_STATUS_SUCCESS;
528 break;
529 }
530
531 case E_HDMITX_CMD_PKT_CONTENT_DEFINE:
532 {
533 pstHDMITx_PKT_Content_Define pHDMITXArgs = (pstHDMITx_PKT_Content_Define)pArgs;
534 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_PKT_CONTENT_DEFINE(pInstance, pHDMITXArgs->packet_type, pHDMITXArgs->data, pHDMITXArgs->length);
535
536 return UTOPIA_STATUS_SUCCESS;
537 break;
538 }
539
540 case E_HDMITX_CMD_SETVIDEOONOFF:
541 {
542 pstHDMITx_SetVideoOnOff pHDMITXArgs = (pstHDMITx_SetVideoOnOff)pArgs;
543 psHDMITXInstPri->fpHDMITX_SETVIDEOONOFF (pInstance, pHDMITXArgs->state);
544
545 return UTOPIA_STATUS_SUCCESS;
546 break;
547 }
548
549 case E_HDMITX_CMD_SETCOLORFORMAT:
550 {
551 pstHDMITx_SetColorFormat pHDMITXArgs = (pstHDMITx_SetColorFormat)pArgs;
552 psHDMITXInstPri->fpHDMITX_SETCOLORFORMAT (pInstance, pHDMITXArgs->in_color, pHDMITXArgs->out_color);
553
554 return UTOPIA_STATUS_SUCCESS;
555 break;
556 }
557
558 case E_HDMITX_CMD_SET_VS_INFOFRAME:
559 {
560 pstHDMITx_Set_VS_InfoFrame pHDMITXArgs = (pstHDMITx_Set_VS_InfoFrame)pArgs;
561 psHDMITXInstPri->fpHDMITX_SET_VS_INFOFRAME(pInstance, pHDMITXArgs->vs_format, pHDMITXArgs->vs_3d, pHDMITXArgs->vs_vic);
562
563 return UTOPIA_STATUS_SUCCESS;
564 break;
565 }
566
567 case E_HDMITX_CMD_SETVIDEOOUTPUTTIMING:
568 {
569 pstHDMITx_SetVideoOutputTiming pHDMITXArgs = (pstHDMITx_SetVideoOutputTiming)pArgs;
570 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTTIMING(pInstance, pHDMITXArgs->mode);
571
572 return UTOPIA_STATUS_SUCCESS;
573 break;
574 }
575
576 case E_HDMITX_CMD_SETVIDEOOUTPUTASEPCTRATIO:
577 {
578 pstHDMITx_SetVideoOutputAsepctRatio pHDMITXArgs = (pstHDMITx_SetVideoOutputAsepctRatio)pArgs;
579 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTASEPECTRATIO(pInstance, pHDMITXArgs->out_ar);
580
581 return UTOPIA_STATUS_SUCCESS;
582 break;
583 }
584
585 case E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD:
586 {
587 pstHDMITx_SetVideoOutputOverscan_AFD pHDMITXArgs = (pstHDMITx_SetVideoOutputOverscan_AFD)pArgs;
588 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD(pInstance, pHDMITXArgs->bflag, pHDMITXArgs->out_scaninfo, pHDMITXArgs->out_afd);
589
590 return UTOPIA_STATUS_SUCCESS;
591 break;
592 }
593
594 case E_HDMITX_CMD_SETAUDIOONOFF:
595 {
596 pstHDMITx_SetAudioOnOff pHDMITXArgs = (pstHDMITx_SetAudioOnOff)pArgs;
597 psHDMITXInstPri->fpHDMITX_SETAUDIOONOFF(pInstance, pHDMITXArgs->state);
598
599 return UTOPIA_STATUS_SUCCESS;
600 break;
601 }
602
603 case E_HDMITX_CMD_SETAUDIOFREQUENCY:
604 {
605 pstHDMITx_SetAudioFrequency pHDMITXArgs = (pstHDMITx_SetAudioFrequency)pArgs;
606 psHDMITXInstPri->fpHDMITX_SETAUDIOFREQUENCY(pInstance, pHDMITXArgs->freq);
607
608 return UTOPIA_STATUS_SUCCESS;
609 break;
610 }
611
612 case E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD_II:
613 {
614 pstHDMITx_SetVideoOutputOverscan_AFD_II pHDMITXArgs = (pstHDMITx_SetVideoOutputOverscan_AFD_II)pArgs;
615 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTOVERSCAN_AFD_II(pInstance, pHDMITXArgs->bflag, pHDMITXArgs->out_scaninfo, pHDMITXArgs->out_afd, pHDMITXArgs->A0);
616
617 return UTOPIA_STATUS_SUCCESS;
618 break;
619 }
620
621 case E_HDMITX_CMD_SETAUDIOCONFIGURATION:
622 {
623 pstHDMITx_SetAudioConfiguration pHDMITXArgs = (pstHDMITx_SetAudioConfiguration)pArgs;
624 psHDMITXInstPri->fpHDMITX_SETAUDIOCONFIGURATION(pInstance, pHDMITXArgs->freq, pHDMITXArgs->ch, pHDMITXArgs->type);
625
626 return UTOPIA_STATUS_SUCCESS;
627 break;
628 }
629
630 case E_HDMITX_CMD_SETAUDIOSOURCEFORMAT:
631 {
632 pstHDMITx_SetAudioSourceFormat pHDMITXArgs = (pstHDMITx_SetAudioSourceFormat)pArgs;
633 psHDMITXInstPri->fpHDMITX_SETAUDIOSOURCEFORMAT(pInstance, pHDMITXArgs->fmt);
634
635 return UTOPIA_STATUS_SUCCESS;
636 break;
637 }
638
639 case E_HDMITX_CMD_SETAVIINFOEXTCOLORIMETRY:
640 {
641 pstHDMITx_SetAVIInfoExtColorimetry pHDMITXArgs = (pstHDMITx_SetAVIInfoExtColorimetry)pArgs;
642 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_SETAVIINFOCOLORIMETRY(pInstance, pHDMITXArgs->enExtColorimetry, pHDMITXArgs->enYccQuantRange);
643
644 return UTOPIA_STATUS_SUCCESS;
645 break;
646 }
647
648 case E_HDMITX_CMD_GETAUDIOCTS:
649 {
650 pstHDMITx_GetAudioCTS pHDMITXArgs = (pstHDMITx_GetAudioCTS)pArgs;
651 pHDMITXArgs->u32Return = psHDMITXInstPri->fpHDMITX_GETAUDIOCTS(pInstance);
652
653 return UTOPIA_STATUS_SUCCESS;
654 break;
655 }
656
657 case E_HDMITX_CMD_MUTEAUDIOFIFO:
658 {
659 pstHDMITx_MuteAudioFIFO pHDMITXArgs = (pstHDMITx_MuteAudioFIFO)pArgs;
660 psHDMITXInstPri->fpHDMITX_MUTEAUDIOFIFO(pInstance, pHDMITXArgs->bflag);
661
662 return UTOPIA_STATUS_SUCCESS;
663 break;
664 }
665
666 case E_HDMITX_CMD_GETHDCPKEY:
667 {
668 pstHDMITx_GetHdcpKey pHDMITXArgs = (pstHDMITx_GetHdcpKey)pArgs;
669 psHDMITXInstPri->fpHDMITX_GETHDCPKEY(pInstance, pHDMITXArgs->useinternalkey, pHDMITXArgs->data);
670
671 return UTOPIA_STATUS_SUCCESS;
672 break;
673 }
674
675 case E_HDMITX_CMD_GETBKSV:
676 {
677 pstHDMITx_GetBksv pHDMITXArgs = (pstHDMITx_GetBksv)pArgs;
678 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETBKSV(pInstance, pHDMITXArgs->pdata);
679
680 return UTOPIA_STATUS_SUCCESS;
681 break;
682 }
683
684 case E_HDMITX_CMD_GETAKSV:
685 {
686 pstHDMITx_GetAksv pHDMITXArgs = (pstHDMITx_GetAksv)pArgs;
687 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETAKSV(pInstance, pHDMITXArgs->pdata);
688
689 return UTOPIA_STATUS_SUCCESS;
690 break;
691 }
692
693 case E_HDMITX_CMD_SETHDCPONOFF:
694 {
695 pstHDMITx_SetHDCPOnOff pHDMITXArgs = (pstHDMITx_SetHDCPOnOff)pArgs;
696 psHDMITXInstPri->fpHDMITX_SETHDCPONOFF(pInstance, pHDMITXArgs->state);
697
698 return UTOPIA_STATUS_SUCCESS;
699 break;
700 }
701
702 case E_HDMITX_CMD_SETAVMUTE:
703 {
704 pstHDMITx_SetAVMUTE pHDMITXArgs = (pstHDMITx_SetAVMUTE)pArgs;
705 psHDMITXInstPri->fpHDMITX_SETAVMUTE(pInstance, pHDMITXArgs->bflag);
706
707 return UTOPIA_STATUS_SUCCESS;
708 break;
709 }
710
711 case E_HDMITX_CMD_GETAVMUTESTATUS:
712 {
713 pstHDMITx_GetAVMUTEStatus pHDMITXArgs = (pstHDMITx_GetAVMUTEStatus)pArgs;
714 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETAVMUTESTATUS(pInstance);
715
716 return UTOPIA_STATUS_SUCCESS;
717 break;
718 }
719
720 case E_HDMITX_CMD_HDCP_REVOCATIONKEY_LIST:
721 {
722 pstHDMITx_HDCP_RevocationKey_List pHDMITXArgs = (pstHDMITx_HDCP_RevocationKey_List)pArgs;
723 psHDMITXInstPri->fpHDMITX_HDCP_REVOCATIONKEY_LIST(pInstance, pHDMITXArgs->data, pHDMITXArgs->size);
724
725 return UTOPIA_STATUS_SUCCESS;
726 break;
727 }
728
729 case E_HDMITX_CMD_HDCP_REVOCATIONKEY_CHECK:
730 {
731 pstHDMITx_HDCP_RevocationKey_Check pHDMITXArgs = (pstHDMITx_HDCP_RevocationKey_Check)pArgs;
732 pHDMITXArgs->stReturn = psHDMITXInstPri->fpHDMITX_HDCP_REVOCATIONKEY_CHECK(pInstance);
733
734 return UTOPIA_STATUS_SUCCESS;
735 break;
736 }
737
738 case E_HDMITX_CMD_HDCP_ISSRMSIGNATUREVALID:
739 {
740 pstHDMITx_HDCP_IsSRMSignatureValid pHDMITXArgs = (pstHDMITx_HDCP_IsSRMSignatureValid)pArgs;
741 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_HDCP_ISSRMSIGNATUREVALID(pInstance, pHDMITXArgs->data, pHDMITXArgs->size);
742
743 return UTOPIA_STATUS_SUCCESS;
744 break;
745 }
746
747 case E_HDMITX_CMD_GETHDCPSTATUS:
748 {
749 pstHDMITx_GetHDCPStatus pHDMITXArgs = (pstHDMITx_GetHDCPStatus)pArgs;
750 pHDMITXArgs->stReturn = psHDMITXInstPri->fpHDMITX_GETHDCPSTATUS(pInstance);
751
752 return UTOPIA_STATUS_SUCCESS;
753 break;
754 }
755
756 case E_HDMITX_CMD_HDCP_STARTAUTH:
757 {
758 pstHDMITx_HDCP_StartAuth pHDMITXArgs = (pstHDMITx_HDCP_StartAuth)pArgs;
759 psHDMITXInstPri->fpHDMITX_HDCP_STARTAUTH(pInstance, pHDMITXArgs->bFlag);
760
761 return UTOPIA_STATUS_SUCCESS;
762 break;
763 }
764
765
766 case E_HDMITX_CMD_GETINTHDCPSTATUS:
767 {
768 pstHDMITx_GetINTHDCPStatus pHDMITXArgs = (pstHDMITx_GetINTHDCPStatus)pArgs;
769 pHDMITXArgs->stReturn = psHDMITXInstPri->fpHDMITX_GETINTHDCPSTATUS(pInstance);
770
771 return UTOPIA_STATUS_SUCCESS;
772 break;
773 }
774
775 case E_HDMITX_CMD_GETHDCP_PRESTATUS:
776 {
777 pstHDMITx_GetHDCP_PreStatus pHDMITXArgs = (pstHDMITx_GetHDCP_PreStatus)pArgs;
778 pHDMITXArgs->stReturn = psHDMITXInstPri->fpHDMITX_GETHDCP_PRESTATUS(pInstance);
779
780 return UTOPIA_STATUS_SUCCESS;
781 break;
782 }
783
784 case E_HDMITX_CMD_UNHDCPRXCONTROL:
785 {
786 pstHDMITx_UnHDCPRxControl pHDMITXArgs = (pstHDMITx_UnHDCPRxControl)pArgs;
787 psHDMITXInstPri->fpHDMITX_UNHDCPRXCONTROL(pInstance, pHDMITXArgs->state);
788
789 return UTOPIA_STATUS_SUCCESS;
790 break;
791 }
792 case E_HDMITX_CMD_HDCPRXFAILCONTROL:
793 {
794 pstHDMITx_HDCPRxFailControl pHDMITXArgs = (pstHDMITx_HDCPRxFailControl)pArgs;
795 psHDMITXInstPri->fpHDMITX_HDCPRXFAILCONTROL(pInstance, pHDMITXArgs->state);
796
797 return UTOPIA_STATUS_SUCCESS;
798 break;
799 }
800
801 case E_HDMITX_CMD_GETLIBVER:
802 {
803 pstHDMITx_GetLibVer pHDMITXArgs = (pstHDMITx_GetLibVer)pArgs;
804 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETLIBVER(pInstance, pHDMITXArgs->ppVersion);
805
806 return UTOPIA_STATUS_SUCCESS;
807 break;
808 }
809
810 case E_HDMITX_CMD_GETINFO:
811 {
812 pstHDMITx_GetInfo pHDMITXArgs = (pstHDMITx_GetInfo)pArgs;
813 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETINFO(pInstance, pHDMITXArgs->pInfo);
814
815 return UTOPIA_STATUS_SUCCESS;
816 break;
817 }
818
819 case E_HDMITX_CMD_GETSTATUS:
820 {
821 pstHDMITx_GetStatus pHDMITXArgs = (pstHDMITx_GetStatus)pArgs;
822 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETSTATUS(pInstance, pHDMITXArgs->pStatus);
823
824 return UTOPIA_STATUS_SUCCESS;
825 break;
826 }
827
828 case E_HDMITX_CMD_SETDBGLEVEL:
829 {
830 pstHDMITx_SetDbgLevel pHDMITXArgs = (pstHDMITx_SetDbgLevel)pArgs;
831 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_SETDBGLEVEL(pHDMITXArgs->u16DbgSwitch);
832
833 return UTOPIA_STATUS_SUCCESS;
834 break;
835 }
836
837 case E_HDMITX_CMD_SETHPDGPIOPIN:
838 {
839 pstHDMITx_SetHPDGpioPin pHDMITXArgs = (pstHDMITx_SetHPDGpioPin)pArgs;
840 psHDMITXInstPri->fpHDMITX_SETHPDGPIOPIN(pInstance, pHDMITXArgs->u8pin);
841
842 return UTOPIA_STATUS_SUCCESS;
843 break;
844 }
845
846 case E_HDMITX_CMD_ANALOGTUNING:
847 {
848 pstHDMITx_AnalogTuning pHDMITXArgs = (pstHDMITx_AnalogTuning)pArgs;
849 psHDMITXInstPri->fpHDMITX_ANALOGTUNING(pInstance, pHDMITXArgs->pInfo);
850
851 return UTOPIA_STATUS_SUCCESS;
852 break;
853 }
854
855 case E_HDMITX_CMD_FORCEHDMIOUTPUTMODE:
856 {
857 pstHDMITx_ForceHDMIOutputMode pHDMITXArgs = (pstHDMITx_ForceHDMIOutputMode)pArgs;
858 psHDMITXInstPri->fpHDMITX_FORCEHDMIOUTPUTMODE(pInstance, pHDMITXArgs->bflag, pHDMITXArgs->output_mode);
859
860 return UTOPIA_STATUS_SUCCESS;
861 break;
862 }
863
864 case E_HDMITX_CMD_FORCEHDMIOUTPUTCOLORFORMAT:
865 {
866 pstHDMITx_ForceHDMIOutputColorFormat pHDMITXArgs = (pstHDMITx_ForceHDMIOutputColorFormat)pArgs;
867 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_FORCEHDMIOUTPUTCOLORFORMAT(pInstance, pHDMITXArgs->bflag, pHDMITXArgs->output_color);
868
869 return UTOPIA_STATUS_SUCCESS;
870 break;
871 }
872
873 case E_HDMITX_CMD_DISABLEREGWRITE:
874 {
875 pstHDMITx_DisableRegWrite pHDMITXArgs = (pstHDMITx_DisableRegWrite)pArgs;
876 psHDMITXInstPri->fpHDMITX_DISABLEREGWRITE(pInstance, pHDMITXArgs->bFlag);
877
878 return UTOPIA_STATUS_SUCCESS;
879 break;
880 }
881
882 case E_HDMITX_CMD_GETEDIDPHYADR:
883 {
884 pstHDMITx_GetEDIDPhyAdr pHDMITXArgs = (pstHDMITx_GetEDIDPhyAdr)pArgs;
885 psHDMITXInstPri->fpHDMITX_GETEDIDPHYADR(pInstance, pHDMITXArgs->pdata);
886
887 return UTOPIA_STATUS_SUCCESS;
888 break;
889 }
890
891 case E_HDMITX_CMD_SETCECONOFF:
892 {
893 pstHDMITx_SetCECOnOff pHDMITXArgs = (pstHDMITx_SetCECOnOff)pArgs;
894 psHDMITXInstPri->fpHDMITX_SETCECONOFF(pInstance, pHDMITXArgs->bflag);
895
896 return UTOPIA_STATUS_SUCCESS;
897 break;
898 }
899
900 case E_HDMITX_CMD_GETCECSTATUS:
901 {
902 pstHDMITx_GetCECStatus pHDMITXArgs = (pstHDMITx_GetCECStatus)pArgs;
903 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETCECSTATUS(pInstance);
904
905 return UTOPIA_STATUS_SUCCESS;
906 break;
907 }
908
909 case E_HDMITX_CMD_EDIDCHECKING:
910 {
911 pstHDMITx_EdidChecking pHDMITXArgs = (pstHDMITx_EdidChecking)pArgs;
912 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_EDIDCHECKING(pInstance);
913
914 return UTOPIA_STATUS_SUCCESS;
915 break;
916 }
917
918 case E_HDMITX_CMD_RXBYPASS_MODE:
919 {
920 pstHDMITx_RxBypass_Mode pHDMITXArgs = (pstHDMITx_RxBypass_Mode)pArgs;
921 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_RXBYPASS_MODE(pInstance, pHDMITXArgs->freq, pHDMITXArgs->bflag);
922
923 return UTOPIA_STATUS_SUCCESS;
924 break;
925 }
926
927 case E_HDMITX_CMD_DISABLE_RXBYPASS:
928 {
929 pstHDMITx_Disable_RxBypass pHDMITXArgs = (pstHDMITx_Disable_RxBypass)pArgs;
930 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_DISABLE_RXBYPASS(pInstance);
931
932 return UTOPIA_STATUS_SUCCESS;
933 break;
934 }
935
936 case E_HDMITX_CMD_SETAKSV2R0INTERVAL:
937 {
938 pstHDMITx_SetAksv2R0Interval pHDMITXArgs = (pstHDMITx_SetAksv2R0Interval)pArgs;
939 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_SETAKSV2R0INTERVAL(pInstance, pHDMITXArgs->u32Interval);
940
941 return UTOPIA_STATUS_SUCCESS;
942 break;
943 }
944
945 case E_HDMITX_CMD_ISRXVALID:
946 {
947 pstHDMITx_IsHDCPRxValid pHDMITXArgs = (pstHDMITx_IsHDCPRxValid)pArgs;
948 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_ISRXVALID(pInstance);
949
950 return UTOPIA_STATUS_SUCCESS;
951 break;
952 }
953
954 case E_HDMITX_CMD_GETCHIPCAPS:
955 {
956 pstHDMITx_GetChipCaps pHDMITXArgs = (pstHDMITx_GetChipCaps)pArgs;
957 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETCHIPCAPS(pInstance, pHDMITXArgs->eCapType, pHDMITXArgs->pRet, pHDMITXArgs->ret_size);
958
959 return UTOPIA_STATUS_SUCCESS;
960 break;
961 }
962
963 case E_HDMITX_CMD_SETPOWERSTATE:
964 {
965 pstHDMITx_SetPowerState pHDMITXArgs = (pstHDMITx_SetPowerState)pArgs;
966 pHDMITXArgs->u32Return = psHDMITXInstPri->fpHDMITX_SETPOWERSTATE(pInstance, pHDMITXArgs->u16PowerState);
967
968 return UTOPIA_STATUS_SUCCESS;
969 break;
970 }
971
972 case E_HDMITX_CMD_GETEDIDDATABLOCK:
973 {
974 pstHDMITx_GetEdidDataBlocks pHDMITXArgs = (pstHDMITx_GetEdidDataBlocks)pArgs;
975 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETEDIDDATABLOCK(pInstance, pHDMITXArgs->enTagCode, pHDMITXArgs->enExtTagCode, pHDMITXArgs->pu8Data, pHDMITXArgs->u32DataLen, pHDMITXArgs->pu32RealLen);
976
977 return UTOPIA_STATUS_SUCCESS;
978 break;
979 }
980
981 case E_HDMITX_CMD_GETKSVLIST:
982 {
983 pstHDMITx_GetKSVList pHDMITXArgs = (pstHDMITx_GetKSVList)pArgs;
984 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_GETKSVLIST(pInstance, pHDMITXArgs->pu8Bstatus, pHDMITXArgs->pu8KSVList, pHDMITXArgs->u16BufLen, pHDMITXArgs->pu16KSVLength);
985
986 return UTOPIA_STATUS_SUCCESS;
987 break;
988 }
989
990 case E_HDMITX_CMD_HDCP2ACCESSX74:
991 {
992 pstHDMITx_HDCP2AccessX74 pHDMITXArgs = (pstHDMITx_HDCP2AccessX74)pArgs;
993 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITX_HDCP2ACCESSX74OFFSET(pInstance, pHDMITXArgs->u8PortIdx, pHDMITXArgs->u8OffsetAddr, pHDMITXArgs->u8OpCode, pHDMITXArgs->pu8RdBuf, pHDMITXArgs->u16RdLen, pHDMITXArgs->pu8WRBuff, pHDMITXArgs->u16WrLen);
994
995 return UTOPIA_STATUS_SUCCESS;
996 break;
997 }
998
999 case E_HDMITX_CMD_HDCP2TxInit:
1000 {
1001 pstHDMITx_HDCP2TxInit pHDMITXArgs = (pstHDMITx_HDCP2TxInit)pArgs;
1002 psHDMITXInstPri->fpHDMITx_HDCP2TxInit(pInstance, pHDMITXArgs->u8PortIdx, pHDMITXArgs->bEnable);
1003
1004 return UTOPIA_STATUS_SUCCESS;
1005 break;
1006 }
1007
1008 case E_HDMITX_CMD_HDCP2TxEnableEncrypt:
1009 {
1010 pstHDMITx_HDCP2TxEnableEncrypt pHDMITXArgs = (pstHDMITx_HDCP2TxEnableEncrypt)pArgs;
1011 psHDMITXInstPri->fpHDMITx_HDCP2TxEnableEncrypt(pInstance, pHDMITXArgs->u8PortIdx, pHDMITXArgs->bEnable);
1012
1013 return UTOPIA_STATUS_SUCCESS;
1014 break;
1015 }
1016
1017 case E_HDMITX_CMD_HDCP2TxFillCipherKey:
1018 {
1019 pstHDMITx_HDCP2TxFillCipherKey pHDMITXArgs = (pstHDMITx_HDCP2TxFillCipherKey)pArgs;
1020 psHDMITXInstPri->fpHDMITx_HDCP2TxFillCipherKey(pInstance, pHDMITXArgs->u8PortIdx, pHDMITXArgs->pu8Riv, pHDMITXArgs->pu8KsXORLC128);
1021
1022 return UTOPIA_STATUS_SUCCESS;
1023 break;
1024 }
1025
1026 case E_HDMITX_CMD_GENERALCTRL:
1027 {
1028 pstHDMITx_GeneralCtrl pHDMITXArgs = (pstHDMITx_GeneralCtrl)pArgs;
1029 pHDMITXArgs->bReturn = psHDMITXInstPri->fpHDMITx_GeneralCtrl(pInstance, pHDMITXArgs->u32Cmd, pHDMITXArgs->pu8Buf, pHDMITXArgs->u32BufSize);
1030
1031 return UTOPIA_STATUS_SUCCESS;
1032 break;
1033 }
1034
1035 case E_HDMITX_CMD_COLOR_AND_RANGE_TRANSFORM:
1036 {
1037 pstHDMITX_COLOR_AND_RANGE_TRANSFORM_PARAMETERS pHDMITXArgs = (pstHDMITX_COLOR_AND_RANGE_TRANSFORM_PARAMETERS)pArgs;
1038 pHDMITXArgs->result = psHDMITXInstPri->fpHDMITx_Cmd_ColorAndRangeTransform(pInstance, pHDMITXArgs->input_color, pHDMITXArgs->output_color, pHDMITXArgs->input_range, pHDMITXArgs->output_range);
1039
1040 return UTOPIA_STATUS_SUCCESS;
1041 break;
1042 }
1043
1044 case E_HDMITX_CMD_SSC_ENABLE:
1045 {
1046 pstHDMITX_SSCENABLE pHDMITXArgs = (pstHDMITX_SSCENABLE)pArgs;
1047 pHDMITXArgs->result = psHDMITXInstPri->fpHDMITx_Cmd_SSCEnable(pInstance, pHDMITXArgs->ubSSCEn);
1048
1049 return UTOPIA_STATUS_SUCCESS;
1050 break;
1051 }
1052
1053 case E_HDMITX_CMD_SET_COLORIMETRY:
1054 {
1055 pstHDMITX_SET_COLORIMETRY pHDMITXArgs = (pstHDMITX_SET_COLORIMETRY)pArgs;
1056 pHDMITXArgs->u8Return = psHDMITXInstPri->fpHDMITx_Cmd_Set_Colorimetry(pInstance, pHDMITXArgs->colorimetry);
1057
1058 return UTOPIA_STATUS_SUCCESS;
1059 break;
1060 }
1061
1062 case E_HDMITX_CMD_GET_FULL_RX_STATUS:
1063 {
1064 pstHDMITX_GET_FULL_RX_STATUS pHDMITXArgs = (pstHDMITX_GET_FULL_RX_STATUS)pArgs;
1065 pHDMITXArgs->u32RxStatus = psHDMITXInstPri->fpHDMITx_Cmd_Get_Full_Rx_Status(pInstance);
1066
1067 return UTOPIA_STATUS_SUCCESS;
1068 break;
1069 }
1070
1071 case E_HDMITX_CMD_TIMING_CAPABILITY_CHECK:
1072 {
1073 pstHDMITX_CHECK_LEGAL_TIMING pHDMITXArgs = (pstHDMITX_CHECK_LEGAL_TIMING)pArgs;
1074 pHDMITXArgs->ubRet = psHDMITXInstPri->fpHDMITx_Cmd_Timing_Capability_Check(pInstance, pHDMITXArgs->eOutputMode, pHDMITXArgs->eTiming, pHDMITXArgs->eInColor, pHDMITXArgs->eOutColor, pHDMITXArgs->eColorDepth);
1075
1076 return UTOPIA_STATUS_SUCCESS;
1077 break;
1078 }
1079
1080 case E_HDMITX_CMD_GET_TMDS_STATUS:
HDMITXClose(void * pInstance)1081 {
1082 pstHDMITX_GET_TMDS_STATUS pHDMITXArgs = (pstHDMITX_GET_TMDS_STATUS)pArgs;
1083 pHDMITXArgs->u32TMDSStatus = psHDMITXInstPri->fpHDMITx_Cmd_Get_TMDS_Status(pInstance);
1084 pHDMITXArgs->u32Ret = pHDMITXArgs->u32TMDSStatus;
1085
1086 return UTOPIA_STATUS_SUCCESS;
1087 break;
1088 }
1089
1090 case E_HDMITX_CMD_SETVIDEOUTPUTTIMINGBYCUSTOMER:
1091 {
1092 pstHDMITx_stHDMITx_SetVideoOutputTimingByCustomer pHDMITXArgs = (pstHDMITx_stHDMITx_SetVideoOutputTimingByCustomer)pArgs;
1093 psHDMITXInstPri->fpHDMITX_SETVIDEOOUTPUTTIMINGBYCUSTOMER(pInstance, pHDMITXArgs->u8Mode, pHDMITXArgs->stTiminginfo);
1094
1095 return UTOPIA_STATUS_SUCCESS;
1096 break;
1097 }
1098
1099 #if defined(VANCLEEF_MCP) || defined(RAPTORS_MCP)
1100 case E_HDMITX_CMD_VANCLEEF_LOADHDCPKEY:
1101 {
1102 pstHDMITx_Vancleef_LoadHDCPKey pHDMITXArgs = (pstHDMITx_Vancleef_LoadHDCPKey)pArgs;
1103 psHDMITXInstPri->fpHDMITX_VANCLEEF_LOADHDCPKEY(pInstance, pHDMITXArgs->pHdcpKey, pHDMITXArgs->u32Size);
1104
1105 return UTOPIA_STATUS_SUCCESS;
1106 break;
1107 }
1108 #endif
1109
1110 default:
1111 printf("Error Command = 0x%X\n", u32Cmd);
1112 break;
1113
1114 }
1115 #endif
1116 return UTOPIA_STATUS_SUCCESS;
1117 }
1118
1119 MS_U32 HDMITXClose(void* pInstance)
1120 {
1121 UtopiaInstanceDelete(pInstance);
1122
1123 return UTOPIA_STATUS_SUCCESS;
1124 }
1125
1126
1127