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