xref: /utopia/UTPA2-700.0.x/modules/hdmi/api/hdmitx/apiHDMITx_v2.c (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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