1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2014 - 2016 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) 2014-2016 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 #ifndef _ADP_HDMITX_C_
96*53ee8cc1Swenshuai.xi #define _ADP_HDMITX_C_
97*53ee8cc1Swenshuai.xi
98*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
99*53ee8cc1Swenshuai.xi // Include Files
100*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
101*53ee8cc1Swenshuai.xi #include "MsCommon.h"
102*53ee8cc1Swenshuai.xi #include "MsVersion.h"
103*53ee8cc1Swenshuai.xi #include "MsDevice.h"
104*53ee8cc1Swenshuai.xi
105*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
106*53ee8cc1Swenshuai.xi #include <linux/kernel.h>
107*53ee8cc1Swenshuai.xi #include <linux/string.h>
108*53ee8cc1Swenshuai.xi #include <linux/uaccess.h>
109*53ee8cc1Swenshuai.xi #include <linux/compat.h>
110*53ee8cc1Swenshuai.xi #else
111*53ee8cc1Swenshuai.xi #include <string.h>
112*53ee8cc1Swenshuai.xi #endif
113*53ee8cc1Swenshuai.xi #include <linux/sched.h>
114*53ee8cc1Swenshuai.xi #include <linux/slab.h>
115*53ee8cc1Swenshuai.xi #include <asm/uaccess.h>
116*53ee8cc1Swenshuai.xi #include "MsTypes.h"
117*53ee8cc1Swenshuai.xi #include "utopia.h"
118*53ee8cc1Swenshuai.xi #include "utopia_adp.h"
119*53ee8cc1Swenshuai.xi #include "MsOS.h"
120*53ee8cc1Swenshuai.xi
121*53ee8cc1Swenshuai.xi #include "utopia_dapi.h"
122*53ee8cc1Swenshuai.xi #include "HDMITX_adp.h"
123*53ee8cc1Swenshuai.xi #include "apiHDMITx.h"
124*53ee8cc1Swenshuai.xi #include "apiHDMITx_v2.h"
125*53ee8cc1Swenshuai.xi
126*53ee8cc1Swenshuai.xi
127*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
128*53ee8cc1Swenshuai.xi // Local Defines
129*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
130*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
131*53ee8cc1Swenshuai.xi #define CPY_FROM_USER(a,b,c) if(copy_from_user(a,b,c) != 0) { break; }
132*53ee8cc1Swenshuai.xi #define CPY_TO_USER(a,b,c) if(copy_to_user(a,b,c) != 0) { break; }
133*53ee8cc1Swenshuai.xi #else
134*53ee8cc1Swenshuai.xi #define CPY_FROM_USER memcpy
135*53ee8cc1Swenshuai.xi #define CPY_TO_USER memcpy
136*53ee8cc1Swenshuai.xi #endif //MSOS_TYPE_LINUX_KERNEL
137*53ee8cc1Swenshuai.xi
138*53ee8cc1Swenshuai.xi #if (defined(MSOS_TYPE_LINUX_KERNEL) && defined(CONFIG_COMPAT))
139*53ee8cc1Swenshuai.xi #define COMPAT_PTR(a) compat_ptr(a)
140*53ee8cc1Swenshuai.xi #define COMPAT_NEXT_PTR(a) (*((MS_U32*)compat_ptr((unsigned long)a)))
141*53ee8cc1Swenshuai.xi #define IS_CMP_TASK() is_compat_task()
142*53ee8cc1Swenshuai.xi #define CMP_CPY_FROM_USER(a,b,c) if(copy_from_user(a, compat_ptr((unsigned long)b), c) != 0) { break; }
143*53ee8cc1Swenshuai.xi #define CMP_CPY_TO_USER(a,b,c) if(copy_to_user(compat_ptr((unsigned long)a), b, c) != 0) { break; }
144*53ee8cc1Swenshuai.xi #define MS_COMPAT_HDMITX compat_uptr_t
145*53ee8cc1Swenshuai.xi
146*53ee8cc1Swenshuai.xi #else
147*53ee8cc1Swenshuai.xi #define COMPAT_PTR(a) (a)
148*53ee8cc1Swenshuai.xi #define COMPAT_NEXT_PTR(a) (*((MS_U32*)a))
149*53ee8cc1Swenshuai.xi #define IS_CMP_TASK() (FALSE)
150*53ee8cc1Swenshuai.xi #define CMP_CPY_FROM_USER CPY_FROM_USER
151*53ee8cc1Swenshuai.xi #define CMP_CPY_TO_USER CPY_TO_USER
152*53ee8cc1Swenshuai.xi #define MS_COMPAT_HDMITX MS_U8*
153*53ee8cc1Swenshuai.xi
154*53ee8cc1Swenshuai.xi #endif //CONFIG_COMPAT
155*53ee8cc1Swenshuai.xi
156*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
157*53ee8cc1Swenshuai.xi // Local Structures
158*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
159*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
160*53ee8cc1Swenshuai.xi {
161*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Buffer;
162*53ee8cc1Swenshuai.xi MS_U8 u8BufSize;
163*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
164*53ee8cc1Swenshuai.xi } stHDMITx_GetRxVideoFormatFromEDID_Compat,*pstHDMITx_GetRxVideoFormatFromEDID_Compat;
165*53ee8cc1Swenshuai.xi
166*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
167*53ee8cc1Swenshuai.xi {
168*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Buffer;
169*53ee8cc1Swenshuai.xi MS_U8 u8BufSize;
170*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
171*53ee8cc1Swenshuai.xi } stHDMITx_GetVICListFromEDID_Compat,*pstHDMITx_GetVICListFromEDID_Compat;
172*53ee8cc1Swenshuai.xi
173*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
174*53ee8cc1Swenshuai.xi {
175*53ee8cc1Swenshuai.xi HDMITX_VIDEO_TIMING timing;
176*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pColorFmt;
177*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
178*53ee8cc1Swenshuai.xi } stHDMITx_GetColorFormatFromEDID_Compat,*pstHDMITx_GetColorFormatFromEDID_Compat;
179*53ee8cc1Swenshuai.xi
180*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
181*53ee8cc1Swenshuai.xi {
182*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Buffer;
183*53ee8cc1Swenshuai.xi MS_U8 u8BufSize;
184*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
185*53ee8cc1Swenshuai.xi } stHDMITx_GetRxAudioFormatFromEDID_Compat,*pstHDMITx_GetRxAudioFormatFromEDID_Compat;
186*53ee8cc1Swenshuai.xi
187*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
188*53ee8cc1Swenshuai.xi {
189*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Buffer;
190*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
191*53ee8cc1Swenshuai.xi } stHDMITx_GetRxIDManufacturerName_Compat,*pstHDMITx_GetRxIDManufacturerName_Compat;
192*53ee8cc1Swenshuai.xi
193*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
194*53ee8cc1Swenshuai.xi {
195*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Buffer;
196*53ee8cc1Swenshuai.xi MS_BOOL BlockIdx;
197*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
198*53ee8cc1Swenshuai.xi } stHDMITx_GetEDIDData_Compat,*pstHDMITx_GetEDIDData_Compat;
199*53ee8cc1Swenshuai.xi
200*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
201*53ee8cc1Swenshuai.xi {
202*53ee8cc1Swenshuai.xi HDMITX_VIDEO_TIMING timing;
203*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX p3DStructure;
204*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
205*53ee8cc1Swenshuai.xi } stHDMITx_GetRx3DStructureFromEDID_Compat,*pstHDMITx_GetRx3DStructureFromEDID_Compat;
206*53ee8cc1Swenshuai.xi
207*53ee8cc1Swenshuai.xi
208*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
209*53ee8cc1Swenshuai.xi {
210*53ee8cc1Swenshuai.xi HDMITX_PACKET_TYPE packet_type;
211*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX data;
212*53ee8cc1Swenshuai.xi MS_U8 length;
213*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
214*53ee8cc1Swenshuai.xi } stHDMITx_PKT_Content_Define_Compat,*pstHDMITx_PKT_Content_Define_Compat;
215*53ee8cc1Swenshuai.xi
216*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
217*53ee8cc1Swenshuai.xi {
218*53ee8cc1Swenshuai.xi MS_BOOL useinternalkey;
219*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX data;
220*53ee8cc1Swenshuai.xi } stHDMITx_GetHdcpKey_Compat,*pstHDMITx_GetHdcpKey_Compat;
221*53ee8cc1Swenshuai.xi
222*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
223*53ee8cc1Swenshuai.xi {
224*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pdata;
225*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
226*53ee8cc1Swenshuai.xi } stHDMITx_GetBksv_Compat,*pstHDMITx_GetBksv_Compat;
227*53ee8cc1Swenshuai.xi
228*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
229*53ee8cc1Swenshuai.xi {
230*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pdata;
231*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
232*53ee8cc1Swenshuai.xi } stHDMITx_GetAksv_Compat,*pstHDMITx_GetAksv_Compat;
233*53ee8cc1Swenshuai.xi
234*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
235*53ee8cc1Swenshuai.xi {
236*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX data;
237*53ee8cc1Swenshuai.xi MS_U16 size;
238*53ee8cc1Swenshuai.xi } stHDMITx_HDCP_RevocationKey_List_Compat,*pstHDMITx_HDCP_RevocationKey_List_Compat;
239*53ee8cc1Swenshuai.xi
240*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
241*53ee8cc1Swenshuai.xi {
242*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX data;
243*53ee8cc1Swenshuai.xi MS_U32 size;
244*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
245*53ee8cc1Swenshuai.xi } stHDMITx_HDCP_IsSRMSignatureValid_Compat,*pstHDMITx_HDCP_IsSRMSignatureValid_Compat;
246*53ee8cc1Swenshuai.xi
247*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
248*53ee8cc1Swenshuai.xi {
249*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pdata;
250*53ee8cc1Swenshuai.xi } stHDMITx_GetEDIDPhyAdr_Compat,*pstHDMITx_GetEDIDPhyAdr_Compat;
251*53ee8cc1Swenshuai.xi
252*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
253*53ee8cc1Swenshuai.xi {
254*53ee8cc1Swenshuai.xi EN_HDMITX_CAPS eCapType;
255*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pRet;
256*53ee8cc1Swenshuai.xi MS_U32 ret_size;
257*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
258*53ee8cc1Swenshuai.xi } stHDMITx_GetChipCaps_Compat,*pstHDMITx_GetChipCaps_Compat;
259*53ee8cc1Swenshuai.xi
260*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
261*53ee8cc1Swenshuai.xi {
262*53ee8cc1Swenshuai.xi HDMITX_CEA_DB_TAG_CODE enTagCode;
263*53ee8cc1Swenshuai.xi HDMITX_CEA_EXT_TAG_CODE enExtTagCode;
264*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Data;
265*53ee8cc1Swenshuai.xi MS_U32 u32DataLen;
266*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu32RealLen;
267*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
268*53ee8cc1Swenshuai.xi } stHDMITx_GetEdidDataBlocks_Compat, *pstHDMITx_GetEdidDataBlocks_Compat;
269*53ee8cc1Swenshuai.xi
270*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
271*53ee8cc1Swenshuai.xi {
272*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Bstatus;
273*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8KSVList;
274*53ee8cc1Swenshuai.xi MS_U16 u16BufLen;
275*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu16KSVLength;
276*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
277*53ee8cc1Swenshuai.xi } stHDMITx_GetKSVList_Compat, *pstHDMITx_GetKSVList_Compat;
278*53ee8cc1Swenshuai.xi
279*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
280*53ee8cc1Swenshuai.xi {
281*53ee8cc1Swenshuai.xi MS_U8 u8PortIdx;
282*53ee8cc1Swenshuai.xi MS_U8 u8OffsetAddr;
283*53ee8cc1Swenshuai.xi MS_U8 u8OpCode;
284*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8RdBuf;
285*53ee8cc1Swenshuai.xi MS_U16 u16RdLen;
286*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8WRBuff;
287*53ee8cc1Swenshuai.xi MS_U16 u16WrLen;
288*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
289*53ee8cc1Swenshuai.xi } stHDMITx_HDCP2AccessX74_Compat, *pstHDMITx_HDCP2AccessX74_Compat;
290*53ee8cc1Swenshuai.xi
291*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
292*53ee8cc1Swenshuai.xi {
293*53ee8cc1Swenshuai.xi MS_U8 u8PortIdx;
294*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8Riv;
295*53ee8cc1Swenshuai.xi MS_COMPAT_HDMITX pu8KsXORLC128;
296*53ee8cc1Swenshuai.xi } stHDMITx_HDCP2TxFillCipherKey_Compat, *pstHDMITx_HDCP2TxFillCipherKey_Compat;
297*53ee8cc1Swenshuai.xi
298*53ee8cc1Swenshuai.xi
299*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
300*53ee8cc1Swenshuai.xi // Global Variables
301*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
302*53ee8cc1Swenshuai.xi
303*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
304*53ee8cc1Swenshuai.xi // Local Variables
305*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
306*53ee8cc1Swenshuai.xi
307*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_BOOL, 0);
308*53ee8cc1Swenshuai.xi
309*53ee8cc1Swenshuai.xi //Mapi_HDMITx_init()
310*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_INIT, 0);
311*53ee8cc1Swenshuai.xi
312*53ee8cc1Swenshuai.xi //Mapi_HDMITx_Exit()
313*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_EXIT, 0);
314*53ee8cc1Swenshuai.xi
315*53ee8cc1Swenshuai.xi //Mapi_HDMITx_TurnOnOff()
316*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_TURNONOFF, 0);
317*53ee8cc1Swenshuai.xi
318*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EnablePacketGen()
319*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_ENPKTGEN, 0);
320*53ee8cc1Swenshuai.xi
321*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDMITxMode()
322*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETHDMITXMODE, 0);
323*53ee8cc1Swenshuai.xi
324*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDMITxMode_CD()
325*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETHDMITXMODECD, 0);
326*53ee8cc1Swenshuai.xi
327*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetTMDSOnOff()
328*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETTMDSONOFF, 0);
329*53ee8cc1Swenshuai.xi
330*53ee8cc1Swenshuai.xi //Mapi_HDMITx_DisableTMDSCtrl()
331*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_DISABLETMDSCTRL, 0);
332*53ee8cc1Swenshuai.xi
333*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetRBChannelSwap()
334*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETRBCHSWAP, 0);
335*53ee8cc1Swenshuai.xi
336*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxStatus()
337*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETRXSTATUS, 0);
338*53ee8cc1Swenshuai.xi
339*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxDCInfoFromEDID()
340*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(ColorDepthPt, 0);
341*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETDCINFOFROMEDID, 1);
342*53ee8cc1Swenshuai.xi
343*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxVideoFormatFromEDID()
344*53ee8cc1Swenshuai.xi #if 0
345*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(VidFmtData, 0);
346*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETRXVIDFMTFROMEDID, 1);
347*53ee8cc1Swenshuai.xi #endif
348*53ee8cc1Swenshuai.xi
349*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetVICListFromEDID()
350*53ee8cc1Swenshuai.xi #if 0
351*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(VICListData, 0);
352*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GTVICLISTFROMEDID, 1);
353*53ee8cc1Swenshuai.xi #endif
354*53ee8cc1Swenshuai.xi
355*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetDataBlockLengthFromEDID()
356*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(DataBlkLenPt, 0);
357*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETDATABLKLENFROMEDID, 1);
358*53ee8cc1Swenshuai.xi
359*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetColorFormatFromEDID()
360*53ee8cc1Swenshuai.xi #if 0
361*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(ColorFmtPt, 0);
362*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETCOLORFMTFROMEDID, 1);
363*53ee8cc1Swenshuai.xi #endif
364*53ee8cc1Swenshuai.xi
365*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxAudioFormatFromEDID()
366*53ee8cc1Swenshuai.xi #if 0
367*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(AudFmtData, 0);
368*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITx_GETRXAUDFMTFROMEDID, 1);
369*53ee8cc1Swenshuai.xi #endif
370*53ee8cc1Swenshuai.xi
371*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EDID_HDMISupport()
372*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMISupPt, 0);
373*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_EDIDHDMISUPPORT, 1);
374*53ee8cc1Swenshuai.xi
375*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxIDManufacturerName()
376*53ee8cc1Swenshuai.xi #if 0
377*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(ManuIDData, 0);
378*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETRXIDMANUFACTNAME, 1);
379*53ee8cc1Swenshuai.xi #endif
380*53ee8cc1Swenshuai.xi
381*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEDIDData()
382*53ee8cc1Swenshuai.xi #if 0
383*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(SinkEDIDBlockData, 0);
384*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_GETEDIDDATA, 1);
385*53ee8cc1Swenshuai.xi #endif
386*53ee8cc1Swenshuai.xi
387*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRx3DStructureFromEDID()
388*53ee8cc1Swenshuai.xi #if 0
389*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(Edid3DStPt, 0);
390*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETRX3DSTRUCTFROMEDID, 1);
391*53ee8cc1Swenshuai.xi #endif
392*53ee8cc1Swenshuai.xi
393*53ee8cc1Swenshuai.xi //Mapi_HDMITx_PKT_User_Define()
394*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_PKTUSERDEF, 0);
395*53ee8cc1Swenshuai.xi
396*53ee8cc1Swenshuai.xi //Mapi_HDMITx_PKT_Content_Define()
397*53ee8cc1Swenshuai.xi #if 0
398*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(UserDefPktContent, 0);
399*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_PKTCONTENTDEF, 1);
400*53ee8cc1Swenshuai.xi #endif
401*53ee8cc1Swenshuai.xi
402*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOnOff()
403*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITx_SETVIDONOFF, 0);
404*53ee8cc1Swenshuai.xi
405*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetColorFormat
406*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETCOLORFMT, 0);
407*53ee8cc1Swenshuai.xi
408*53ee8cc1Swenshuai.xi //Mapi_HDMITx_Set_VS_InfoFrame()
409*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVSINFOFRAME, 0);
410*53ee8cc1Swenshuai.xi
411*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputTiming()
412*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVIDOUTPUTTIMING, 0);
413*53ee8cc1Swenshuai.xi
414*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputTimingByCustomer()
415*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVIDEOUTPUTTIMINGBYCUSTOMER, 0);
416*53ee8cc1Swenshuai.xi
417*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputAsepctRatio()
418*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVIDOUTPUTASPECTRATIO, 0);
419*53ee8cc1Swenshuai.xi
420*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputOverscan_AFD()
421*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVIDOUTPUTOVERSCANAFD, 0);
422*53ee8cc1Swenshuai.xi
423*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioOnOff()
424*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAUDONOFF, 0);
425*53ee8cc1Swenshuai.xi
426*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioFrequency()
427*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAUDFREQ, 0);
428*53ee8cc1Swenshuai.xi
429*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputOverscan_AFD_II()
430*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETVIDOUTPUTOVERSCANAFD_II, 0);
431*53ee8cc1Swenshuai.xi
432*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioConfiguration()
433*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAUDCONFIG, 0);
434*53ee8cc1Swenshuai.xi
435*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioSourceFormat()
436*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAUDSRCFMT, 0);
437*53ee8cc1Swenshuai.xi
438*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioSourceFormat()
439*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAVIINFOEXTCOLORIMETRY, 0);
440*53ee8cc1Swenshuai.xi
441*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAudioCTS()
442*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETAUDCTS, 0);
443*53ee8cc1Swenshuai.xi
444*53ee8cc1Swenshuai.xi //Mapi_HDMITx_MuteAudioFIFO()
445*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_MUTEAUDFIFO, 0);
446*53ee8cc1Swenshuai.xi
447*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHdcpKey()
448*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(Hdcp14KeyData, 0);
449*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_GETHDCPKEY, 1);
450*53ee8cc1Swenshuai.xi
451*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetBksv()
452*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(Hdcp14BKSVData, 0);
453*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_GETBKSV, 1);
454*53ee8cc1Swenshuai.xi
455*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAksv()
456*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(Hdcp14AKSVData, 0);
457*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_GETAKSV, 1);
458*53ee8cc1Swenshuai.xi
459*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDCPOnOff()
460*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETHDCPONOFF, 0);
461*53ee8cc1Swenshuai.xi
462*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAVMUTE()
463*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAVMUTE, 0);
464*53ee8cc1Swenshuai.xi
465*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAVMUTEStatus()
466*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETAVMUTESTATUS, 0);
467*53ee8cc1Swenshuai.xi
468*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_RevocationKey_List()
469*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(Hdcp14RevokeList, 0);
470*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCPREVOKEKEYLIST, 1);
471*53ee8cc1Swenshuai.xi
472*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_RevocationKey_Check()
473*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP14REVOKEKEYCHK, 0);
474*53ee8cc1Swenshuai.xi
475*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_IsSRMSignatureValid()
476*53ee8cc1Swenshuai.xi #if 0
477*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(Hdcp14SRMSignData, 0);
478*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP14ISSRMSIGNVALID, 1);
479*53ee8cc1Swenshuai.xi #endif
480*53ee8cc1Swenshuai.xi
481*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHDCPStatus()
482*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETHDCPSTATUS, 0);
483*53ee8cc1Swenshuai.xi
484*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_StartAuth()
485*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP14STARTAUTH, 0);
486*53ee8cc1Swenshuai.xi
487*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetINTHDCPStatus()
488*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETINTHDCPSTATUS, 0);
489*53ee8cc1Swenshuai.xi
490*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHDCP_PreStatus()
491*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETHDCP14PRESTATUS, 0);
492*53ee8cc1Swenshuai.xi
493*53ee8cc1Swenshuai.xi //Mapi_UnHDCPRxControl()
494*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_UNHDCPRXCTRL, 0);
495*53ee8cc1Swenshuai.xi
496*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCPRxFailControl()
497*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCPRXFAILCTRL, 0);
498*53ee8cc1Swenshuai.xi
499*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetLibVer()
500*53ee8cc1Swenshuai.xi #if 0
501*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(MSIF_VER_PT, 0);
502*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(LibVerPt, 1);
503*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETLIBVER, 1);
504*53ee8cc1Swenshuai.xi #endif
505*53ee8cc1Swenshuai.xi
506*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetInfo()
507*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HdmiTxInfoPt, 0);
508*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETINFO, 1);
509*53ee8cc1Swenshuai.xi
510*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetStatus()
511*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HdmiTxStatusPt, 0);
512*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETSTATUS, 1);
513*53ee8cc1Swenshuai.xi
514*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetDbgLevels()
515*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETDBGLEVEL, 0);
516*53ee8cc1Swenshuai.xi
517*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHPDGpioPin()
518*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETHPDGPIOPIN, 0);
519*53ee8cc1Swenshuai.xi
520*53ee8cc1Swenshuai.xi //Mapi_HDMITx_AnalogTuning()
521*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(AnalogTuningPt, 0);
522*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_ANALOGTUNING, 1);
523*53ee8cc1Swenshuai.xi
524*53ee8cc1Swenshuai.xi //Mapi_HDMITx_ForceHDMIOutputMode()
525*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_FORCEHDMIOUTPUTMODE, 0);
526*53ee8cc1Swenshuai.xi
527*53ee8cc1Swenshuai.xi //Mapi_HDMITx_ForceHDMIOutputColorFormat()
528*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_FORCEHDMIOUTPUTCOLORFMT, 0);
529*53ee8cc1Swenshuai.xi
530*53ee8cc1Swenshuai.xi //Mapi_HDMITx_DisableRegWrite()
531*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_DISABLEREGWRITE, 0);
532*53ee8cc1Swenshuai.xi
533*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEDIDPhyAdr()
534*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(EdidPhyAddrData, 0);
535*53ee8cc1Swenshuai.xi //UADP_SPT_NAMEnNXT_DEF(HDMITX_GETEDIDPHYADR, 1);
536*53ee8cc1Swenshuai.xi
537*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetCECOnOff()
538*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETCECONOFF, 0);
539*53ee8cc1Swenshuai.xi
540*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetCECStatus()
541*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETCECSTATUS, 0);
542*53ee8cc1Swenshuai.xi
543*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EdidChecking()
544*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_EDIDCHECKING, 0);
545*53ee8cc1Swenshuai.xi
546*53ee8cc1Swenshuai.xi //Mapi_HDMITx_RxBypass_Mode()
547*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_RXBYPASSMODE, 0);
548*53ee8cc1Swenshuai.xi
549*53ee8cc1Swenshuai.xi //Mapi_HDMITx_Disable_RxBypass()
550*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_DISABLERXBYPASS, 0);
551*53ee8cc1Swenshuai.xi
552*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAksv2R0Interval()
553*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETAKSV2R0INTERVAL, 0);
554*53ee8cc1Swenshuai.xi
555*53ee8cc1Swenshuai.xi //Mapi_HDMITx_IsHDCPRxValid()
556*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_ISHDCPRXVALID, 0);
557*53ee8cc1Swenshuai.xi
558*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetChipCaps()
559*53ee8cc1Swenshuai.xi #if 0
560*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HdmiChipCapInfo, 0);
561*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETCHIPCAPS, 1);
562*53ee8cc1Swenshuai.xi #endif
563*53ee8cc1Swenshuai.xi
564*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetPowerState()
565*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETPWRSTATE, 0);
566*53ee8cc1Swenshuai.xi
567*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEdidDataBlocks()
568*53ee8cc1Swenshuai.xi #if 0
569*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(SinkEDIDDataBlk, 0);
570*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(DataBlkRetLenPt, 0);
571*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETEDIDDATABLKS, 2);
572*53ee8cc1Swenshuai.xi #endif
573*53ee8cc1Swenshuai.xi
574*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetKSVList()
575*53ee8cc1Swenshuai.xi #if 0
576*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(SinkBstatusData, 0);
577*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(SinkKSVList, 0);
578*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(KSVListLenPt, 0);
579*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GETKSVLIST, 3);
580*53ee8cc1Swenshuai.xi #endif
581*53ee8cc1Swenshuai.xi
582*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2AccessX74()
583*53ee8cc1Swenshuai.xi #if 0
584*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(Hdcp22x74RdData, 0);
585*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(Hdcp22x74WrData, 0);
586*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP2ACCESSX74, 2);
587*53ee8cc1Swenshuai.xi #endif
588*53ee8cc1Swenshuai.xi
589*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxInit()
590*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP2TXINIT, 0);
591*53ee8cc1Swenshuai.xi
592*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxEnableEncrypt()
593*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_HDCP2TXENABLEENC, 0);
594*53ee8cc1Swenshuai.xi
595*53ee8cc1Swenshuai.xi
596*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxFillCipherKey()
597*53ee8cc1Swenshuai.xi #if 0
598*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(Hdcp22RivData, 0);
599*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(Hdcp22KsData, 0);
600*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITx_HDCP2TXFILLCIPHERKEY, 2);
601*53ee8cc1Swenshuai.xi #endif
602*53ee8cc1Swenshuai.xi
603*53ee8cc1Swenshuai.xi //MApi_HDMITx_ColorandRange_Transform
604*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_COLORRANGE_TRANSFORM, 0);
605*53ee8cc1Swenshuai.xi
606*53ee8cc1Swenshuai.xi //MApi_HDMITx_SSC_Enable
607*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETSSCENABLE, 0);
608*53ee8cc1Swenshuai.xi
609*53ee8cc1Swenshuai.xi //MApi_HDMITx_SetAVIInfoExtColorimetry
610*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_SETCOLORIMETRY, 0);
611*53ee8cc1Swenshuai.xi
612*53ee8cc1Swenshuai.xi //MApi_HDMITx_SetAVIInfoExtColorimetry
613*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_GET_FULL_RX_STATUS, 0);
614*53ee8cc1Swenshuai.xi
615*53ee8cc1Swenshuai.xi //MApi_HDMITx_SetAVIInfoExtColorimetry
616*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(HDMITX_CHECK_LEGAL_TIMING, 0);
617*53ee8cc1Swenshuai.xi
HDMITX_adp_Init(FUtopiaIOctl * pIoctl)618*53ee8cc1Swenshuai.xi MS_U32 HDMITX_adp_Init(FUtopiaIOctl* pIoctl)
619*53ee8cc1Swenshuai.xi {
620*53ee8cc1Swenshuai.xi MS_U32 u32DataSize = 0x00;
621*53ee8cc1Swenshuai.xi
622*53ee8cc1Swenshuai.xi //MS_BOOL
623*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_BOOL, MS_BOOL);
624*53ee8cc1Swenshuai.xi
625*53ee8cc1Swenshuai.xi //E_HDMITX_CMD_INIT:: Mapi_HDMITx_init()
626*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_INIT, stHDMITx_Init);
627*53ee8cc1Swenshuai.xi
628*53ee8cc1Swenshuai.xi //E_HDMITX_CMD_INIT:: Mapi_HDMITx_Exit()
629*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_EXIT, stHDMITx_Exit);
630*53ee8cc1Swenshuai.xi
631*53ee8cc1Swenshuai.xi //E_HDMITX_CMD_TURNONOFF:: Mapi_HDMITx_TurnOnOff()
632*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_TURNONOFF, stHDMITx_TurnOnOff);
633*53ee8cc1Swenshuai.xi
634*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EnablePacketGen()
635*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_ENPKTGEN, stHDMITx_EnablePacketGen);
636*53ee8cc1Swenshuai.xi
637*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDMITxMode()
638*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETHDMITXMODE, stHDMITx_SetHDMITxMode);
639*53ee8cc1Swenshuai.xi
640*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDMITxMode_CD()
641*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETHDMITXMODECD, stHDMITx_SetHDMITxMode_CD);
642*53ee8cc1Swenshuai.xi
643*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetTMDSOnOff()
644*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETTMDSONOFF, stHDMITx_SetTMDSOnOff);
645*53ee8cc1Swenshuai.xi
646*53ee8cc1Swenshuai.xi //Mapi_HDMITx_DisableTMDSCtrl()
647*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_DISABLETMDSCTRL, stHDMITx_DisableTMDSCtrl);
648*53ee8cc1Swenshuai.xi
649*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetRBChannelSwap()
650*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETRBCHSWAP, stHDMITx_SetRBChannelSwap);
651*53ee8cc1Swenshuai.xi
652*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxStatus()
653*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETRXSTATUS, stHDMITx_GetRxStatus);
654*53ee8cc1Swenshuai.xi
655*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxDCInfoFromEDID()
656*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(ColorDepthPt, HDMITX_VIDEO_COLORDEPTH_VAL);
657*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_GETDCINFOFROMEDID, stHDMITx_GetRxDCInfoFromEDID, UADP_SDT_P2N, val, ColorDepthPt);
658*53ee8cc1Swenshuai.xi
659*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxVideoFormatFromEDID()
660*53ee8cc1Swenshuai.xi #if 0
661*53ee8cc1Swenshuai.xi #define DEF_EDID_VIDFMT_SIZE 127U
662*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_VIDFMT_SIZE;
663*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_VidFmtData[0], u32DataSize);
664*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_VidFmtData[1]);
665*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETRXVIDFMTFROMEDID, stHDMITx_GetRxVideoFormatFromEDID, pu8Buffer, VidFmtData);
666*53ee8cc1Swenshuai.xi #undef DEF_EDID_VIDFMT_SIZE
667*53ee8cc1Swenshuai.xi #endif
668*53ee8cc1Swenshuai.xi
669*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetVICListFromEDID()
670*53ee8cc1Swenshuai.xi #if 0
671*53ee8cc1Swenshuai.xi #define DEF_EDID_VICLIST_SIZE 127U
672*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_VICLIST_SIZE;
673*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_VICListData[0], u32DataSize);
674*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_VICListData[1]);
675*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GTVICLISTFROMEDID, stHDMITx_GetVICListFromEDID, pu8Buffer, VICListData);
676*53ee8cc1Swenshuai.xi #undef DEF_EDID_VICLIST_SIZE
677*53ee8cc1Swenshuai.xi #endif
678*53ee8cc1Swenshuai.xi
679*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetDataBlockLengthFromEDID()
680*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(DataBlkLenPt, MS_U8);
681*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETDATABLKLENFROMEDID, stHDMITx_GetDataBlockLengthFromEDID, pu8Length, DataBlkLenPt);
682*53ee8cc1Swenshuai.xi
683*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetColorFormatFromEDID()
684*53ee8cc1Swenshuai.xi #if 0
685*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(ColorFmtPt, HDMITX_EDID_COLOR_FORMAT);
686*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_GETCOLORFMTFROMEDID, stHDMITx_GetColorFormatFromEDID, UADP_SDT_P2N, pColorFmt,ColorFmtPt);
687*53ee8cc1Swenshuai.xi #endif
688*53ee8cc1Swenshuai.xi
689*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxAudioFormatFromEDID()
690*53ee8cc1Swenshuai.xi #if 0
691*53ee8cc1Swenshuai.xi #define DEF_EDID_AUDFMT_SIZE 127U
692*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_AUDFMT_SIZE;
693*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_AudFmtData[0], u32DataSize);
694*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_AudFmtData[1]);
695*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITx_GETRXAUDFMTFROMEDID, stHDMITx_GetRxAudioFormatFromEDID, pu8Buffer, AudFmtData);
696*53ee8cc1Swenshuai.xi #undef DEF_EDID_AUDFMT_SIZE
697*53ee8cc1Swenshuai.xi #endif
698*53ee8cc1Swenshuai.xi
699*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EDID_HDMISupport()
700*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_EDIDHDMISUPPORT, stHDMITx_EDID_HDMISupport, HDMI_Support, HDMITX_BOOL);
701*53ee8cc1Swenshuai.xi
702*53ee8cc1Swenshuai.xi
703*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRxIDManufacturerName()
704*53ee8cc1Swenshuai.xi #if 0
705*53ee8cc1Swenshuai.xi #define DEF_EDID_MANUFACTORID_SIZE 3U
706*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE;
707*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_ManuIDData[0], u32DataSize);
708*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_ManuIDData[1]);
709*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETRXIDMANUFACTNAME, stHDMITx_GetRxIDManufacturerName, pu8Buffer, ManuIDData);
710*53ee8cc1Swenshuai.xi #undef DEF_EDID_MANUFACTORID_SIZE
711*53ee8cc1Swenshuai.xi #endif
712*53ee8cc1Swenshuai.xi
713*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEDIDData()
714*53ee8cc1Swenshuai.xi #if 0
715*53ee8cc1Swenshuai.xi #define DEF_EDID_BLOCK_SIZE 128U
716*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE;
717*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_SinkEDIDBlockData[0], u32DataSize);
718*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_SinkEDIDBlockData[1]);
719*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETEDIDDATA, stHDMITx_GetEDIDData, pu8Buffer, SinkEDIDBlockData);
720*53ee8cc1Swenshuai.xi #undef DEF_EDID_BLOCK_SIZE
721*53ee8cc1Swenshuai.xi #endif
722*53ee8cc1Swenshuai.xi
723*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetRx3DStructureFromEDID()
724*53ee8cc1Swenshuai.xi #if 0
725*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(Edid3DStPt, HDMITX_EDID_3D_STRUCTURE_ALL);
726*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_GETRX3DSTRUCTFROMEDID, stHDMITx_GetRx3DStructureFromEDID, UADP_SDT_P2N, p3DStructure, Edid3DStPt);
727*53ee8cc1Swenshuai.xi #endif
728*53ee8cc1Swenshuai.xi
729*53ee8cc1Swenshuai.xi //Mapi_HDMITx_PKT_User_Define()
730*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_PKTUSERDEF, stHDMITx_PKT_User_Define);
731*53ee8cc1Swenshuai.xi
732*53ee8cc1Swenshuai.xi //Mapi_HDMITx_PKT_Content_Define()
733*53ee8cc1Swenshuai.xi #if 0
734*53ee8cc1Swenshuai.xi #define DEF_MAX_U8_SIZE 127U
735*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_MAX_U8_SIZE;
736*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_UserDefPktContent[0], u32DataSize);
737*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_UserDefPktContent[1]);
738*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_PKTCONTENTDEF, stHDMITx_PKT_Content_Define, data, UserDefPktContent);
739*53ee8cc1Swenshuai.xi #undef DEF_MAX_U8_SIZE
740*53ee8cc1Swenshuai.xi #endif
741*53ee8cc1Swenshuai.xi
742*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOnOff()
743*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITx_SETVIDONOFF, stHDMITx_SetVideoOnOff);
744*53ee8cc1Swenshuai.xi
745*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetColorFormat
746*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETCOLORFMT, stHDMITx_SetColorFormat);
747*53ee8cc1Swenshuai.xi
748*53ee8cc1Swenshuai.xi //Mapi_HDMITx_Set_VS_InfoFrame()
749*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVSINFOFRAME, stHDMITx_Set_VS_InfoFrame);
750*53ee8cc1Swenshuai.xi
751*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputTiming()
752*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVIDOUTPUTTIMING, stHDMITx_SetVideoOutputTiming);
753*53ee8cc1Swenshuai.xi
754*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputTimingByCustomer()
755*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVIDEOUTPUTTIMINGBYCUSTOMER, stHDMITx_SetVideoOutputTimingByCustomer);
756*53ee8cc1Swenshuai.xi
757*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputAsepctRatio()
758*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVIDOUTPUTASPECTRATIO, stHDMITx_SetVideoOutputAsepctRatio);
759*53ee8cc1Swenshuai.xi
760*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputOverscan_AFD()
761*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVIDOUTPUTOVERSCANAFD, stHDMITx_SetVideoOutputOverscan_AFD);
762*53ee8cc1Swenshuai.xi
763*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioOnOff()
764*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAUDONOFF, stHDMITx_SetAudioOnOff);
765*53ee8cc1Swenshuai.xi
766*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioFrequency()
767*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAUDFREQ, stHDMITx_SetAudioFrequency);
768*53ee8cc1Swenshuai.xi
769*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetVideoOutputOverscan_AFD_II()
770*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETVIDOUTPUTOVERSCANAFD_II, stHDMITx_SetVideoOutputOverscan_AFD_II);
771*53ee8cc1Swenshuai.xi
772*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioConfiguration()
773*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAUDCONFIG, stHDMITx_SetAudioConfiguration);
774*53ee8cc1Swenshuai.xi
775*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioSourceFormat()
776*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAUDSRCFMT, stHDMITx_SetAudioSourceFormat);
777*53ee8cc1Swenshuai.xi
778*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAudioSourceFormat()
779*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAVIINFOEXTCOLORIMETRY, stHDMITx_SetAVIInfoExtColorimetry);
780*53ee8cc1Swenshuai.xi
781*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAudioCTS()
782*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETAUDCTS, stHDMITx_GetAudioCTS);
783*53ee8cc1Swenshuai.xi
784*53ee8cc1Swenshuai.xi //Mapi_HDMITx_MuteAudioFIFO()
785*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_MUTEAUDFIFO, stHDMITx_MuteAudioFIFO);
786*53ee8cc1Swenshuai.xi
787*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHdcpKey()
788*53ee8cc1Swenshuai.xi #if 0
789*53ee8cc1Swenshuai.xi #define DEF_HDCP14_KEY_SIZE 304U
790*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE;
791*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp14KeyData[0], u32DataSize);
792*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp14KeyData[1]);
793*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETHDCPKEY, stHDMITx_GetHdcpKey, data, Hdcp14KeyData);
794*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_KEY_SIZE
795*53ee8cc1Swenshuai.xi #endif
796*53ee8cc1Swenshuai.xi
797*53ee8cc1Swenshuai.xi #if 0
798*53ee8cc1Swenshuai.xi #define DEF_HDCP14_KSV_SIZE 5U
799*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetBksv()
800*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE;
801*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp14BKSVData[0], u32DataSize);
802*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp14BKSVData[1]);
803*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETBKSV, stHDMITx_GetBksv, pdata, Hdcp14BKSVData);
804*53ee8cc1Swenshuai.xi
805*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAksv()
806*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp14AKSVData[0], u32DataSize);
807*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp14AKSVData[1]);
808*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETAKSV, stHDMITx_GetAksv, pdata, Hdcp14AKSVData);
809*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_KSV_SIZE
810*53ee8cc1Swenshuai.xi #endif
811*53ee8cc1Swenshuai.xi
812*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHDCPOnOff()
813*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETHDCPONOFF, stHDMITx_SetHDCPOnOff);
814*53ee8cc1Swenshuai.xi
815*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAVMUTE()
816*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAVMUTE, stHDMITx_SetAVMUTE);
817*53ee8cc1Swenshuai.xi
818*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetAVMUTEStatus()
819*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETAVMUTESTATUS, stHDMITx_GetAVMUTEStatus);
820*53ee8cc1Swenshuai.xi
821*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_RevocationKey_List()
822*53ee8cc1Swenshuai.xi #if 0
823*53ee8cc1Swenshuai.xi #define DEF_HDCP14_REVOKKEY_SIZE 5*127U
824*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP14_REVOKKEY_SIZE;
825*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp14RevokeList[0], u32DataSize);
826*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp14RevokeList[1]);
827*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_HDCPREVOKEKEYLIST, stHDMITx_HDCP_RevocationKey_List, data, Hdcp14RevokeList);
828*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_REVOKKEY_SIZE
829*53ee8cc1Swenshuai.xi #endif
830*53ee8cc1Swenshuai.xi
831*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_RevocationKey_Check()
832*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_HDCP14REVOKEKEYCHK, stHDMITx_HDCP_RevocationKey_Check);
833*53ee8cc1Swenshuai.xi
834*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_IsSRMSignatureValid()
835*53ee8cc1Swenshuai.xi #if 0
836*53ee8cc1Swenshuai.xi #define DEF_HDCP14_SRMSIGN_SIZE 1U //fake function, always return true
837*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP14_SRMSIGN_SIZE;
838*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp14SRMSignData[0], u32DataSize);
839*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp14SRMSignData[1]);
840*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_HDCP14ISSRMSIGNVALID, stHDMITx_HDCP_IsSRMSignatureValid, data, Hdcp14SRMSignData);
841*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_SRMSIGN_SIZE
842*53ee8cc1Swenshuai.xi #endif
843*53ee8cc1Swenshuai.xi
844*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHDCPStatus()
845*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETHDCPSTATUS, stHDMITx_GetHDCPStatus);
846*53ee8cc1Swenshuai.xi
847*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP_StartAuth()
848*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_HDCP14STARTAUTH, stHDMITx_HDCP_StartAuth);
849*53ee8cc1Swenshuai.xi
850*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetINTHDCPStatus()
851*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETINTHDCPSTATUS, stHDMITx_GetINTHDCPStatus);
852*53ee8cc1Swenshuai.xi
853*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetHDCP_PreStatus()
854*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETHDCP14PRESTATUS, stHDMITx_GetHDCP_PreStatus);
855*53ee8cc1Swenshuai.xi
856*53ee8cc1Swenshuai.xi //Mapi_UnHDCPRxControl()
857*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_UNHDCPRXCTRL, stHDMITx_UnHDCPRxControl);
858*53ee8cc1Swenshuai.xi
859*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCPRxFailControl()
860*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_HDCPRXFAILCTRL, stHDMITx_HDCPRxFailControl);
861*53ee8cc1Swenshuai.xi
862*53ee8cc1Swenshuai.xi //undercheck!!!!
863*53ee8cc1Swenshuai.xi #if 0 //no use
864*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetLibVer()
865*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETLIBVER, stHDMITx_GetLibVer, ppVersion, LibVerPt);
866*53ee8cc1Swenshuai.xi #endif
867*53ee8cc1Swenshuai.xi
868*53ee8cc1Swenshuai.xi /*
869*53ee8cc1Swenshuai.xi typedef struct _stHDMITx_GetLibVer
870*53ee8cc1Swenshuai.xi {
871*53ee8cc1Swenshuai.xi const MSIF_Version **ppVersion;
872*53ee8cc1Swenshuai.xi MS_BOOL bReturn;
873*53ee8cc1Swenshuai.xi } stHDMITx_GetLibVer,*pstHDMITx_GetLibVer;
874*53ee8cc1Swenshuai.xi */
875*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetInfo()
876*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HdmiTxInfoPt, HDMI_TX_INFO);
877*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_GETINFO, stHDMITx_GetInfo, UADP_SDT_P2N, pInfo, HdmiTxInfoPt);
878*53ee8cc1Swenshuai.xi
879*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetStatus()
880*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HdmiTxStatusPt, HDMI_TX_Status);
881*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_GETSTATUS, stHDMITx_GetStatus, UADP_SDT_P2N, pStatus, HdmiTxStatusPt);
882*53ee8cc1Swenshuai.xi
883*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetDbgLevels()
884*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETDBGLEVEL, stHDMITx_SetDbgLevels);
885*53ee8cc1Swenshuai.xi
886*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetHPDGpioPin()
887*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETHPDGPIOPIN, stHDMITx_SetHPDGpioPin);
888*53ee8cc1Swenshuai.xi
889*53ee8cc1Swenshuai.xi //Mapi_HDMITx_AnalogTuning()
890*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(AnalogTuningPt, HDMITX_ANALOG_TUNING);
891*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(HDMITX_ANALOGTUNING, stHDMITx_AnalogTuning, UADP_SDT_P2N, pInfo, AnalogTuningPt);
892*53ee8cc1Swenshuai.xi
893*53ee8cc1Swenshuai.xi //Mapi_HDMITx_ForceHDMIOutputMode()
894*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_FORCEHDMIOUTPUTMODE, stHDMITx_ForceHDMIOutputMode);
895*53ee8cc1Swenshuai.xi
896*53ee8cc1Swenshuai.xi //Mapi_HDMITx_ForceHDMIOutputColorFormat()
897*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_FORCEHDMIOUTPUTCOLORFMT, stHDMITx_ForceHDMIOutputColorFormat);
898*53ee8cc1Swenshuai.xi
899*53ee8cc1Swenshuai.xi //Mapi_HDMITx_DisableRegWrite()
900*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_DISABLEREGWRITE, stHDMITx_DisableRegWrite);
901*53ee8cc1Swenshuai.xi
902*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEDIDPhyAdr()
903*53ee8cc1Swenshuai.xi #if 0
904*53ee8cc1Swenshuai.xi #define DEF_EDID_PHYADDR_SIZE 2U
905*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE;
906*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_EdidPhyAddrData[0], u32DataSize);
907*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_EdidPhyAddrData[1]);
908*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETEDIDPHYADR, stHDMITx_GetEDIDPhyAdr, pdata, EdidPhyAddrData);
909*53ee8cc1Swenshuai.xi #undef DEF_EDID_PHYADDR_SIZE
910*53ee8cc1Swenshuai.xi #endif
911*53ee8cc1Swenshuai.xi
912*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetCECOnOff()
913*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETCECONOFF, stHDMITx_SetCECOnOff);
914*53ee8cc1Swenshuai.xi
915*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetCECStatus()
916*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GETCECSTATUS, stHDMITx_GetCECStatus);
917*53ee8cc1Swenshuai.xi
918*53ee8cc1Swenshuai.xi //Mapi_HDMITx_EdidChecking()
919*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_EDIDCHECKING, stHDMITx_EdidChecking);
920*53ee8cc1Swenshuai.xi
921*53ee8cc1Swenshuai.xi //Mapi_HDMITx_RxBypass_Mode()
922*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_RXBYPASSMODE, stHDMITx_RxBypass_Mode);
923*53ee8cc1Swenshuai.xi
924*53ee8cc1Swenshuai.xi //Mapi_HDMITx_Disable_RxBypass()
925*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_DISABLERXBYPASS, stHDMITx_Disable_RxBypass);
926*53ee8cc1Swenshuai.xi
927*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetAksv2R0Interval()
928*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETAKSV2R0INTERVAL, stHDMITx_SetAksv2R0Interval);
929*53ee8cc1Swenshuai.xi
930*53ee8cc1Swenshuai.xi //Mapi_HDMITx_IsHDCPRxValid()
931*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_ISHDCPRXVALID, stHDMITx_IsHDCPRxValid);
932*53ee8cc1Swenshuai.xi
933*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetChipCaps()
934*53ee8cc1Swenshuai.xi #if 0
935*53ee8cc1Swenshuai.xi #define DEF_HDMITX_CHIPCAP_SIZE 1U
936*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U32) * DEF_HDMITX_CHIPCAP_SIZE;
937*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_HdmiChipCapInfo[0], u32DataSize);
938*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_HdmiChipCapInfo[1]);
939*53ee8cc1Swenshuai.xi UADP_SPT_NAME1NXT(HDMITX_GETCHIPCAPS, stHDMITx_GetChipCaps, pRet, HdmiChipCapInfo);
940*53ee8cc1Swenshuai.xi #undef DEF_HDMITX_CHIPCAP_SIZE
941*53ee8cc1Swenshuai.xi #endif
942*53ee8cc1Swenshuai.xi
943*53ee8cc1Swenshuai.xi //Mapi_HDMITx_SetPowerState()
944*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETPWRSTATE, stHDMITx_SetPowerState);
945*53ee8cc1Swenshuai.xi
946*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetEdidDataBlocks()
947*53ee8cc1Swenshuai.xi #if 0
948*53ee8cc1Swenshuai.xi #define DEF_EDID_BATABLK_SIZE 128U
949*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_EDID_BATABLK_SIZE;
950*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_SinkEDIDDataBlk[0], u32DataSize);
951*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_SinkEDIDDataBlk[1]);
952*53ee8cc1Swenshuai.xi UADP_SPT_NAME2NXT(HDMITX_GETEDIDDATABLKS, stHDMITx_GetEdidDataBlocks, pu8Data, SinkEDIDDataBlk, pu32RealLen, DataBlkRetLenPt);
953*53ee8cc1Swenshuai.xi #undef DEF_EDID_BATABLK_SIZE
954*53ee8cc1Swenshuai.xi #endif
955*53ee8cc1Swenshuai.xi
956*53ee8cc1Swenshuai.xi //Mapi_HDMITx_GetKSVList()
957*53ee8cc1Swenshuai.xi #if 0
958*53ee8cc1Swenshuai.xi #define DEF_KSVLIST_SIZE 5*127U
959*53ee8cc1Swenshuai.xi #define DEF_HDCP14_BSTATUS_SIZE 2U
960*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE;
961*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_SinkBstatusData[0], u32DataSize);
962*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_SinkBstatusData[1]);
963*53ee8cc1Swenshuai.xi
964*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_KSVLIST_SIZE;
965*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_SinkKSVList[0], u32DataSize);
966*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_SinkKSVList[1]);
967*53ee8cc1Swenshuai.xi
968*53ee8cc1Swenshuai.xi UADP_SPT_NAME3NXT(HDMITX_GETKSVLIST, stHDMITx_GetKSVList, pu8Bstatus, SinkBstatusData, pu8KSVList, SinkKSVList, pu16KSVLength, KSVListLenPt);
969*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_BSTATUS_SIZE
970*53ee8cc1Swenshuai.xi #undef DEF_KSVLIST_SIZE
971*53ee8cc1Swenshuai.xi #endif
972*53ee8cc1Swenshuai.xi
973*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2AccessX74()
974*53ee8cc1Swenshuai.xi #if 0
975*53ee8cc1Swenshuai.xi #define DEF_HDCP22_RDBUFF_SIZE 534U //AKE_Send_Cert
976*53ee8cc1Swenshuai.xi #define DEF_HDCP22_WRBUFF_SIZE 129U //AKE_No_StoredKm
977*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP22_RDBUFF_SIZE;
978*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp22x74RdData[0], u32DataSize);
979*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp22x74RdData[1]);
980*53ee8cc1Swenshuai.xi
981*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP22_WRBUFF_SIZE;
982*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp22x74WrData[0], u32DataSize);
983*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp22x74RdData[1]);
984*53ee8cc1Swenshuai.xi
985*53ee8cc1Swenshuai.xi UADP_SPT_NAME2NXT(HDMITX_HDCP2ACCESSX74, stHDMITx_HDCP2AccessX74, pu8RdBuf, Hdcp22x74RdData, pu8WRBuff, Hdcp22x74WrData);
986*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_RDBUFF_SIZE
987*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_WRBUFF_SIZE
988*53ee8cc1Swenshuai.xi #endif
989*53ee8cc1Swenshuai.xi
990*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxInit()
991*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_HDCP2TXINIT, stHDMITx_HDCP2TxInit);
992*53ee8cc1Swenshuai.xi
993*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxEnableEncrypt()
994*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_HDCP2TXENABLEENC, stHDMITx_HDCP2TxEnableEncrypt);
995*53ee8cc1Swenshuai.xi
996*53ee8cc1Swenshuai.xi //Mapi_HDMITx_HDCP2TxFillCipherKey()
997*53ee8cc1Swenshuai.xi #if 0
998*53ee8cc1Swenshuai.xi #define DEF_HDCP22_RIV_SIZE 8U
999*53ee8cc1Swenshuai.xi #define DEF_HDCP22_KS_SIZE 16U
1000*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP22_RIV_SIZE;
1001*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp22RivData[0], u32DataSize);
1002*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp22RivData[1]);
1003*53ee8cc1Swenshuai.xi
1004*53ee8cc1Swenshuai.xi u32DataSize = sizeof(MS_U8) * DEF_HDCP22_KS_SIZE;
1005*53ee8cc1Swenshuai.xi UADP_SPT_BGN(&spt_Hdcp22KsData[0], u32DataSize);
1006*53ee8cc1Swenshuai.xi UADP_SPT_FIN(&spt_Hdcp22KsData[1]);
1007*53ee8cc1Swenshuai.xi
1008*53ee8cc1Swenshuai.xi UADP_SPT_NAME2NXT(HDMITx_HDCP2TXFILLCIPHERKEY, stHDMITx_HDCP2TxFillCipherKey, pu8Riv, Hdcp22RivData, pu8KsXORLC128, Hdcp22KsData);
1009*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_KS_SIZE
1010*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_RIV_SIZE
1011*53ee8cc1Swenshuai.xi #endif
1012*53ee8cc1Swenshuai.xi
1013*53ee8cc1Swenshuai.xi //MApi_HDMITx_ColorandRange_Transform
1014*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_COLORRANGE_TRANSFORM, stHDMITX_COLOR_AND_RANGE_TRANSFORM_PARAMETERS);
1015*53ee8cc1Swenshuai.xi
1016*53ee8cc1Swenshuai.xi //MApi_HDMITx_SSC_Enable
1017*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETSSCENABLE, stHDMITX_SSCENABLE);
1018*53ee8cc1Swenshuai.xi
1019*53ee8cc1Swenshuai.xi //MApi_HDMITx_SetAVIInfoExtColorimetry
1020*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_SETCOLORIMETRY, stHDMITX_SET_COLORIMETRY);
1021*53ee8cc1Swenshuai.xi
1022*53ee8cc1Swenshuai.xi //MApi_HDMITx_GetFullRxStatus
1023*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_GET_FULL_RX_STATUS, stHDMITX_GET_FULL_RX_STATUS);
1024*53ee8cc1Swenshuai.xi
1025*53ee8cc1Swenshuai.xi //MApi_HDMITx_GetFullRxStatus
1026*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(HDMITX_CHECK_LEGAL_TIMING, stHDMITX_CHECK_LEGAL_TIMING);
1027*53ee8cc1Swenshuai.xi
1028*53ee8cc1Swenshuai.xi *pIoctl= (FUtopiaIOctl)HDMITX_adp_Ioctl;
1029*53ee8cc1Swenshuai.xi
1030*53ee8cc1Swenshuai.xi return 0;
1031*53ee8cc1Swenshuai.xi
1032*53ee8cc1Swenshuai.xi }
1033*53ee8cc1Swenshuai.xi #define EN_HDMITX_ADP_LOG 0
HDMITX_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)1034*53ee8cc1Swenshuai.xi MS_U32 HDMITX_adp_Ioctl(void *pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
1035*53ee8cc1Swenshuai.xi {
1036*53ee8cc1Swenshuai.xi MS_U32 ulReturnValue = UTOPIA_STATUS_SUCCESS;
1037*53ee8cc1Swenshuai.xi char usbuffer_arg[2];
1038*53ee8cc1Swenshuai.xi //MS_U32 u32DataSize = 0x00;
1039*53ee8cc1Swenshuai.xi
1040*53ee8cc1Swenshuai.xi switch(u32Cmd)
1041*53ee8cc1Swenshuai.xi {
1042*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_INIT:
1043*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1044*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_INIT\r\n");
1045*53ee8cc1Swenshuai.xi #endif
1046*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_INIT, spt_HDMITX_INIT, usbuffer_arg, sizeof(usbuffer_arg));
1047*53ee8cc1Swenshuai.xi break;
1048*53ee8cc1Swenshuai.xi
1049*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_EXIT:
1050*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1051*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_EXIT\r\n");
1052*53ee8cc1Swenshuai.xi #endif
1053*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_EXIT, spt_HDMITX_EXIT, usbuffer_arg, sizeof(usbuffer_arg));
1054*53ee8cc1Swenshuai.xi break;
1055*53ee8cc1Swenshuai.xi
1056*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_TURNONOFF:
1057*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1058*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_TURNONOFF\r\n");
1059*53ee8cc1Swenshuai.xi #endif
1060*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_TURNONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1061*53ee8cc1Swenshuai.xi break;
1062*53ee8cc1Swenshuai.xi
1063*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_ENABLEPACKETGEN:
1064*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1065*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_ENABLEPACKETGEN\r\n");
1066*53ee8cc1Swenshuai.xi #endif
1067*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_ENPKTGEN, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1068*53ee8cc1Swenshuai.xi break;
1069*53ee8cc1Swenshuai.xi
1070*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETHDMITXMODE:
1071*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1072*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETHDMITXMODE\r\n");
1073*53ee8cc1Swenshuai.xi #endif
1074*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETHDMITXMODE, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1075*53ee8cc1Swenshuai.xi break;
1076*53ee8cc1Swenshuai.xi
1077*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETHDMITXMODE_CD:
1078*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1079*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETHDMITXMODE_CD\r\n");
1080*53ee8cc1Swenshuai.xi #endif
1081*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETHDMITXMODECD, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1082*53ee8cc1Swenshuai.xi break;
1083*53ee8cc1Swenshuai.xi
1084*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETTMDSONOFF:
1085*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1086*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETTMDSONOFF\r\n");
1087*53ee8cc1Swenshuai.xi #endif
1088*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETTMDSONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1089*53ee8cc1Swenshuai.xi break;
1090*53ee8cc1Swenshuai.xi
1091*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_DISABLETMDSCTRL:
1092*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1093*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_DISABLETMDSCTRL\r\n");
1094*53ee8cc1Swenshuai.xi #endif
1095*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_DISABLETMDSCTRL, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1096*53ee8cc1Swenshuai.xi break;
1097*53ee8cc1Swenshuai.xi
1098*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETRBCHANNELSWAP:
1099*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1100*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETRBCHANNELSWAP\r\n");
1101*53ee8cc1Swenshuai.xi #endif
1102*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETRBCHSWAP, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1103*53ee8cc1Swenshuai.xi break;
1104*53ee8cc1Swenshuai.xi
1105*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_EXHIBIT:
1106*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1107*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_EXHIBIT\r\n");
1108*53ee8cc1Swenshuai.xi #endif
1109*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, pArgs);
1110*53ee8cc1Swenshuai.xi break;
1111*53ee8cc1Swenshuai.xi
1112*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRXSTATUS:
1113*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1114*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRXSTATUS\r\n");
1115*53ee8cc1Swenshuai.xi #endif
1116*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETRXSTATUS, spt_HDMITX_GETRXSTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1117*53ee8cc1Swenshuai.xi break;
1118*53ee8cc1Swenshuai.xi
1119*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRXDCINFOFROMEDID:
1120*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1121*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRXDCINFOFROMEDID\r\n");
1122*53ee8cc1Swenshuai.xi #endif
1123*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETDCINFOFROMEDID, spt_HDMITX_GETDCINFOFROMEDID, usbuffer_arg, sizeof(usbuffer_arg));
1124*53ee8cc1Swenshuai.xi break;
1125*53ee8cc1Swenshuai.xi
1126*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRXVIDEODORMATFROMEDID:
1127*53ee8cc1Swenshuai.xi {
1128*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1129*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRXVIDEODORMATFROMEDID\r\n");
1130*53ee8cc1Swenshuai.xi #endif
1131*53ee8cc1Swenshuai.xi stHDMITx_GetRxVideoFormatFromEDID stHDMITxArgs = {0};
1132*53ee8cc1Swenshuai.xi
1133*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1134*53ee8cc1Swenshuai.xi {
1135*53ee8cc1Swenshuai.xi stHDMITx_GetRxVideoFormatFromEDID_Compat stCompatHDMITxArgs = {0};
1136*53ee8cc1Swenshuai.xi
1137*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxVideoFormatFromEDID_Compat));
1138*53ee8cc1Swenshuai.xi
1139*53ee8cc1Swenshuai.xi //copy Arguments
1140*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8)*stCompatHDMITxArgs.u8BufSize);
1141*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8)*stHDMITxArgs.u8BufSize);
1142*53ee8cc1Swenshuai.xi stHDMITxArgs.u8BufSize = stCompatHDMITxArgs.u8BufSize;
1143*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1144*53ee8cc1Swenshuai.xi
1145*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1146*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1147*53ee8cc1Swenshuai.xi
1148*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Buffer, stHDMITxArgs.pu8Buffer, sizeof(MS_U8)*stCompatHDMITxArgs.u8BufSize);
1149*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetRxVideoFormatFromEDID_Compat));
1150*53ee8cc1Swenshuai.xi
1151*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1152*53ee8cc1Swenshuai.xi }
1153*53ee8cc1Swenshuai.xi else
1154*53ee8cc1Swenshuai.xi {
1155*53ee8cc1Swenshuai.xi void *pData = NULL;
1156*53ee8cc1Swenshuai.xi
1157*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxVideoFormatFromEDID));
1158*53ee8cc1Swenshuai.xi
1159*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Buffer;
1160*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1161*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Buffer, pData, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1162*53ee8cc1Swenshuai.xi
1163*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1164*53ee8cc1Swenshuai.xi
1165*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1166*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1167*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = pData;
1168*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetRxVideoFormatFromEDID));
1169*53ee8cc1Swenshuai.xi }
1170*53ee8cc1Swenshuai.xi }
1171*53ee8cc1Swenshuai.xi break;
1172*53ee8cc1Swenshuai.xi
1173*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETVICLISTFROMEDID:
1174*53ee8cc1Swenshuai.xi {
1175*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1176*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETVICLISTFROMEDID\r\n");
1177*53ee8cc1Swenshuai.xi #endif
1178*53ee8cc1Swenshuai.xi stHDMITx_GetVICListFromEDID stHDMITxArgs = {0};
1179*53ee8cc1Swenshuai.xi
1180*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1181*53ee8cc1Swenshuai.xi {
1182*53ee8cc1Swenshuai.xi stHDMITx_GetVICListFromEDID_Compat stCompatHDMITxArgs = {0};
1183*53ee8cc1Swenshuai.xi
1184*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetVICListFromEDID_Compat));
1185*53ee8cc1Swenshuai.xi
1186*53ee8cc1Swenshuai.xi //copy arguments
1187*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.u8BufSize);
1188*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8) *stCompatHDMITxArgs.u8BufSize);
1189*53ee8cc1Swenshuai.xi stHDMITxArgs.u8BufSize = stCompatHDMITxArgs.u8BufSize;
1190*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1191*53ee8cc1Swenshuai.xi
1192*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1193*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1194*53ee8cc1Swenshuai.xi
1195*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8) *stCompatHDMITxArgs.u8BufSize);
1196*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetVICListFromEDID_Compat));
1197*53ee8cc1Swenshuai.xi
1198*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1199*53ee8cc1Swenshuai.xi }
1200*53ee8cc1Swenshuai.xi else
1201*53ee8cc1Swenshuai.xi {
1202*53ee8cc1Swenshuai.xi void *pData = NULL;
1203*53ee8cc1Swenshuai.xi
1204*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetVICListFromEDID));
1205*53ee8cc1Swenshuai.xi
1206*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Buffer;
1207*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1208*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Buffer, pData, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1209*53ee8cc1Swenshuai.xi
1210*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1211*53ee8cc1Swenshuai.xi
1212*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1213*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1214*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = pData;
1215*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetVICListFromEDID));
1216*53ee8cc1Swenshuai.xi
1217*53ee8cc1Swenshuai.xi }
1218*53ee8cc1Swenshuai.xi }
1219*53ee8cc1Swenshuai.xi break;
1220*53ee8cc1Swenshuai.xi
1221*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETDATABLOCKLENGTHFROMEDID:
1222*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1223*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETDATABLOCKLENGTHFROMEDID\r\n");
1224*53ee8cc1Swenshuai.xi #endif
1225*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETDATABLKLENFROMEDID, spt_HDMITX_GETDATABLKLENFROMEDID, usbuffer_arg, sizeof(usbuffer_arg));
1226*53ee8cc1Swenshuai.xi break;
1227*53ee8cc1Swenshuai.xi
1228*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETCOLORFORMATFROMEDID:
1229*53ee8cc1Swenshuai.xi {
1230*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1231*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETCOLORFORMATFROMEDID\r\n");
1232*53ee8cc1Swenshuai.xi #endif
1233*53ee8cc1Swenshuai.xi stHDMITx_GetColorFormatFromEDID stHDMITxArgs = {0};
1234*53ee8cc1Swenshuai.xi
1235*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1236*53ee8cc1Swenshuai.xi {
1237*53ee8cc1Swenshuai.xi stHDMITx_GetColorFormatFromEDID_Compat stCompatHDMITxArgs = {0};
1238*53ee8cc1Swenshuai.xi
1239*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetColorFormatFromEDID_Compat));
1240*53ee8cc1Swenshuai.xi
1241*53ee8cc1Swenshuai.xi stHDMITxArgs.pColorFmt = malloc(sizeof(HDMITX_EDID_COLOR_FORMAT));
1242*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pColorFmt, stCompatHDMITxArgs.pColorFmt, sizeof(HDMITX_EDID_COLOR_FORMAT));
1243*53ee8cc1Swenshuai.xi stHDMITxArgs.timing = stCompatHDMITxArgs.timing;
1244*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1245*53ee8cc1Swenshuai.xi
1246*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1247*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1248*53ee8cc1Swenshuai.xi
1249*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pColorFmt, stHDMITxArgs.pColorFmt, sizeof(HDMITX_EDID_COLOR_FORMAT));
1250*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetColorFormatFromEDID_Compat));
1251*53ee8cc1Swenshuai.xi
1252*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pColorFmt);
1253*53ee8cc1Swenshuai.xi }
1254*53ee8cc1Swenshuai.xi else
1255*53ee8cc1Swenshuai.xi {
1256*53ee8cc1Swenshuai.xi void *pData = NULL;
1257*53ee8cc1Swenshuai.xi
1258*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetColorFormatFromEDID));
1259*53ee8cc1Swenshuai.xi
1260*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pColorFmt;
1261*53ee8cc1Swenshuai.xi stHDMITxArgs.pColorFmt = malloc(sizeof(HDMITX_EDID_COLOR_FORMAT));
1262*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pColorFmt, pData, sizeof(HDMITX_EDID_COLOR_FORMAT));
1263*53ee8cc1Swenshuai.xi
1264*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1265*53ee8cc1Swenshuai.xi
1266*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pColorFmt, sizeof(HDMITX_EDID_COLOR_FORMAT));
1267*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pColorFmt);
1268*53ee8cc1Swenshuai.xi stHDMITxArgs.pColorFmt = pData;
1269*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetColorFormatFromEDID));
1270*53ee8cc1Swenshuai.xi }
1271*53ee8cc1Swenshuai.xi //ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETCOLORFMTFROMEDID, spt_HDMITX_GETCOLORFMTFROMEDID, usbuffer_arg, sizeof(usbuffer_arg));
1272*53ee8cc1Swenshuai.xi }
1273*53ee8cc1Swenshuai.xi break;
1274*53ee8cc1Swenshuai.xi
1275*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRXAUDIOFORMATFROMEDID:
1276*53ee8cc1Swenshuai.xi {
1277*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1278*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRXAUDIOFORMATFROMEDID\r\n");
1279*53ee8cc1Swenshuai.xi #endif
1280*53ee8cc1Swenshuai.xi stHDMITx_GetRxAudioFormatFromEDID stHDMITxArgs = {0};
1281*53ee8cc1Swenshuai.xi
1282*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1283*53ee8cc1Swenshuai.xi {
1284*53ee8cc1Swenshuai.xi stHDMITx_GetRxAudioFormatFromEDID_Compat stCompatHDMITxArgs = {0};
1285*53ee8cc1Swenshuai.xi
1286*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxAudioFormatFromEDID_Compat));
1287*53ee8cc1Swenshuai.xi
1288*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8)*stCompatHDMITxArgs.u8BufSize);
1289*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8)*stCompatHDMITxArgs.u8BufSize);
1290*53ee8cc1Swenshuai.xi stHDMITxArgs.u8BufSize = stCompatHDMITxArgs.u8BufSize;
1291*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1292*53ee8cc1Swenshuai.xi
1293*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1294*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1295*53ee8cc1Swenshuai.xi
1296*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Buffer, stHDMITxArgs.pu8Buffer, sizeof(MS_U8)*stCompatHDMITxArgs.u8BufSize);
1297*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetRxAudioFormatFromEDID_Compat));
1298*53ee8cc1Swenshuai.xi
1299*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1300*53ee8cc1Swenshuai.xi }
1301*53ee8cc1Swenshuai.xi else
1302*53ee8cc1Swenshuai.xi {
1303*53ee8cc1Swenshuai.xi void *pData = NULL;
1304*53ee8cc1Swenshuai.xi
1305*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxAudioFormatFromEDID));
1306*53ee8cc1Swenshuai.xi
1307*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Buffer;
1308*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1309*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Buffer, pData, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1310*53ee8cc1Swenshuai.xi
1311*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1312*53ee8cc1Swenshuai.xi
1313*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) *stHDMITxArgs.u8BufSize);
1314*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1315*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = pData;
1316*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetRxAudioFormatFromEDID));
1317*53ee8cc1Swenshuai.xi
1318*53ee8cc1Swenshuai.xi }
1319*53ee8cc1Swenshuai.xi }
1320*53ee8cc1Swenshuai.xi break;
1321*53ee8cc1Swenshuai.xi
1322*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_EDID_HDMISUPPORT:
1323*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1324*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_EDID_HDMISUPPORT\r\n");
1325*53ee8cc1Swenshuai.xi #endif
1326*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_EDIDHDMISUPPORT, spt_HDMITX_EDIDHDMISUPPORT, usbuffer_arg, sizeof(usbuffer_arg));
1327*53ee8cc1Swenshuai.xi break;
1328*53ee8cc1Swenshuai.xi
1329*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRXIDMANUFACTURERNAME:
1330*53ee8cc1Swenshuai.xi {
1331*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1332*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRXIDMANUFACTURERNAME\r\n");
1333*53ee8cc1Swenshuai.xi #endif
1334*53ee8cc1Swenshuai.xi stHDMITx_GetRxIDManufacturerName stHDMITxArgs = {0};
1335*53ee8cc1Swenshuai.xi #define DEF_EDID_MANUFACTORID_SIZE 3U
1336*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1337*53ee8cc1Swenshuai.xi {
1338*53ee8cc1Swenshuai.xi stHDMITx_GetRxIDManufacturerName_Compat stCompatHDMITxArgs = {0};
1339*53ee8cc1Swenshuai.xi
1340*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxIDManufacturerName_Compat));
1341*53ee8cc1Swenshuai.xi
1342*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1343*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1344*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1345*53ee8cc1Swenshuai.xi
1346*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1347*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1348*53ee8cc1Swenshuai.xi
1349*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Buffer, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1350*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetRxIDManufacturerName_Compat));
1351*53ee8cc1Swenshuai.xi
1352*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1353*53ee8cc1Swenshuai.xi }
1354*53ee8cc1Swenshuai.xi else
1355*53ee8cc1Swenshuai.xi {
1356*53ee8cc1Swenshuai.xi void *pData = NULL;
1357*53ee8cc1Swenshuai.xi
1358*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetRxIDManufacturerName));
1359*53ee8cc1Swenshuai.xi
1360*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Buffer;
1361*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1362*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Buffer, pData, sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1363*53ee8cc1Swenshuai.xi
1364*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1365*53ee8cc1Swenshuai.xi
1366*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_MANUFACTORID_SIZE);
1367*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1368*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = pData;
1369*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetRxIDManufacturerName));
1370*53ee8cc1Swenshuai.xi
1371*53ee8cc1Swenshuai.xi }
1372*53ee8cc1Swenshuai.xi #undef DEF_EDID_MANUFACTORID_SIZE
1373*53ee8cc1Swenshuai.xi }
1374*53ee8cc1Swenshuai.xi break;
1375*53ee8cc1Swenshuai.xi
1376*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETEDIDDATA:
1377*53ee8cc1Swenshuai.xi {
1378*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1379*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETEDIDDATA\r\n");
1380*53ee8cc1Swenshuai.xi #endif
1381*53ee8cc1Swenshuai.xi stHDMITx_GetEDIDData stHDMITxArgs = {0};
1382*53ee8cc1Swenshuai.xi #define DEF_EDID_BLOCK_SIZE 128U
1383*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1384*53ee8cc1Swenshuai.xi {
1385*53ee8cc1Swenshuai.xi stHDMITx_GetEDIDData_Compat stCompatHDMITxArgs = {0};
1386*53ee8cc1Swenshuai.xi
1387*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetEDIDData_Compat));
1388*53ee8cc1Swenshuai.xi
1389*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1390*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Buffer, stCompatHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1391*53ee8cc1Swenshuai.xi stHDMITxArgs.BlockIdx = stCompatHDMITxArgs.BlockIdx;
1392*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1393*53ee8cc1Swenshuai.xi
1394*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1395*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1396*53ee8cc1Swenshuai.xi
1397*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Buffer, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1398*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetEDIDData_Compat));
1399*53ee8cc1Swenshuai.xi
1400*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1401*53ee8cc1Swenshuai.xi }
1402*53ee8cc1Swenshuai.xi else
1403*53ee8cc1Swenshuai.xi {
1404*53ee8cc1Swenshuai.xi void *pData = NULL;
1405*53ee8cc1Swenshuai.xi
1406*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetEDIDData));
1407*53ee8cc1Swenshuai.xi
1408*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Buffer;
1409*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = malloc(sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1410*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Buffer, pData, sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1411*53ee8cc1Swenshuai.xi
1412*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1413*53ee8cc1Swenshuai.xi
1414*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Buffer, sizeof(MS_U8) * DEF_EDID_BLOCK_SIZE);
1415*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Buffer);
1416*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Buffer = pData;
1417*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetEDIDData));
1418*53ee8cc1Swenshuai.xi
1419*53ee8cc1Swenshuai.xi
1420*53ee8cc1Swenshuai.xi }
1421*53ee8cc1Swenshuai.xi #undef DEF_EDID_BLOCK_SIZE
1422*53ee8cc1Swenshuai.xi }
1423*53ee8cc1Swenshuai.xi break;
1424*53ee8cc1Swenshuai.xi
1425*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETRX3DSTRUCTUREFROMEDID:
1426*53ee8cc1Swenshuai.xi {
1427*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1428*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETRX3DSTRUCTUREFROMEDID\r\n");
1429*53ee8cc1Swenshuai.xi #endif
1430*53ee8cc1Swenshuai.xi stHDMITx_GetRx3DStructureFromEDID stHDMITxArgs = {0};
1431*53ee8cc1Swenshuai.xi
1432*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1433*53ee8cc1Swenshuai.xi {
1434*53ee8cc1Swenshuai.xi stHDMITx_GetRx3DStructureFromEDID_Compat stCompatHDMITxArgs = {0};
1435*53ee8cc1Swenshuai.xi
1436*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetRx3DStructureFromEDID_Compat));
1437*53ee8cc1Swenshuai.xi
1438*53ee8cc1Swenshuai.xi stHDMITxArgs.p3DStructure = malloc(sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1439*53ee8cc1Swenshuai.xi
1440*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.p3DStructure, stCompatHDMITxArgs.p3DStructure, sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1441*53ee8cc1Swenshuai.xi stHDMITxArgs.timing = stCompatHDMITxArgs.timing;
1442*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1443*53ee8cc1Swenshuai.xi
1444*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1445*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1446*53ee8cc1Swenshuai.xi
1447*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.p3DStructure, stHDMITxArgs.p3DStructure, sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1448*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetRx3DStructureFromEDID_Compat));
1449*53ee8cc1Swenshuai.xi
1450*53ee8cc1Swenshuai.xi free(stHDMITxArgs.p3DStructure);
1451*53ee8cc1Swenshuai.xi }
1452*53ee8cc1Swenshuai.xi else
1453*53ee8cc1Swenshuai.xi {
1454*53ee8cc1Swenshuai.xi void *pData = NULL;
1455*53ee8cc1Swenshuai.xi
1456*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetRx3DStructureFromEDID));
1457*53ee8cc1Swenshuai.xi
1458*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.p3DStructure;
1459*53ee8cc1Swenshuai.xi stHDMITxArgs.p3DStructure = malloc(sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1460*53ee8cc1Swenshuai.xi
1461*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.p3DStructure, pData, sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1462*53ee8cc1Swenshuai.xi
1463*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1464*53ee8cc1Swenshuai.xi
1465*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.p3DStructure, sizeof(HDMITX_EDID_3D_STRUCTURE_ALL));
1466*53ee8cc1Swenshuai.xi free(stHDMITxArgs.p3DStructure);
1467*53ee8cc1Swenshuai.xi stHDMITxArgs.p3DStructure = pData;
1468*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetRx3DStructureFromEDID));
1469*53ee8cc1Swenshuai.xi
1470*53ee8cc1Swenshuai.xi }
1471*53ee8cc1Swenshuai.xi }
1472*53ee8cc1Swenshuai.xi break;
1473*53ee8cc1Swenshuai.xi
1474*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_PKT_USER_DEFINE_CLEAR:
1475*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1476*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_PKT_USER_DEFINE_CLEAR\r\n");
1477*53ee8cc1Swenshuai.xi #endif
1478*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, pArgs);
1479*53ee8cc1Swenshuai.xi break;
1480*53ee8cc1Swenshuai.xi
1481*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_PKT_USER_DEFINE:
1482*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1483*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_PKT_USER_DEFINE\r\n");
1484*53ee8cc1Swenshuai.xi #endif
1485*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_PKTUSERDEF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1486*53ee8cc1Swenshuai.xi break;
1487*53ee8cc1Swenshuai.xi
1488*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_PKT_CONTENT_DEFINE:
1489*53ee8cc1Swenshuai.xi {
1490*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1491*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_PKT_CONTENT_DEFINE\r\n");
1492*53ee8cc1Swenshuai.xi #endif
1493*53ee8cc1Swenshuai.xi stHDMITx_PKT_Content_Define stHDMITxArgs = {0};
1494*53ee8cc1Swenshuai.xi
1495*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1496*53ee8cc1Swenshuai.xi {
1497*53ee8cc1Swenshuai.xi stHDMITx_PKT_Content_Define_Compat stCompatHDMITxArgs = {0};
1498*53ee8cc1Swenshuai.xi
1499*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_PKT_Content_Define_Compat));
1500*53ee8cc1Swenshuai.xi
1501*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.length);
1502*53ee8cc1Swenshuai.xi
1503*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.data, stCompatHDMITxArgs.data, sizeof(MS_U8) *stCompatHDMITxArgs.length);
1504*53ee8cc1Swenshuai.xi stHDMITxArgs.packet_type = stCompatHDMITxArgs.packet_type;
1505*53ee8cc1Swenshuai.xi stHDMITxArgs.length = stCompatHDMITxArgs.length;
1506*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1507*53ee8cc1Swenshuai.xi
1508*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1509*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1510*53ee8cc1Swenshuai.xi
1511*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.data, stHDMITxArgs.data, sizeof(MS_U8) *stCompatHDMITxArgs.length);
1512*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_PKT_Content_Define_Compat));
1513*53ee8cc1Swenshuai.xi
1514*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1515*53ee8cc1Swenshuai.xi }
1516*53ee8cc1Swenshuai.xi else
1517*53ee8cc1Swenshuai.xi {
1518*53ee8cc1Swenshuai.xi void *pData = NULL;
1519*53ee8cc1Swenshuai.xi
1520*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_PKT_Content_Define));
1521*53ee8cc1Swenshuai.xi
1522*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.data;
1523*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stHDMITxArgs.length);
1524*53ee8cc1Swenshuai.xi
1525*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.data, pData, sizeof(MS_U8) *stHDMITxArgs.length);
1526*53ee8cc1Swenshuai.xi
1527*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1528*53ee8cc1Swenshuai.xi
1529*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.data, sizeof(MS_U8) * stHDMITxArgs.length);
1530*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1531*53ee8cc1Swenshuai.xi stHDMITxArgs.data = pData;
1532*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_PKT_Content_Define));
1533*53ee8cc1Swenshuai.xi }
1534*53ee8cc1Swenshuai.xi }
1535*53ee8cc1Swenshuai.xi break;
1536*53ee8cc1Swenshuai.xi
1537*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOONOFF:
1538*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1539*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETVIDEOONOFF\r\n");
1540*53ee8cc1Swenshuai.xi #endif
1541*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITx_SETVIDONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1542*53ee8cc1Swenshuai.xi break;
1543*53ee8cc1Swenshuai.xi
1544*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETCOLORFORMAT:
1545*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1546*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETCOLORFORMAT\r\n");
1547*53ee8cc1Swenshuai.xi #endif
1548*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETCOLORFMT, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1549*53ee8cc1Swenshuai.xi break;
1550*53ee8cc1Swenshuai.xi
1551*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SET_VS_INFOFRAME:
1552*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1553*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SET_VS_INFOFRAME\r\n");
1554*53ee8cc1Swenshuai.xi #endif
1555*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVSINFOFRAME, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1556*53ee8cc1Swenshuai.xi break;
1557*53ee8cc1Swenshuai.xi
1558*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOOUTPUTTIMING:
1559*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1560*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETVIDEOOUTPUTTIMING\r\n");
1561*53ee8cc1Swenshuai.xi #endif
1562*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVIDOUTPUTTIMING, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1563*53ee8cc1Swenshuai.xi break;
1564*53ee8cc1Swenshuai.xi
1565*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOOUTPUTASEPCTRATIO:
1566*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1567*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETVIDEOOUTPUTASEPCTRATIO\r\n");
1568*53ee8cc1Swenshuai.xi #endif
1569*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVIDOUTPUTASPECTRATIO, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1570*53ee8cc1Swenshuai.xi break;
1571*53ee8cc1Swenshuai.xi
1572*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD:
1573*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1574*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD\r\n");
1575*53ee8cc1Swenshuai.xi #endif
1576*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVIDOUTPUTOVERSCANAFD, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1577*53ee8cc1Swenshuai.xi break;
1578*53ee8cc1Swenshuai.xi
1579*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAUDIOONOFF:
1580*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1581*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAUDIOONOFF\r\n");
1582*53ee8cc1Swenshuai.xi #endif
1583*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAUDONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1584*53ee8cc1Swenshuai.xi break;
1585*53ee8cc1Swenshuai.xi
1586*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAUDIOFREQUENCY:
1587*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1588*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAUDIOFREQUENCY\r\n");
1589*53ee8cc1Swenshuai.xi #endif
1590*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAUDFREQ, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1591*53ee8cc1Swenshuai.xi break;
1592*53ee8cc1Swenshuai.xi
1593*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD_II:
1594*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1595*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETVIDEOOUTPUTOVERSCAN_AFD_II\r\n");
1596*53ee8cc1Swenshuai.xi #endif
1597*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVIDOUTPUTOVERSCANAFD_II, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1598*53ee8cc1Swenshuai.xi break;
1599*53ee8cc1Swenshuai.xi
1600*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAUDIOCONFIGURATION:
1601*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1602*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAUDIOCONFIGURATION\r\n");
1603*53ee8cc1Swenshuai.xi #endif
1604*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAUDCONFIG, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1605*53ee8cc1Swenshuai.xi break;
1606*53ee8cc1Swenshuai.xi
1607*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAUDIOSOURCEFORMAT:
1608*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1609*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAUDIOSOURCEFORMAT\r\n");
1610*53ee8cc1Swenshuai.xi #endif
1611*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAUDSRCFMT, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1612*53ee8cc1Swenshuai.xi break;
1613*53ee8cc1Swenshuai.xi
1614*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAVIINFOEXTCOLORIMETRY:
1615*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1616*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_EXIT\r\n");
1617*53ee8cc1Swenshuai.xi #endif
1618*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAVIINFOEXTCOLORIMETRY, spt_HDMITX_SETAVIINFOEXTCOLORIMETRY, usbuffer_arg, sizeof(usbuffer_arg));
1619*53ee8cc1Swenshuai.xi break;
1620*53ee8cc1Swenshuai.xi
1621*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETAUDIOCTS:
1622*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1623*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETAUDIOCTS\r\n");
1624*53ee8cc1Swenshuai.xi #endif
1625*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETAUDCTS, spt_HDMITX_GETAUDCTS, usbuffer_arg, sizeof(usbuffer_arg));
1626*53ee8cc1Swenshuai.xi break;
1627*53ee8cc1Swenshuai.xi
1628*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_MUTEAUDIOFIFO:
1629*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1630*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_MUTEAUDIOFIFO\r\n");
1631*53ee8cc1Swenshuai.xi #endif
1632*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_MUTEAUDFIFO, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1633*53ee8cc1Swenshuai.xi break;
1634*53ee8cc1Swenshuai.xi
1635*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETHDCPKEY:
1636*53ee8cc1Swenshuai.xi {
1637*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1638*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETHDCPKEY\r\n");
1639*53ee8cc1Swenshuai.xi #endif
1640*53ee8cc1Swenshuai.xi stHDMITx_GetHdcpKey stHDMITxArgs = {0};
1641*53ee8cc1Swenshuai.xi #define DEF_HDCP14_KEY_SIZE 304U
1642*53ee8cc1Swenshuai.xi
1643*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1644*53ee8cc1Swenshuai.xi {
1645*53ee8cc1Swenshuai.xi stHDMITx_GetHdcpKey_Compat stCompatHDMITxArgs = {0};
1646*53ee8cc1Swenshuai.xi
1647*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetHdcpKey_Compat));
1648*53ee8cc1Swenshuai.xi
1649*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1650*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.data, stCompatHDMITxArgs.data, sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1651*53ee8cc1Swenshuai.xi stHDMITxArgs.useinternalkey = stCompatHDMITxArgs.useinternalkey;
1652*53ee8cc1Swenshuai.xi
1653*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1654*53ee8cc1Swenshuai.xi
1655*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.data, stHDMITxArgs.data, sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1656*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetHdcpKey_Compat));
1657*53ee8cc1Swenshuai.xi
1658*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1659*53ee8cc1Swenshuai.xi }
1660*53ee8cc1Swenshuai.xi else
1661*53ee8cc1Swenshuai.xi {
1662*53ee8cc1Swenshuai.xi void *pData = NULL;
1663*53ee8cc1Swenshuai.xi
1664*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetHdcpKey));
1665*53ee8cc1Swenshuai.xi
1666*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.data;
1667*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1668*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.data, pData, sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1669*53ee8cc1Swenshuai.xi
1670*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1671*53ee8cc1Swenshuai.xi
1672*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.data, sizeof(MS_U8) * DEF_HDCP14_KEY_SIZE);
1673*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1674*53ee8cc1Swenshuai.xi stHDMITxArgs.data = pData;
1675*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetHdcpKey));
1676*53ee8cc1Swenshuai.xi }
1677*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_KEY_SIZE
1678*53ee8cc1Swenshuai.xi }
1679*53ee8cc1Swenshuai.xi break;
1680*53ee8cc1Swenshuai.xi
1681*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETBKSV:
1682*53ee8cc1Swenshuai.xi {
1683*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1684*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETBKSV\r\n");
1685*53ee8cc1Swenshuai.xi #endif
1686*53ee8cc1Swenshuai.xi stHDMITx_GetBksv stHDMITxArgs = {0};
1687*53ee8cc1Swenshuai.xi #define DEF_HDCP14_KSV_SIZE 5U
1688*53ee8cc1Swenshuai.xi
1689*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1690*53ee8cc1Swenshuai.xi {
1691*53ee8cc1Swenshuai.xi stHDMITx_GetBksv_Compat stCompatHDMITxArgs = {0};
1692*53ee8cc1Swenshuai.xi
1693*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetBksv_Compat));
1694*53ee8cc1Swenshuai.xi
1695*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1696*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pdata, stCompatHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1697*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1698*53ee8cc1Swenshuai.xi
1699*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1700*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1701*53ee8cc1Swenshuai.xi
1702*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pdata, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1703*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetBksv_Compat));
1704*53ee8cc1Swenshuai.xi
1705*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
1706*53ee8cc1Swenshuai.xi }
1707*53ee8cc1Swenshuai.xi else
1708*53ee8cc1Swenshuai.xi {
1709*53ee8cc1Swenshuai.xi void *pData = NULL;
1710*53ee8cc1Swenshuai.xi
1711*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetBksv));
1712*53ee8cc1Swenshuai.xi
1713*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pdata;
1714*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1715*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pdata, pData, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1716*53ee8cc1Swenshuai.xi
1717*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1718*53ee8cc1Swenshuai.xi
1719*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1720*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
1721*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = pData;
1722*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetBksv));
1723*53ee8cc1Swenshuai.xi
1724*53ee8cc1Swenshuai.xi }
1725*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_KSV_SIZE
1726*53ee8cc1Swenshuai.xi }
1727*53ee8cc1Swenshuai.xi break;
1728*53ee8cc1Swenshuai.xi
1729*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETAKSV:
1730*53ee8cc1Swenshuai.xi {
1731*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1732*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETAKSV\r\n");
1733*53ee8cc1Swenshuai.xi #endif
1734*53ee8cc1Swenshuai.xi stHDMITx_GetAksv stHDMITxArgs = {0};
1735*53ee8cc1Swenshuai.xi #define DEF_HDCP14_KSV_SIZE 5U
1736*53ee8cc1Swenshuai.xi
1737*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1738*53ee8cc1Swenshuai.xi {
1739*53ee8cc1Swenshuai.xi stHDMITx_GetAksv_Compat stCompatHDMITxArgs = {0};
1740*53ee8cc1Swenshuai.xi
1741*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetAksv_Compat));
1742*53ee8cc1Swenshuai.xi
1743*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1744*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pdata, stCompatHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1745*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1746*53ee8cc1Swenshuai.xi
1747*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1748*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1749*53ee8cc1Swenshuai.xi
1750*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pdata, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1751*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetAksv_Compat));
1752*53ee8cc1Swenshuai.xi
1753*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
1754*53ee8cc1Swenshuai.xi }
1755*53ee8cc1Swenshuai.xi else
1756*53ee8cc1Swenshuai.xi {
1757*53ee8cc1Swenshuai.xi void *pData = NULL;
1758*53ee8cc1Swenshuai.xi
1759*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetAksv));
1760*53ee8cc1Swenshuai.xi
1761*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pdata;
1762*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1763*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pdata, pData, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1764*53ee8cc1Swenshuai.xi
1765*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1766*53ee8cc1Swenshuai.xi
1767*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_HDCP14_KSV_SIZE);
1768*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
1769*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = pData;
1770*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetAksv));
1771*53ee8cc1Swenshuai.xi
1772*53ee8cc1Swenshuai.xi }
1773*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_KSV_SIZE
1774*53ee8cc1Swenshuai.xi }
1775*53ee8cc1Swenshuai.xi break;
1776*53ee8cc1Swenshuai.xi
1777*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETHDCPONOFF:
1778*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1779*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETHDCPONOFF\r\n");
1780*53ee8cc1Swenshuai.xi #endif
1781*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETHDCPONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1782*53ee8cc1Swenshuai.xi break;
1783*53ee8cc1Swenshuai.xi
1784*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAVMUTE:
1785*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1786*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAVMUTE\r\n");
1787*53ee8cc1Swenshuai.xi #endif
1788*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAVMUTE, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1789*53ee8cc1Swenshuai.xi break;
1790*53ee8cc1Swenshuai.xi
1791*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETAVMUTESTATUS:
1792*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1793*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETAVMUTESTATUS\r\n");
1794*53ee8cc1Swenshuai.xi #endif
1795*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETAVMUTESTATUS, spt_HDMITX_GETAVMUTESTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1796*53ee8cc1Swenshuai.xi break;
1797*53ee8cc1Swenshuai.xi
1798*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP_REVOCATIONKEY_LIST:
1799*53ee8cc1Swenshuai.xi {
1800*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1801*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP_REVOCATIONKEY_LIST\r\n");
1802*53ee8cc1Swenshuai.xi #endif
1803*53ee8cc1Swenshuai.xi stHDMITx_HDCP_RevocationKey_List stHDMITxArgs = {0};
1804*53ee8cc1Swenshuai.xi
1805*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1806*53ee8cc1Swenshuai.xi {
1807*53ee8cc1Swenshuai.xi stHDMITx_HDCP_RevocationKey_List_Compat stCompatHDMITxArgs = {0};
1808*53ee8cc1Swenshuai.xi
1809*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP_RevocationKey_List_Compat));
1810*53ee8cc1Swenshuai.xi
1811*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.size);
1812*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.data, stCompatHDMITxArgs.data, sizeof(MS_U8) *stCompatHDMITxArgs.size);
1813*53ee8cc1Swenshuai.xi stHDMITxArgs.size = stCompatHDMITxArgs.size;
1814*53ee8cc1Swenshuai.xi
1815*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1816*53ee8cc1Swenshuai.xi
1817*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.data, stHDMITxArgs.data, sizeof(MS_U8) *stCompatHDMITxArgs.size);
1818*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_HDCP_RevocationKey_List_Compat));
1819*53ee8cc1Swenshuai.xi
1820*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1821*53ee8cc1Swenshuai.xi }
1822*53ee8cc1Swenshuai.xi else
1823*53ee8cc1Swenshuai.xi {
1824*53ee8cc1Swenshuai.xi void *pData = NULL;
1825*53ee8cc1Swenshuai.xi
1826*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP_RevocationKey_List));
1827*53ee8cc1Swenshuai.xi
1828*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.data;
1829*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stHDMITxArgs.size);
1830*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.data, pData, sizeof(MS_U8) *stHDMITxArgs.size);
1831*53ee8cc1Swenshuai.xi
1832*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1833*53ee8cc1Swenshuai.xi
1834*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.data, sizeof(MS_U8) *stHDMITxArgs.size);
1835*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1836*53ee8cc1Swenshuai.xi stHDMITxArgs.data = pData;
1837*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_HDCP_RevocationKey_List));
1838*53ee8cc1Swenshuai.xi }
1839*53ee8cc1Swenshuai.xi }
1840*53ee8cc1Swenshuai.xi break;
1841*53ee8cc1Swenshuai.xi
1842*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP_REVOCATIONKEY_CHECK:
1843*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1844*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP_REVOCATIONKEY_CHECK\r\n");
1845*53ee8cc1Swenshuai.xi #endif
1846*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_HDCP14REVOKEKEYCHK, spt_HDMITX_HDCP14REVOKEKEYCHK, usbuffer_arg, sizeof(usbuffer_arg));
1847*53ee8cc1Swenshuai.xi break;
1848*53ee8cc1Swenshuai.xi
1849*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP_ISSRMSIGNATUREVALID:
1850*53ee8cc1Swenshuai.xi {
1851*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1852*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP_ISSRMSIGNATUREVALID\r\n");
1853*53ee8cc1Swenshuai.xi #endif
1854*53ee8cc1Swenshuai.xi stHDMITx_HDCP_IsSRMSignatureValid stHDMITxArgs = {0};
1855*53ee8cc1Swenshuai.xi
1856*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
1857*53ee8cc1Swenshuai.xi {
1858*53ee8cc1Swenshuai.xi stHDMITx_HDCP_IsSRMSignatureValid_Compat stCompatHDMITxArgs = {0};
1859*53ee8cc1Swenshuai.xi
1860*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP_IsSRMSignatureValid_Compat));
1861*53ee8cc1Swenshuai.xi
1862*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.size);
1863*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.data, stCompatHDMITxArgs.data, sizeof(MS_U8) *stCompatHDMITxArgs.size);
1864*53ee8cc1Swenshuai.xi stHDMITxArgs.size = stCompatHDMITxArgs.size;
1865*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
1866*53ee8cc1Swenshuai.xi
1867*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1868*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
1869*53ee8cc1Swenshuai.xi
1870*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_HDCP_IsSRMSignatureValid_Compat));
1871*53ee8cc1Swenshuai.xi
1872*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1873*53ee8cc1Swenshuai.xi }
1874*53ee8cc1Swenshuai.xi else
1875*53ee8cc1Swenshuai.xi {
1876*53ee8cc1Swenshuai.xi void *pData = NULL;
1877*53ee8cc1Swenshuai.xi
1878*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP_IsSRMSignatureValid));
1879*53ee8cc1Swenshuai.xi
1880*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.data;
1881*53ee8cc1Swenshuai.xi stHDMITxArgs.data = malloc(sizeof(MS_U8) *stHDMITxArgs.size);
1882*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.data, pData, sizeof(MS_U8) *stHDMITxArgs.size);
1883*53ee8cc1Swenshuai.xi
1884*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
1885*53ee8cc1Swenshuai.xi
1886*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.data, sizeof(MS_U8) *stHDMITxArgs.size);
1887*53ee8cc1Swenshuai.xi free(stHDMITxArgs.data);
1888*53ee8cc1Swenshuai.xi stHDMITxArgs.data = pData;
1889*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_HDCP_IsSRMSignatureValid));
1890*53ee8cc1Swenshuai.xi
1891*53ee8cc1Swenshuai.xi }
1892*53ee8cc1Swenshuai.xi }
1893*53ee8cc1Swenshuai.xi break;
1894*53ee8cc1Swenshuai.xi
1895*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETHDCPSTATUS:
1896*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1897*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETHDCPSTATUS\r\n");
1898*53ee8cc1Swenshuai.xi #endif
1899*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETHDCPSTATUS, spt_HDMITX_GETHDCPSTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1900*53ee8cc1Swenshuai.xi break;
1901*53ee8cc1Swenshuai.xi
1902*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP_STARTAUTH:
1903*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1904*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP_STARTAUTH\r\n");
1905*53ee8cc1Swenshuai.xi #endif
1906*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_HDCP14STARTAUTH, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1907*53ee8cc1Swenshuai.xi break;
1908*53ee8cc1Swenshuai.xi
1909*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETINTHDCPSTATUS:
1910*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1911*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETINTHDCPSTATUS\r\n");
1912*53ee8cc1Swenshuai.xi #endif
1913*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETINTHDCPSTATUS, spt_HDMITX_GETINTHDCPSTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1914*53ee8cc1Swenshuai.xi break;
1915*53ee8cc1Swenshuai.xi
1916*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETHDCP_PRESTATUS:
1917*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1918*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETHDCP_PRESTATUS\r\n");
1919*53ee8cc1Swenshuai.xi #endif
1920*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETHDCP14PRESTATUS, spt_HDMITX_GETHDCP14PRESTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1921*53ee8cc1Swenshuai.xi break;
1922*53ee8cc1Swenshuai.xi
1923*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_UNHDCPRXCONTROL:
1924*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1925*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_UNHDCPRXCONTROL\r\n");
1926*53ee8cc1Swenshuai.xi #endif
1927*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_UNHDCPRXCTRL, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1928*53ee8cc1Swenshuai.xi break;
1929*53ee8cc1Swenshuai.xi
1930*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCPRXFAILCONTROL:
1931*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1932*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCPRXFAILCONTROL\r\n");
1933*53ee8cc1Swenshuai.xi #endif
1934*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_HDCPRXFAILCTRL, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1935*53ee8cc1Swenshuai.xi break;
1936*53ee8cc1Swenshuai.xi
1937*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETLIBVER:
1938*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1939*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETLIBVER\r\n");
1940*53ee8cc1Swenshuai.xi #endif
1941*53ee8cc1Swenshuai.xi #if 0
1942*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETLIBVER, spt_HDMITX_GETLIBVER, usbuffer_arg, sizeof(usbuffer_arg));
1943*53ee8cc1Swenshuai.xi #endif
1944*53ee8cc1Swenshuai.xi break;
1945*53ee8cc1Swenshuai.xi
1946*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETINFO:
1947*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1948*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETINFO\r\n");
1949*53ee8cc1Swenshuai.xi #endif
1950*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETINFO, spt_HDMITX_GETINFO, usbuffer_arg, sizeof(usbuffer_arg));
1951*53ee8cc1Swenshuai.xi break;
1952*53ee8cc1Swenshuai.xi
1953*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETSTATUS:
1954*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1955*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETSTATUS\r\n");
1956*53ee8cc1Swenshuai.xi #endif
1957*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETSTATUS, spt_HDMITX_GETSTATUS, usbuffer_arg, sizeof(usbuffer_arg));
1958*53ee8cc1Swenshuai.xi break;
1959*53ee8cc1Swenshuai.xi
1960*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETDBGLEVEL:
1961*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1962*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETDBGLEVEL\r\n");
1963*53ee8cc1Swenshuai.xi #endif
1964*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETDBGLEVEL, spt_HDMITX_SETDBGLEVEL, usbuffer_arg, sizeof(usbuffer_arg));
1965*53ee8cc1Swenshuai.xi break;
1966*53ee8cc1Swenshuai.xi
1967*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETHPDGPIOPIN:
1968*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1969*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETHPDGPIOPIN\r\n");
1970*53ee8cc1Swenshuai.xi #endif
1971*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETHPDGPIOPIN, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1972*53ee8cc1Swenshuai.xi break;
1973*53ee8cc1Swenshuai.xi
1974*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_ANALOGTUNING:
1975*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1976*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_ANALOGTUNING\r\n");
1977*53ee8cc1Swenshuai.xi #endif
1978*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_ANALOGTUNING, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1979*53ee8cc1Swenshuai.xi break;
1980*53ee8cc1Swenshuai.xi
1981*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_FORCEHDMIOUTPUTMODE:
1982*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1983*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_FORCEHDMIOUTPUTMODE\r\n");
1984*53ee8cc1Swenshuai.xi #endif
1985*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_FORCEHDMIOUTPUTMODE, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1986*53ee8cc1Swenshuai.xi break;
1987*53ee8cc1Swenshuai.xi
1988*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_FORCEHDMIOUTPUTCOLORFORMAT:
1989*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1990*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_FORCEHDMIOUTPUTCOLORFORMAT\r\n");
1991*53ee8cc1Swenshuai.xi #endif
1992*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_FORCEHDMIOUTPUTCOLORFMT, NULL, usbuffer_arg, sizeof(usbuffer_arg));
1993*53ee8cc1Swenshuai.xi break;
1994*53ee8cc1Swenshuai.xi
1995*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_DISABLEREGWRITE:
1996*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
1997*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_DISABLEREGWRITE\r\n");
1998*53ee8cc1Swenshuai.xi #endif
1999*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_DISABLEREGWRITE, NULL, usbuffer_arg, sizeof(usbuffer_arg));
2000*53ee8cc1Swenshuai.xi break;
2001*53ee8cc1Swenshuai.xi
2002*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETEDIDPHYADR:
2003*53ee8cc1Swenshuai.xi {
2004*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2005*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETEDIDPHYADR\r\n");
2006*53ee8cc1Swenshuai.xi #endif
2007*53ee8cc1Swenshuai.xi stHDMITx_GetEDIDPhyAdr stHDMITxArgs = {0};
2008*53ee8cc1Swenshuai.xi #define DEF_EDID_PHYADDR_SIZE 2U
2009*53ee8cc1Swenshuai.xi
2010*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2011*53ee8cc1Swenshuai.xi {
2012*53ee8cc1Swenshuai.xi stHDMITx_GetEDIDPhyAdr_Compat stCompatHDMITxArgs = {0};
2013*53ee8cc1Swenshuai.xi
2014*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetEDIDPhyAdr_Compat));
2015*53ee8cc1Swenshuai.xi
2016*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2017*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pdata, stCompatHDMITxArgs.pdata, sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2018*53ee8cc1Swenshuai.xi
2019*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2020*53ee8cc1Swenshuai.xi
2021*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pdata, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2022*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetEDIDPhyAdr_Compat));
2023*53ee8cc1Swenshuai.xi
2024*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
2025*53ee8cc1Swenshuai.xi }
2026*53ee8cc1Swenshuai.xi else
2027*53ee8cc1Swenshuai.xi {
2028*53ee8cc1Swenshuai.xi void *pData = NULL;
2029*53ee8cc1Swenshuai.xi
2030*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetEDIDPhyAdr));
2031*53ee8cc1Swenshuai.xi
2032*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pdata;
2033*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = malloc(sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2034*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pdata, pData, sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2035*53ee8cc1Swenshuai.xi
2036*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2037*53ee8cc1Swenshuai.xi
2038*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pdata, sizeof(MS_U8) * DEF_EDID_PHYADDR_SIZE);
2039*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pdata);
2040*53ee8cc1Swenshuai.xi stHDMITxArgs.pdata = pData;
2041*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetEDIDPhyAdr));
2042*53ee8cc1Swenshuai.xi
2043*53ee8cc1Swenshuai.xi }
2044*53ee8cc1Swenshuai.xi #undef DEF_EDID_PHYADDR_SIZE
2045*53ee8cc1Swenshuai.xi }
2046*53ee8cc1Swenshuai.xi break;
2047*53ee8cc1Swenshuai.xi
2048*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETCECONOFF:
2049*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2050*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETCECONOFF\r\n");
2051*53ee8cc1Swenshuai.xi #endif
2052*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETCECONOFF, NULL, usbuffer_arg, sizeof(usbuffer_arg));
2053*53ee8cc1Swenshuai.xi break;
2054*53ee8cc1Swenshuai.xi
2055*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETCECSTATUS:
2056*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2057*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETCECSTATUS\r\n");
2058*53ee8cc1Swenshuai.xi #endif
2059*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GETCECSTATUS, spt_HDMITX_GETCECSTATUS, usbuffer_arg, sizeof(usbuffer_arg));
2060*53ee8cc1Swenshuai.xi break;
2061*53ee8cc1Swenshuai.xi
2062*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_EDIDCHECKING:
2063*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2064*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_EDIDCHECKING111::: 0x%X\r\n", u32Cmd);
2065*53ee8cc1Swenshuai.xi #endif
2066*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_EDIDCHECKING, spt_HDMITX_EDIDCHECKING, usbuffer_arg, sizeof(usbuffer_arg));
2067*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2068*53ee8cc1Swenshuai.xi printk("end of E_HDMITX_CMD_EDIDCHECKING\r\n");
2069*53ee8cc1Swenshuai.xi #endif
2070*53ee8cc1Swenshuai.xi break;
2071*53ee8cc1Swenshuai.xi
2072*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_RXBYPASS_MODE:
2073*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2074*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_RXBYPASS_MODE\r\n");
2075*53ee8cc1Swenshuai.xi #endif
2076*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_RXBYPASSMODE, spt_HDMITX_RXBYPASSMODE, usbuffer_arg, sizeof(usbuffer_arg));
2077*53ee8cc1Swenshuai.xi break;
2078*53ee8cc1Swenshuai.xi
2079*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_DISABLE_RXBYPASS:
2080*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2081*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_DISABLE_RXBYPASS\r\n");
2082*53ee8cc1Swenshuai.xi #endif
2083*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_DISABLERXBYPASS, spt_HDMITX_DISABLERXBYPASS, usbuffer_arg, sizeof(usbuffer_arg));
2084*53ee8cc1Swenshuai.xi break;
2085*53ee8cc1Swenshuai.xi
2086*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETAKSV2R0INTERVAL:
2087*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2088*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETAKSV2R0INTERVAL\r\n");
2089*53ee8cc1Swenshuai.xi #endif
2090*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETAKSV2R0INTERVAL, spt_HDMITX_SETAKSV2R0INTERVAL, usbuffer_arg, sizeof(usbuffer_arg));
2091*53ee8cc1Swenshuai.xi break;
2092*53ee8cc1Swenshuai.xi
2093*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_ISRXVALID:
2094*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2095*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_ISRXVALID\r\n");
2096*53ee8cc1Swenshuai.xi #endif
2097*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_ISHDCPRXVALID, spt_HDMITX_ISHDCPRXVALID, usbuffer_arg, sizeof(usbuffer_arg));
2098*53ee8cc1Swenshuai.xi break;
2099*53ee8cc1Swenshuai.xi
2100*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETCHIPCAPS:
2101*53ee8cc1Swenshuai.xi {
2102*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2103*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETCHIPCAPS\r\n");
2104*53ee8cc1Swenshuai.xi #endif
2105*53ee8cc1Swenshuai.xi stHDMITx_GetChipCaps stHDMITxArgs = {0};
2106*53ee8cc1Swenshuai.xi
2107*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2108*53ee8cc1Swenshuai.xi {
2109*53ee8cc1Swenshuai.xi stHDMITx_GetChipCaps_Compat stCompatHDMITxArgs = {0};
2110*53ee8cc1Swenshuai.xi
2111*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetChipCaps_Compat));
2112*53ee8cc1Swenshuai.xi
2113*53ee8cc1Swenshuai.xi stHDMITxArgs.pRet = malloc(sizeof(MS_U32) * stCompatHDMITxArgs.ret_size);
2114*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pRet, stCompatHDMITxArgs.pRet, sizeof(MS_U32) * stCompatHDMITxArgs.ret_size);
2115*53ee8cc1Swenshuai.xi stHDMITxArgs.eCapType = stCompatHDMITxArgs.eCapType;
2116*53ee8cc1Swenshuai.xi stHDMITxArgs.ret_size = stCompatHDMITxArgs.ret_size;
2117*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
2118*53ee8cc1Swenshuai.xi
2119*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2120*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
2121*53ee8cc1Swenshuai.xi
2122*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pRet, stHDMITxArgs.pRet, sizeof(MS_U32) * stCompatHDMITxArgs.ret_size);
2123*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetChipCaps_Compat));
2124*53ee8cc1Swenshuai.xi
2125*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pRet);
2126*53ee8cc1Swenshuai.xi }
2127*53ee8cc1Swenshuai.xi else
2128*53ee8cc1Swenshuai.xi {
2129*53ee8cc1Swenshuai.xi void *pData = NULL;
2130*53ee8cc1Swenshuai.xi
2131*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetChipCaps));
2132*53ee8cc1Swenshuai.xi
2133*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pRet;
2134*53ee8cc1Swenshuai.xi stHDMITxArgs.pRet = malloc(sizeof(MS_U32) * stHDMITxArgs.ret_size);
2135*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pRet, pData, sizeof(MS_U32) * stHDMITxArgs.ret_size);
2136*53ee8cc1Swenshuai.xi
2137*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2138*53ee8cc1Swenshuai.xi
2139*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pRet, sizeof(MS_U32) * stHDMITxArgs.ret_size);
2140*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pRet);
2141*53ee8cc1Swenshuai.xi stHDMITxArgs.pRet = pData;
2142*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetChipCaps));
2143*53ee8cc1Swenshuai.xi }
2144*53ee8cc1Swenshuai.xi }
2145*53ee8cc1Swenshuai.xi break;
2146*53ee8cc1Swenshuai.xi
2147*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETPOWERSTATE:
2148*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2149*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETPOWERSTATE\r\n");
2150*53ee8cc1Swenshuai.xi #endif
2151*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETPWRSTATE, spt_HDMITX_SETPWRSTATE, usbuffer_arg, sizeof(usbuffer_arg));
2152*53ee8cc1Swenshuai.xi break;
2153*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETEDIDDATABLOCK:
2154*53ee8cc1Swenshuai.xi {
2155*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2156*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETEDIDDATABLOCK\r\n");
2157*53ee8cc1Swenshuai.xi #endif
2158*53ee8cc1Swenshuai.xi stHDMITx_GetEdidDataBlocks stHDMITxArgs = {0};
2159*53ee8cc1Swenshuai.xi
2160*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2161*53ee8cc1Swenshuai.xi {
2162*53ee8cc1Swenshuai.xi stHDMITx_GetEdidDataBlocks_Compat stCompatHDMITxArgs = {0};
2163*53ee8cc1Swenshuai.xi
2164*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetEdidDataBlocks_Compat));
2165*53ee8cc1Swenshuai.xi
2166*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Data = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.u32DataLen);
2167*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Data, stCompatHDMITxArgs.pu8Data, sizeof(MS_U8) *stCompatHDMITxArgs.u32DataLen);
2168*53ee8cc1Swenshuai.xi
2169*53ee8cc1Swenshuai.xi stHDMITxArgs.enTagCode = stCompatHDMITxArgs.enTagCode;
2170*53ee8cc1Swenshuai.xi stHDMITxArgs.enExtTagCode = stCompatHDMITxArgs.enExtTagCode;
2171*53ee8cc1Swenshuai.xi stHDMITxArgs.u32DataLen = stCompatHDMITxArgs.u32DataLen;
2172*53ee8cc1Swenshuai.xi
2173*53ee8cc1Swenshuai.xi stHDMITxArgs.pu32RealLen = malloc(sizeof(MS_U32));
2174*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu32RealLen, stCompatHDMITxArgs.pu32RealLen, sizeof(MS_U32));
2175*53ee8cc1Swenshuai.xi
2176*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
2177*53ee8cc1Swenshuai.xi
2178*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2179*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
2180*53ee8cc1Swenshuai.xi
2181*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Data, stHDMITxArgs.pu8Data, sizeof(MS_U8) *stCompatHDMITxArgs.u32DataLen);
2182*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu32RealLen, stHDMITxArgs.pu32RealLen, sizeof(MS_U32));
2183*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetEdidDataBlocks_Compat));
2184*53ee8cc1Swenshuai.xi
2185*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Data);
2186*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu32RealLen);
2187*53ee8cc1Swenshuai.xi }
2188*53ee8cc1Swenshuai.xi else
2189*53ee8cc1Swenshuai.xi {
2190*53ee8cc1Swenshuai.xi void *pData = NULL;
2191*53ee8cc1Swenshuai.xi void *pLen = NULL;
2192*53ee8cc1Swenshuai.xi
2193*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetEdidDataBlocks));
2194*53ee8cc1Swenshuai.xi
2195*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8Data;
2196*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Data = malloc(sizeof(MS_U8) *stHDMITxArgs.u32DataLen);
2197*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Data, pData, sizeof(MS_U8) *stHDMITxArgs.u32DataLen);
2198*53ee8cc1Swenshuai.xi
2199*53ee8cc1Swenshuai.xi pLen = stHDMITxArgs.pu32RealLen;
2200*53ee8cc1Swenshuai.xi stHDMITxArgs.pu32RealLen = malloc(sizeof(MS_U32));
2201*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu32RealLen, pLen, sizeof(MS_U32));
2202*53ee8cc1Swenshuai.xi
2203*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2204*53ee8cc1Swenshuai.xi
2205*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8Data, sizeof(MS_U8) *stHDMITxArgs.u32DataLen);
2206*53ee8cc1Swenshuai.xi CPY_TO_USER(pLen, stHDMITxArgs.pu32RealLen, sizeof(MS_U32));
2207*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Data);
2208*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu32RealLen);
2209*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Data = pData;
2210*53ee8cc1Swenshuai.xi stHDMITxArgs.pu32RealLen = pLen;
2211*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetEdidDataBlocks));
2212*53ee8cc1Swenshuai.xi
2213*53ee8cc1Swenshuai.xi }
2214*53ee8cc1Swenshuai.xi }
2215*53ee8cc1Swenshuai.xi break;
2216*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GETKSVLIST:
2217*53ee8cc1Swenshuai.xi {
2218*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2219*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_GETKSVLIST\r\n");
2220*53ee8cc1Swenshuai.xi #endif
2221*53ee8cc1Swenshuai.xi #define DEF_HDCP14_BSTATUS_SIZE 2U
2222*53ee8cc1Swenshuai.xi stHDMITx_GetKSVList stHDMITxArgs = {0};
2223*53ee8cc1Swenshuai.xi
2224*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2225*53ee8cc1Swenshuai.xi {
2226*53ee8cc1Swenshuai.xi stHDMITx_GetKSVList_Compat stCompatHDMITxArgs = {0};
2227*53ee8cc1Swenshuai.xi
2228*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_GetKSVList_Compat));
2229*53ee8cc1Swenshuai.xi
2230*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Bstatus = malloc(sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2231*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Bstatus, stCompatHDMITxArgs.pu8Bstatus, sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2232*53ee8cc1Swenshuai.xi
2233*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8KSVList = malloc(sizeof(MS_U8) *stCompatHDMITxArgs.u16BufLen);
2234*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8KSVList, stCompatHDMITxArgs.pu8KSVList, sizeof(MS_U8) *stCompatHDMITxArgs.u16BufLen);
2235*53ee8cc1Swenshuai.xi
2236*53ee8cc1Swenshuai.xi stHDMITxArgs.u16BufLen = stCompatHDMITxArgs.u16BufLen;
2237*53ee8cc1Swenshuai.xi
2238*53ee8cc1Swenshuai.xi stHDMITxArgs.pu16KSVLength = malloc(sizeof(MS_U16));
2239*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu16KSVLength, stCompatHDMITxArgs.pu16KSVLength, sizeof(MS_U16));
2240*53ee8cc1Swenshuai.xi
2241*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
2242*53ee8cc1Swenshuai.xi
2243*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2244*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
2245*53ee8cc1Swenshuai.xi
2246*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8Bstatus, stHDMITxArgs.pu8Bstatus, sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2247*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8KSVList, stHDMITxArgs.pu8KSVList, sizeof(MS_U8) *stCompatHDMITxArgs.u16BufLen);
2248*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu16KSVLength, stHDMITxArgs.pu16KSVLength, sizeof(MS_U16));
2249*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_GetKSVList_Compat));
2250*53ee8cc1Swenshuai.xi
2251*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Bstatus);
2252*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8KSVList);
2253*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu16KSVLength);
2254*53ee8cc1Swenshuai.xi }
2255*53ee8cc1Swenshuai.xi else
2256*53ee8cc1Swenshuai.xi {
2257*53ee8cc1Swenshuai.xi void *pBStatus = NULL;
2258*53ee8cc1Swenshuai.xi void *pData = NULL;
2259*53ee8cc1Swenshuai.xi void *pLen = NULL;
2260*53ee8cc1Swenshuai.xi
2261*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_GetKSVList));
2262*53ee8cc1Swenshuai.xi
2263*53ee8cc1Swenshuai.xi pBStatus = stHDMITxArgs.pu8Bstatus;
2264*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Bstatus = malloc(sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2265*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Bstatus, pBStatus, sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2266*53ee8cc1Swenshuai.xi
2267*53ee8cc1Swenshuai.xi pData = stHDMITxArgs.pu8KSVList;
2268*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8KSVList = malloc(sizeof(MS_U8) * stHDMITxArgs.u16BufLen);
2269*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8KSVList, pData, sizeof(MS_U8) * stHDMITxArgs.u16BufLen);
2270*53ee8cc1Swenshuai.xi
2271*53ee8cc1Swenshuai.xi pLen = stHDMITxArgs.pu16KSVLength;
2272*53ee8cc1Swenshuai.xi stHDMITxArgs.pu16KSVLength = malloc(sizeof(MS_U16));
2273*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu16KSVLength, pLen, sizeof(MS_U16));
2274*53ee8cc1Swenshuai.xi
2275*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2276*53ee8cc1Swenshuai.xi
2277*53ee8cc1Swenshuai.xi CPY_TO_USER(pBStatus, stHDMITxArgs.pu8Bstatus, sizeof(MS_U8) * DEF_HDCP14_BSTATUS_SIZE);
2278*53ee8cc1Swenshuai.xi CPY_TO_USER(pData, stHDMITxArgs.pu8KSVList, sizeof(MS_U8) * stHDMITxArgs.u16BufLen);
2279*53ee8cc1Swenshuai.xi CPY_TO_USER(pLen, stHDMITxArgs.pu16KSVLength, sizeof(MS_U16));
2280*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Bstatus);
2281*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8KSVList);
2282*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu16KSVLength);
2283*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Bstatus = pBStatus;
2284*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8KSVList = pData;
2285*53ee8cc1Swenshuai.xi stHDMITxArgs.pu16KSVLength= pLen;
2286*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_GetKSVList));
2287*53ee8cc1Swenshuai.xi
2288*53ee8cc1Swenshuai.xi }
2289*53ee8cc1Swenshuai.xi #undef DEF_HDCP14_BSTATUS_SIZE
2290*53ee8cc1Swenshuai.xi }
2291*53ee8cc1Swenshuai.xi break;
2292*53ee8cc1Swenshuai.xi
2293*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP2ACCESSX74:
2294*53ee8cc1Swenshuai.xi {
2295*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2296*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP2ACCESSX74\r\n");
2297*53ee8cc1Swenshuai.xi #endif
2298*53ee8cc1Swenshuai.xi stHDMITx_HDCP2AccessX74 stHDMITxArgs = {0};
2299*53ee8cc1Swenshuai.xi
2300*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2301*53ee8cc1Swenshuai.xi {
2302*53ee8cc1Swenshuai.xi stHDMITx_HDCP2AccessX74_Compat stCompatHDMITxArgs = {0};
2303*53ee8cc1Swenshuai.xi
2304*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP2AccessX74_Compat));
2305*53ee8cc1Swenshuai.xi
2306*53ee8cc1Swenshuai.xi stHDMITxArgs.u8PortIdx = stCompatHDMITxArgs.u8PortIdx;
2307*53ee8cc1Swenshuai.xi stHDMITxArgs.u8OffsetAddr = stCompatHDMITxArgs.u8OffsetAddr;
2308*53ee8cc1Swenshuai.xi stHDMITxArgs.u8OpCode = stCompatHDMITxArgs.u8OpCode;
2309*53ee8cc1Swenshuai.xi
2310*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8RdBuf = malloc(sizeof(MS_U8) * stCompatHDMITxArgs.u16RdLen);
2311*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8RdBuf, stCompatHDMITxArgs.pu8RdBuf, sizeof(MS_U8) * stCompatHDMITxArgs.u16RdLen);
2312*53ee8cc1Swenshuai.xi
2313*53ee8cc1Swenshuai.xi stHDMITxArgs.u16RdLen = stCompatHDMITxArgs.u16RdLen;
2314*53ee8cc1Swenshuai.xi
2315*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8WRBuff = malloc(sizeof(MS_U8) * stCompatHDMITxArgs.u16WrLen);
2316*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8WRBuff, stCompatHDMITxArgs.pu8WRBuff, sizeof(MS_U8) * stCompatHDMITxArgs.u16WrLen);
2317*53ee8cc1Swenshuai.xi
2318*53ee8cc1Swenshuai.xi stHDMITxArgs.u16WrLen = stCompatHDMITxArgs.u16WrLen;
2319*53ee8cc1Swenshuai.xi stHDMITxArgs.bReturn = stCompatHDMITxArgs.bReturn;
2320*53ee8cc1Swenshuai.xi
2321*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2322*53ee8cc1Swenshuai.xi stCompatHDMITxArgs.bReturn = stHDMITxArgs.bReturn;
2323*53ee8cc1Swenshuai.xi
2324*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(stCompatHDMITxArgs.pu8RdBuf, stHDMITxArgs.pu8RdBuf, sizeof(MS_U8) * stCompatHDMITxArgs.u16RdLen);
2325*53ee8cc1Swenshuai.xi CMP_CPY_TO_USER(pArgs, &stCompatHDMITxArgs, sizeof(stHDMITx_HDCP2AccessX74_Compat));
2326*53ee8cc1Swenshuai.xi
2327*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8RdBuf);
2328*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8WRBuff);
2329*53ee8cc1Swenshuai.xi }
2330*53ee8cc1Swenshuai.xi else
2331*53ee8cc1Swenshuai.xi {
2332*53ee8cc1Swenshuai.xi MS_U8 *pRdData = NULL;
2333*53ee8cc1Swenshuai.xi MS_U8 *pWrData = NULL;
2334*53ee8cc1Swenshuai.xi
2335*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP2AccessX74));
2336*53ee8cc1Swenshuai.xi
2337*53ee8cc1Swenshuai.xi pRdData = stHDMITxArgs.pu8RdBuf;
2338*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8RdBuf = malloc(sizeof(MS_U8) * stHDMITxArgs.u16RdLen);
2339*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8RdBuf, pRdData, sizeof(MS_U8) * stHDMITxArgs.u16RdLen);
2340*53ee8cc1Swenshuai.xi
2341*53ee8cc1Swenshuai.xi pWrData = stHDMITxArgs.pu8WRBuff;
2342*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8WRBuff = malloc(sizeof(MS_U8) * stHDMITxArgs.u16WrLen);
2343*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8WRBuff, pWrData, sizeof(MS_U8) * stHDMITxArgs.u16WrLen);
2344*53ee8cc1Swenshuai.xi
2345*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2346*53ee8cc1Swenshuai.xi
2347*53ee8cc1Swenshuai.xi CPY_TO_USER(pRdData, stHDMITxArgs.pu8RdBuf, sizeof(MS_U8) * stHDMITxArgs.u16RdLen);
2348*53ee8cc1Swenshuai.xi //CPY_TO_USER(pWrData, stHDMITxArgs.pu8WRBuff, sizeof(MS_U8) * stHDMITxArgs.u16WrLen);
2349*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8RdBuf);
2350*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8WRBuff);
2351*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8RdBuf = pRdData;
2352*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8WRBuff = pWrData;
2353*53ee8cc1Swenshuai.xi CPY_TO_USER(pArgs, &stHDMITxArgs, sizeof(stHDMITx_HDCP2AccessX74));
2354*53ee8cc1Swenshuai.xi }
2355*53ee8cc1Swenshuai.xi }
2356*53ee8cc1Swenshuai.xi break;
2357*53ee8cc1Swenshuai.xi
2358*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP2TxInit:
2359*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2360*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP2TxInit\r\n");
2361*53ee8cc1Swenshuai.xi #endif
2362*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_HDCP2TXINIT, NULL, usbuffer_arg, sizeof(usbuffer_arg));
2363*53ee8cc1Swenshuai.xi break;
2364*53ee8cc1Swenshuai.xi
2365*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP2TxEnableEncrypt:
2366*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2367*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP2TxEnableEncrypt\r\n");
2368*53ee8cc1Swenshuai.xi #endif
2369*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_HDCP2TXENABLEENC, NULL, usbuffer_arg, sizeof(usbuffer_arg));
2370*53ee8cc1Swenshuai.xi break;
2371*53ee8cc1Swenshuai.xi
2372*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_HDCP2TxFillCipherKey:
2373*53ee8cc1Swenshuai.xi {
2374*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2375*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_HDCP2TxFillCipherKey\r\n");
2376*53ee8cc1Swenshuai.xi #endif
2377*53ee8cc1Swenshuai.xi #define DEF_HDCP22_RIV_SIZE 8U
2378*53ee8cc1Swenshuai.xi #define DEF_HDCP22_KS_SIZE 16U
2379*53ee8cc1Swenshuai.xi
2380*53ee8cc1Swenshuai.xi stHDMITx_HDCP2TxFillCipherKey stHDMITxArgs = {0};
2381*53ee8cc1Swenshuai.xi
2382*53ee8cc1Swenshuai.xi if(IS_CMP_TASK())
2383*53ee8cc1Swenshuai.xi {
2384*53ee8cc1Swenshuai.xi stHDMITx_HDCP2TxFillCipherKey_Compat stCompatHDMITxArgs = {0};
2385*53ee8cc1Swenshuai.xi
2386*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(&stCompatHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP2TxFillCipherKey_Compat));
2387*53ee8cc1Swenshuai.xi
2388*53ee8cc1Swenshuai.xi stHDMITxArgs.u8PortIdx = stCompatHDMITxArgs.u8PortIdx;
2389*53ee8cc1Swenshuai.xi
2390*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Riv = malloc(sizeof(MS_U8) * DEF_HDCP22_RIV_SIZE);
2391*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8Riv, stCompatHDMITxArgs.pu8Riv, sizeof(MS_U8) * DEF_HDCP22_RIV_SIZE);
2392*53ee8cc1Swenshuai.xi
2393*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Riv = malloc(sizeof(MS_U8) * DEF_HDCP22_KS_SIZE);
2394*53ee8cc1Swenshuai.xi CMP_CPY_FROM_USER(stHDMITxArgs.pu8KsXORLC128, stCompatHDMITxArgs.pu8KsXORLC128, sizeof(MS_U8) * DEF_HDCP22_KS_SIZE);
2395*53ee8cc1Swenshuai.xi
2396*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2397*53ee8cc1Swenshuai.xi
2398*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Riv);
2399*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8KsXORLC128);
2400*53ee8cc1Swenshuai.xi }
2401*53ee8cc1Swenshuai.xi else
2402*53ee8cc1Swenshuai.xi {
2403*53ee8cc1Swenshuai.xi MS_U8 *pRivData = NULL;
2404*53ee8cc1Swenshuai.xi MS_U8 *pKsData = NULL;
2405*53ee8cc1Swenshuai.xi
2406*53ee8cc1Swenshuai.xi CPY_FROM_USER(&stHDMITxArgs, pArgs, sizeof(stHDMITx_HDCP2TxFillCipherKey));
2407*53ee8cc1Swenshuai.xi
2408*53ee8cc1Swenshuai.xi pRivData = stHDMITxArgs.pu8Riv;
2409*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8Riv = malloc(sizeof(MS_U8) * DEF_HDCP22_RIV_SIZE);
2410*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8Riv, pRivData, sizeof(MS_U8) * DEF_HDCP22_RIV_SIZE);
2411*53ee8cc1Swenshuai.xi
2412*53ee8cc1Swenshuai.xi pKsData = stHDMITxArgs.pu8KsXORLC128;
2413*53ee8cc1Swenshuai.xi stHDMITxArgs.pu8KsXORLC128 = malloc(sizeof(MS_U8) * DEF_HDCP22_KS_SIZE);
2414*53ee8cc1Swenshuai.xi CPY_FROM_USER(stHDMITxArgs.pu8KsXORLC128, pKsData, sizeof(MS_U8) * DEF_HDCP22_KS_SIZE);
2415*53ee8cc1Swenshuai.xi
2416*53ee8cc1Swenshuai.xi ulReturnValue = UtopiaIoctl(pInstanceTmp, u32Cmd, &stHDMITxArgs);
2417*53ee8cc1Swenshuai.xi
2418*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8Riv);
2419*53ee8cc1Swenshuai.xi free(stHDMITxArgs.pu8KsXORLC128);
2420*53ee8cc1Swenshuai.xi }
2421*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_RIV_SIZE
2422*53ee8cc1Swenshuai.xi #undef DEF_HDCP22_KS_SIZE
2423*53ee8cc1Swenshuai.xi }
2424*53ee8cc1Swenshuai.xi
2425*53ee8cc1Swenshuai.xi break;
2426*53ee8cc1Swenshuai.xi
2427*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_COLOR_AND_RANGE_TRANSFORM:
2428*53ee8cc1Swenshuai.xi {
2429*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2430*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_COLOR_AND_RANGE_TRANSFORM\r\n");
2431*53ee8cc1Swenshuai.xi #endif
2432*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_COLORRANGE_TRANSFORM, spt_HDMITX_COLORRANGE_TRANSFORM, usbuffer_arg, sizeof(usbuffer_arg));
2433*53ee8cc1Swenshuai.xi }
2434*53ee8cc1Swenshuai.xi break;
2435*53ee8cc1Swenshuai.xi
2436*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SSC_ENABLE:
2437*53ee8cc1Swenshuai.xi {
2438*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2439*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SSC_ENABLE\r\n");
2440*53ee8cc1Swenshuai.xi #endif
2441*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETSSCENABLE, spt_HDMITX_SETSSCENABLE, usbuffer_arg, sizeof(usbuffer_arg));
2442*53ee8cc1Swenshuai.xi }
2443*53ee8cc1Swenshuai.xi break;
2444*53ee8cc1Swenshuai.xi
2445*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SET_COLORIMETRY:
2446*53ee8cc1Swenshuai.xi {
2447*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2448*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETCOLORIMETRY\r\n");
2449*53ee8cc1Swenshuai.xi #endif
2450*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETCOLORIMETRY, spt_HDMITX_SETCOLORIMETRY, usbuffer_arg, sizeof(usbuffer_arg));
2451*53ee8cc1Swenshuai.xi }
2452*53ee8cc1Swenshuai.xi break;
2453*53ee8cc1Swenshuai.xi
2454*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_GET_FULL_RX_STATUS:
2455*53ee8cc1Swenshuai.xi {
2456*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2457*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SETCOLORIMETRY\r\n");
2458*53ee8cc1Swenshuai.xi #endif
2459*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_GET_FULL_RX_STATUS, spt_HDMITX_GET_FULL_RX_STATUS, usbuffer_arg, sizeof(usbuffer_arg));
2460*53ee8cc1Swenshuai.xi }
2461*53ee8cc1Swenshuai.xi break;
2462*53ee8cc1Swenshuai.xi
2463*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_TIMING_CAPABILITY_CHECK:
2464*53ee8cc1Swenshuai.xi {
2465*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2466*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_TIMING_CAPABILITY_CHECK\r\n");
2467*53ee8cc1Swenshuai.xi #endif
2468*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_CHECK_LEGAL_TIMING, spt_HDMITX_CHECK_LEGAL_TIMING, usbuffer_arg, sizeof(usbuffer_arg));
2469*53ee8cc1Swenshuai.xi }
2470*53ee8cc1Swenshuai.xi break;
2471*53ee8cc1Swenshuai.xi
2472*53ee8cc1Swenshuai.xi case E_HDMITX_CMD_SETVIDEOUTPUTTIMINGBYCUSTOMER:
2473*53ee8cc1Swenshuai.xi {
2474*53ee8cc1Swenshuai.xi #if EN_HDMITX_ADP_LOG
2475*53ee8cc1Swenshuai.xi printk("E_HDMITX_CMD_SetVideoOutputTimingByCustomer\r\n");
2476*53ee8cc1Swenshuai.xi #endif
2477*53ee8cc1Swenshuai.xi ulReturnValue = UADPBypassIoctl(pInstanceTmp, u32Cmd, pArgs, spt_HDMITX_SETVIDEOUTPUTTIMINGBYCUSTOMER, NULL, usbuffer_arg, sizeof(usbuffer_arg));
2478*53ee8cc1Swenshuai.xi }
2479*53ee8cc1Swenshuai.xi break;
2480*53ee8cc1Swenshuai.xi };
2481*53ee8cc1Swenshuai.xi
2482*53ee8cc1Swenshuai.xi return ulReturnValue;
2483*53ee8cc1Swenshuai.xi }
2484*53ee8cc1Swenshuai.xi
2485*53ee8cc1Swenshuai.xi #endif //#ifndef _ADP_HDMITX_C_
2486*53ee8cc1Swenshuai.xi
2487