1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 // Software and any modification/derivatives thereof.
18 // No right, ownership, or interest to MStar Software and any
19 // modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 // supplied together with third party`s software and the use of MStar
23 // Software may require additional licenses from third parties.
24 // Therefore, you hereby agree it is your sole responsibility to separately
25 // obtain any and all third party right and license necessary for your use of
26 // such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 // MStar`s confidential information and you agree to keep MStar`s
30 // confidential information in strictest confidence and not disclose to any
31 // third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 // kind. Any warranties are hereby expressly disclaimed by MStar, including
35 // without limitation, any warranties of merchantability, non-infringement of
36 // intellectual property rights, fitness for a particular purpose, error free
37 // and in conformity with any international standard. You agree to waive any
38 // claim against MStar for any loss, damage, cost or expense that you may
39 // incur related to your use of MStar Software.
40 // In no event shall MStar be liable for any direct, indirect, incidental or
41 // consequential damages, including without limitation, lost of profit or
42 // revenues, lost or damage of data, and unauthorized system use.
43 // You agree that this Section 4 shall still apply without being affected
44 // even if MStar Software has been modified by MStar in accordance with your
45 // request or instruction for your use, except otherwise agreed by both
46 // parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 // services in relation with MStar Software to you for your use of
50 // MStar Software in conjunction with your or your customer`s product
51 // ("Services").
52 // You understand and agree that, except otherwise agreed by both parties in
53 // writing, Services are provided on an "AS IS" basis and the warranty
54 // disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 // or otherwise:
58 // (a) conferring any license or right to use MStar name, trademark, service
59 // mark, symbol or any other identification;
60 // (b) obligating MStar or any of its affiliates to furnish any person,
61 // including without limitation, you and your customers, any assistance
62 // of any kind whatsoever, or any information; or
63 // (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 // of Taiwan, R.O.C., excluding its conflict of law rules.
67 // Any and all dispute arising out hereof or related hereto shall be finally
68 // settled by arbitration referred to the Chinese Arbitration Association,
69 // Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 // Rules of the Association by three (3) arbitrators appointed in accordance
71 // with the said Rules.
72 // The place of arbitration shall be in Taipei, Taiwan and the language shall
73 // be English.
74 // The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2006-2007 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // (��MStar Confidential Information��) by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94
95 ///////////////////////////////////////////////////////////////////////////////////////////////////
96 ///
97 /// file apiHDMITx.c
98 /// @author MStar Semiconductor,Inc.
99 /// @brief HDMI Tx Api
100 ///////////////////////////////////////////////////////////////////////////////////////////////////
101
102 #ifndef HDMITX_SUPPORT
103
104 //-------------------------------------------------------------------------------------------------
105 // Include Files
106 //-------------------------------------------------------------------------------------------------
107
108 #ifndef MSOS_TYPE_LINUX_KERNEL
109 #include <stdlib.h>
110 #include <string.h>
111 #else
112 #include <linux/time.h>
113 #endif /* #include MSOS_TYPE_LINUX_KERNEL */
114
115 #include "MsCommon.h"
116 #include "drvHDMITx.h"
117 #include "apiHDMITx.h"
118 #ifdef CUSTOMER_NDS
119 #include "apiHDMITx_NDS.h"
120 #endif // CUSTOMER_NDS
121 //#include "drvMAD.h"
122
123 //-------------------------------------------------------------------------------------------------
124 // Local Defines
125 //-------------------------------------------------------------------------------------------------
126
127
128
129 //-------------------------------------------------------------------------------------------------
130 // Local Structures
131 //-------------------------------------------------------------------------------------------------
132
133
134
135 //-------------------------------------------------------------------------------------------------
136 // Global Variables
137 //-------------------------------------------------------------------------------------------------
138
139 extern MDrvHDMITX_PARAMETER_LIST gHDMITxInfo;
140 extern MS_BOOL g_bDisableRegWrite;
141 extern MS_BOOL g_bDisableTMDSCtrl;
142 //-------------------------------------------------------------------------------------------------
143 // Local Variables
144 //-------------------------------------------------------------------------------------------------
145
146
147
148 //-------------------------------------------------------------------------------------------------
149 // Debug Functions
150 //-------------------------------------------------------------------------------------------------
151
152
153 //-------------------------------------------------------------------------------------------------
154 // Local Functions
155 //-------------------------------------------------------------------------------------------------
156
157
158
159
160
161
162 //-------------------------------------------------------------------------------------------------
163 // Global Functions
164 //-------------------------------------------------------------------------------------------------
165
166
167 //*********************//
168 // DVI / HDMI //
169 //*********************//
170
171 //------------------------------------------------------------------------------
172 /// @brief This routine initial HDMI Tx Module
173 /// @return None
174 //------------------------------------------------------------------------------
MApi_HDMITx_Init(void)175 MS_BOOL DLL_PUBLIC MApi_HDMITx_Init(void)
176 {
177 return FALSE;
178 }
179
180 //------------------------------------------------------------------------------
181 /// @brief This routine exits HDMI Tx Module
182 /// @return None
183 //------------------------------------------------------------------------------
MApi_HDMITx_Exit(void)184 MS_BOOL DLL_PUBLIC MApi_HDMITx_Exit(void)
185 {
186 return FALSE;
187 }
188
189 //------------------------------------------------------------------------------
190 /// @brief This routine turn on/off HDMI Tx Module
191 /// @param[in] state ON/OFF state
192 /// @return None
193 //------------------------------------------------------------------------------
MApi_HDMITx_TurnOnOff(MS_BOOL state)194 void DLL_PUBLIC MApi_HDMITx_TurnOnOff(MS_BOOL state)
195 {
196 return;
197 }
198
199 //------------------------------------------------------------------------------
200 /// @brief This routine config HDMI Tx Module output mode (DVI/HDMI)
201 /// @param[in] mode ON/OFF state
202 /// @return None
203 //------------------------------------------------------------------------------
MApi_HDMITx_SetHDMITxMode(HDMITX_OUTPUT_MODE mode)204 void DLL_PUBLIC MApi_HDMITx_SetHDMITxMode(HDMITX_OUTPUT_MODE mode)
205 {
206 return;
207 }
208
209 //------------------------------------------------------------------------------
210 /// @brief This routine config HDMI Tx Module output mode (DVI/HDMI) and deep color depth
211 /// @param[in] mode ON/OFF state
212 /// @return None
213 //------------------------------------------------------------------------------
MApi_HDMITx_SetHDMITxMode_CD(HDMITX_OUTPUT_MODE mode,HDMITX_VIDEO_COLORDEPTH_VAL val)214 void DLL_PUBLIC MApi_HDMITx_SetHDMITxMode_CD(HDMITX_OUTPUT_MODE mode, HDMITX_VIDEO_COLORDEPTH_VAL val)
215 {
216 return;
217 }
218
219 //------------------------------------------------------------------------------
220 /// @brief This routine config HDMI Tx Module TMDS signal On/Off
221 /// @param[in] state ON/OFF state
222 /// @return None
223 //------------------------------------------------------------------------------
MApi_HDMITx_SetTMDSOnOff(MS_BOOL state)224 void DLL_PUBLIC MApi_HDMITx_SetTMDSOnOff(MS_BOOL state)
225 {
226 return;
227 }
228
229 //------------------------------------------------------------------------------
230 /// @brief This routine disable HDMI Tx TMDS control
231 /// @param[in] bFlag Disable/Enable
232 /// @return None
233 //------------------------------------------------------------------------------
MApi_HDMITx_DisableTMDSCtrl(MS_BOOL bFlag)234 void DLL_PUBLIC MApi_HDMITx_DisableTMDSCtrl(MS_BOOL bFlag)
235 {
236 return;
237 }
238
239 //------------------------------------------------------------------------------
240 /// @brief This routine swap R and B channel color
241 /// @param[in] state ON/OFF state
242 /// @return None
243 //-----------------------------------------------------------------------------
MApi_HDMITx_SetRBChannelSwap(MS_BOOL state)244 void DLL_PUBLIC MApi_HDMITx_SetRBChannelSwap(MS_BOOL state)
245 {
246 return;
247 }
248
MApi_HDMITx_EDID_HDMISupport(MS_BOOL * HDMI_Support)249 MS_BOOL DLL_PUBLIC MApi_HDMITx_EDID_HDMISupport(MS_BOOL *HDMI_Support)
250 {
251 return FALSE;
252 }
253
254 //------------------------------------------------------------------------------
255 /// @brief This routine getting Rx's data block length from EDID
256 /// @param[in] pu8Length pointer of buffer
257 /// @param[in] u8TagCode
258 /// @return Ture: EDID is ready
259 /// FALSE: EDID is not ready
260 //-----------------------------------------------------------------------------
MApi_HDMITx_GetDataBlockLengthFromEDID(MS_U8 * pu8Length,MS_U8 u8TagCode)261 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetDataBlockLengthFromEDID(MS_U8 *pu8Length, MS_U8 u8TagCode)
262 {
263 return FALSE;
264 }
265
266 //------------------------------------------------------------------------------
267 /// @brief This routine doing HDMITx exhibition
268 /// @return None
269 //-----------------------------------------------------------------------------
MApi_HDMITx_Exhibit(void)270 void DLL_PUBLIC MApi_HDMITx_Exhibit(void)
271 {
272 return;
273 }
274
275 //------------------------------------------------------------------------------
276 /// @brief This routine getting the connected HDMI Rx status
277 /// @return Ture: Rx is alive
278 /// FALSE: Rx is dead
279 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRxStatus(void)280 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRxStatus(void)
281 {
282 return FALSE;
283 }
284
285 //------------------------------------------------------------------------------
286 /// @brief This routine getting Rx's deep color definition from EDID
287 /// @return Ture: EDID is ready
288 /// FALSE: EDID is not ready
289 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRxDCInfoFromEDID(HDMITX_VIDEO_COLORDEPTH_VAL * val)290 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRxDCInfoFromEDID(HDMITX_VIDEO_COLORDEPTH_VAL *val)
291 {
292 return FALSE;
293 }
294
295 //------------------------------------------------------------------------------
296 /// @brief This routine getting Rx's support video format from EDID
297 /// @param[in] pu8Buffer pointer of buffer
298 /// @param[in] u8BufSize buffer size
299 /// @return Ture: EDID is ready
300 /// FALSE: EDID is not ready
301 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRxVideoFormatFromEDID(MS_U8 * pu8Buffer,MS_U8 u8BufSize)302 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRxVideoFormatFromEDID(MS_U8 *pu8Buffer, MS_U8 u8BufSize)
303 {
304 return FALSE;
305 }
306
307 //------------------------------------------------------------------------------
308 /// @brief This routine getting Rx's support audio format from EDID
309 /// @param[in] pu8Buffer pointer of buffer
310 /// @param[in] u8BufSize buffer size
311 /// @return Ture: EDID is ready
312 /// FALSE: EDID is not ready
313 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRxAudioFormatFromEDID(MS_U8 * pu8Buffer,MS_U8 u8BufSize)314 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRxAudioFormatFromEDID(MS_U8 *pu8Buffer, MS_U8 u8BufSize)
315 {
316 return FALSE;
317 }
318
319 //------------------------------------------------------------------------------
320 /// @brief This routine getting Rx's ID Manu facturer Name from EDID
321 /// @param[in] pu8Buffer pointer of buffer
322 /// @return Ture: EDID is ready
323 /// FALSE: EDID is not ready
324 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRxIDManufacturerName(MS_U8 * pu8Buffer)325 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRxIDManufacturerName(MS_U8 *pu8Buffer)
326 {
327 return FALSE;
328 }
329
330
331 //------------------------------------------------------------------------------
332 /// @brief This routine getting Rx's EDID Data
333 /// @param[in] pu8Buffer pointer of buffer
334 /// @param[in] BlockIdx 0: for 0~127, 1: for 128~255
335 /// @return Ture: EDID is ready
336 /// FALSE: EDID is not ready
337 //-----------------------------------------------------------------------------
MApi_HDMITx_GetEDIDData(MS_U8 * pu8Buffer,MS_BOOL BlockIdx)338 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetEDIDData(MS_U8 *pu8Buffer, MS_BOOL BlockIdx)
339 {
340 return FALSE;
341 }
342
343 //------------------------------------------------------------------------------
344 /// @brief This routine gets Rx's supported 3D structures of specific timing from EDID
345 /// @param[in] timing input video timing
346 /// @param[in] p3DStructure pointer of supported 3D structure
347 /// @return Ture: EDID is ready
348 /// FALSE: EDID is not ready
349 //-----------------------------------------------------------------------------
MApi_HDMITx_GetRx3DStructureFromEDID(HDMITX_VIDEO_TIMING timing,HDMITX_EDID_3D_STRUCTURE_ALL * p3DStructure)350 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetRx3DStructureFromEDID(HDMITX_VIDEO_TIMING timing, HDMITX_EDID_3D_STRUCTURE_ALL *p3DStructure)
351 {
352 return FALSE;
353 }
354
355 //------------------------------------------------------------------------------
356 /// @brief This function clear settings of user defined packet
357 /// @return None
358 //-----------------------------------------------------------------------------
MApi_HDMITx_PKT_User_Define_Clear(void)359 void DLL_PUBLIC MApi_HDMITx_PKT_User_Define_Clear(void)
360 {
361 return;
362 }
363
364 //------------------------------------------------------------------------------
365 /// @brief This function set user defined hdmi packet
366 /// @param[in] packet_type: type of user defined packet
367 /// @param[in] def_flag: enable/disable user defined packet
368 /// @param[in] def_process: packet process of user defined packet
369 /// @param[in] def_fcnt: frame counts of user defined packet (0~31)
370 /// @return None
371 //-----------------------------------------------------------------------------
MApi_HDMITx_PKT_User_Define(HDMITX_PACKET_TYPE packet_type,MS_BOOL def_flag,HDMITX_PACKET_PROCESS def_process,MS_U8 def_fcnt)372 void DLL_PUBLIC MApi_HDMITx_PKT_User_Define(HDMITX_PACKET_TYPE packet_type, MS_BOOL def_flag,
373 HDMITX_PACKET_PROCESS def_process, MS_U8 def_fcnt)
374 {
375 return;
376 }
377
378 //------------------------------------------------------------------------------
379 /// @brief This function let user define packet's content
380 /// @param[in] packet_type: type of user defined packet
381 /// @param[in] data: content of user defined packet
382 /// @param[in] length: length of packet content
383 /// @return None
384 //------------------------------------------------------------------------------
MApi_HDMITx_PKT_Content_Define(HDMITX_PACKET_TYPE packet_type,MS_U8 * data,MS_U8 length)385 MS_BOOL DLL_PUBLIC MApi_HDMITx_PKT_Content_Define(HDMITX_PACKET_TYPE packet_type, MS_U8 *data, MS_U8 length)
386 {
387 return FALSE;
388 }
389
390
391 //*********************//
392 // Video //
393 //*********************//
394
395 //------------------------------------------------------------------------------
396 /// @brief This routine turn on/off HDMI Tx Module video output
397 /// @param[in] state ON/OFF state
398 /// @return None
399 //-----------------------------------------------------------------------------
MApi_HDMITx_SetVideoOnOff(MS_BOOL state)400 void DLL_PUBLIC MApi_HDMITx_SetVideoOnOff(MS_BOOL state)
401 {
402 return;
403 }
404
405 //------------------------------------------------------------------------------
406 /// @brief This routine config HDMI Tx Module video color format
407 /// @param[in] in_color input color format
408 /// @param[in] out_color output color format
409 /// @return None
410 //-----------------------------------------------------------------------------
MApi_HDMITx_SetColorFormat(HDMITX_VIDEO_COLOR_FORMAT in_color,HDMITX_VIDEO_COLOR_FORMAT out_color)411 void DLL_PUBLIC MApi_HDMITx_SetColorFormat(HDMITX_VIDEO_COLOR_FORMAT in_color, HDMITX_VIDEO_COLOR_FORMAT out_color)
412 {
413 return;
414 }
415
416
417 //------------------------------------------------------------------------------
418 /// @brief This routine config HDMI Tx vs packet content
419 /// @param[in] in_color input color format
420 /// @param[in] out_color output color format
421 /// @return None
422 //-----------------------------------------------------------------------------
MApi_HDMITx_Set_VS_InfoFrame(HDMITX_VIDEO_VS_FORMAT vs_format,HDMITX_VIDEO_3D_STRUCTURE vs_3d,HDMITX_VIDEO_4k2k_VIC vs_vic)423 void DLL_PUBLIC MApi_HDMITx_Set_VS_InfoFrame(HDMITX_VIDEO_VS_FORMAT vs_format, HDMITX_VIDEO_3D_STRUCTURE vs_3d, HDMITX_VIDEO_4k2k_VIC vs_vic)
424 {
425 return;
426 }
427
428
429 //------------------------------------------------------------------------------
430 /// @brief This routine config HDMI Tx Module video output timing
431 /// @param[in] mode output video timing
432 /// @return None
433 //-----------------------------------------------------------------------------
MApi_HDMITx_SetVideoOutputTiming(HDMITX_VIDEO_TIMING mode)434 void DLL_PUBLIC MApi_HDMITx_SetVideoOutputTiming(HDMITX_VIDEO_TIMING mode)
435 {
436 return;
437 }
438
439 //------------------------------------------------------------------------------
440 /// @brief This routine config HDMI Tx video output aspect ratio
441 /// @param[in] out_ar output video aspect ratio
442 /// @return None
443 //-----------------------------------------------------------------------------
MApi_HDMITx_SetVideoOutputAsepctRatio(HDMITX_VIDEO_ASPECT_RATIO out_ar)444 void DLL_PUBLIC MApi_HDMITx_SetVideoOutputAsepctRatio(HDMITX_VIDEO_ASPECT_RATIO out_ar)
445 {
446 return;
447 }
448
449
450 // HDMI Tx video output Overscan and AFD ratio
MApi_HDMITx_SetVideoOutputOverscan_AFD(MS_BOOL bflag,HDMITX_VIDEO_SCAN_INFO out_scaninfo,MS_U8 out_afd)451 void DLL_PUBLIC MApi_HDMITx_SetVideoOutputOverscan_AFD(MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd)
452 {
453 return;
454 }
455
456 //*********************//
457 // Audio //
458 //*********************//
459
460 //------------------------------------------------------------------------------
461 /// @brief This routine turn on/off HDMI Tx Module audio output
462 /// @param[in] state output video timing
463 /// @return None
464 //-----------------------------------------------------------------------------
MApi_HDMITx_SetAudioOnOff(MS_BOOL state)465 void DLL_PUBLIC MApi_HDMITx_SetAudioOnOff(MS_BOOL state)
466 {
467 return;
468 }
469
470 //------------------------------------------------------------------------------
471 /// @brief This routine config HDMI Tx Module audio output sampling frequency and channel count
472 /// @param[in] freq audio frequency
473 /// @return None
474 // For Uranus
475 //-----------------------------------------------------------------------------
MApi_HDMITx_SetAudioFrequency(HDMITX_AUDIO_FREQUENCY freq)476 void DLL_PUBLIC MApi_HDMITx_SetAudioFrequency(HDMITX_AUDIO_FREQUENCY freq)
477 {
478 return;
479 }
480
MApi_HDMITx_SetVideoOutputOverscan_AFD_II(MS_BOOL bflag,HDMITX_VIDEO_SCAN_INFO out_scaninfo,MS_U8 out_afd,MS_U8 A0)481 void DLL_PUBLIC MApi_HDMITx_SetVideoOutputOverscan_AFD_II(MS_BOOL bflag, HDMITX_VIDEO_SCAN_INFO out_scaninfo, MS_U8 out_afd, MS_U8 A0 )
482 {
483 return;
484 }
485
486 //------------------------------------------------------------------------------
487 /// @brief This routine config HDMI Tx Module audio output: sampling frequency, channel count and coding type
488 /// @param[in] freq audio frequency
489 /// @param[in] ch audio channel type
490 /// @param[in] type audio coding type
491 /// @return None
492 // For Oberon
493 //-----------------------------------------------------------------------------
MApi_HDMITx_SetAudioConfiguration(HDMITX_AUDIO_FREQUENCY freq,HDMITX_AUDIO_CHANNEL_COUNT ch,HDMITX_AUDIO_CODING_TYPE type)494 void DLL_PUBLIC MApi_HDMITx_SetAudioConfiguration(HDMITX_AUDIO_FREQUENCY freq, HDMITX_AUDIO_CHANNEL_COUNT ch, HDMITX_AUDIO_CODING_TYPE type)
495 {
496 return;
497 }
498
499 //------------------------------------------------------------------------------
500 /// @brief This routine Get Audio CTS value
501 /// @return CTS
502 //------------------------------------------------------------------------------
MApi_HDMITx_GetAudioCTS(void)503 MS_U32 DLL_PUBLIC MApi_HDMITx_GetAudioCTS(void)
504 {
505 return FALSE;
506 }
507
508 //------------------------------------------------------------------------------
509 /// @brief This routine Mute Audio FIFO
510 /// @param[in] bflag: True: mute audio, False: unmute audio
511 /// @return None
512 //------------------------------------------------------------------------------
MApi_HDMITx_MuteAudioFIFO(MS_BOOL bflag)513 void DLL_PUBLIC MApi_HDMITx_MuteAudioFIFO(MS_BOOL bflag)
514 {
515 return;
516 }
517
518 //*********************//
519 // HDCP //
520 //*********************//
521
522 //------------------------------------------------------------------------------
523 /// @brief This routine get HDCP key
524 /// @param[in] useinternalkey: TRUE -> from internal, FALSE -> from external, like SPI flash
525 /// @param[in] data: data point
526 /// @return None
527 //------------------------------------------------------------------------------
MApi_HDMITx_GetHdcpKey(MS_BOOL useinternalkey,MS_U8 * data)528 void DLL_PUBLIC MApi_HDMITx_GetHdcpKey(MS_BOOL useinternalkey, MS_U8 *data)
529 {
530 return;
531 }
532
533 //------------------------------------------------------------------------------
534 /// @brief This routine turn on/off HDMI Tx Module HDCP encryption
535 /// @param[in] state ON/OFF state
536 /// @return None
537 //-----------------------------------------------------------------------------
MApi_HDMITx_SetHDCPOnOff(MS_BOOL state)538 void DLL_PUBLIC MApi_HDMITx_SetHDCPOnOff(MS_BOOL state)
539 {
540 return;
541 }
542
543 //------------------------------------------------------------------------------
544 /// @brief This routine set HDMI Tx AVMUTE
545 /// @argument:
546 /// - bflag: True=> SET_AVMUTE, FALSE=>CLEAR_AVMUTE
547 ///
548 /// @return None
549 //------------------------------------------------------------------------------
MApi_HDMITx_SetAVMUTE(MS_BOOL bflag)550 void DLL_PUBLIC MApi_HDMITx_SetAVMUTE(MS_BOOL bflag)
551 {
552 return;
553 }
554
555 //------------------------------------------------------------------------------
556 /// @brief This routine get HDMI Tx AVMUTE status
557 /// @argument:
558 ///
559 /// @return:
560 /// - True=> SET_AVMUTE, FALSE=>CLEAR_AVMUTE
561 //------------------------------------------------------------------------------
MApi_HDMITx_GetAVMUTEStatus(void)562 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetAVMUTEStatus(void)
563 {
564 return FALSE;
565 }
566
567
568 //------------------------------------------------------------------------------
569 /// @brief This routine check whether SRM DSA signauter is valid or not
570 /// @argument:
571 /// - *data: data point
572 /// - size: size of SRM list(bytes)
573 /// @return:
574 /// Ture: valid, FALSE: invalid
575 //------------------------------------------------------------------------------
MApi_HDMITx_HDCP_IsSRMSignatureValid(MS_U8 * data,MS_U32 size)576 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_IsSRMSignatureValid(MS_U8 *data, MS_U32 size)
577 {
578 return FALSE;
579 }
580
581
582 //------------------------------------------------------------------------------
583 /// @brief This routine get HDCP authentication status
584 /// @argument:
585 /// @return:
586 /// E_HDCP_DISABLE = 0, // HDCP disable
587 /// E_HDCP_FAIL = 1, // HDCP fail
588 /// E_HDCP_PASS = 2, // HDCP pass
589 //------------------------------------------------------------------------------
MApi_HDMITx_GetHDCPStatus(void)590 HDMITX_HDCP_STATUS DLL_PUBLIC MApi_HDMITx_GetHDCPStatus(void)
591 {
592 return FALSE;
593 }
594
595 //------------------------------------------------------------------------------
596 /// @brief This routine get HDCP authentication status
597 /// @argument:
598 /// @return:
599 /// HDMITX_INT_HDCP_DISABLE = 0, // HDCP disable
600 /// HDMITX_INT_HDCP_FAIL = 1, // HDCP fail
601 /// HDMITX_INT_HDCP_PASS = 2, // HDCP pass
602 /// HDMITX_INT_HDCP_PROCESS = 3, // HDCP processing
603 //------------------------------------------------------------------------------
MApi_HDMITx_GetINTHDCPStatus(void)604 HDMITX_INT_HDCP_STATUS DLL_PUBLIC MApi_HDMITx_GetINTHDCPStatus(void)
605 {
606 return FALSE;
607 }
608
609 //------------------------------------------------------------------------------
610 /// @brief This routine set HDMI video output or blank or encryption while connected with unsupport HDCP Rx
611 /// @argument:
612 /// E_UNHDCPRX_NORMAL_OUTPUT = 0, // still display normally
613 /// E_UNHDCPRX_HDCP_ENCRYPTION = 1, // HDCP encryption to show snow screen
614 /// E_UNHDCPRX_BLUE_SCREEN = 2, // blue screen
615 /// @return:
616 //------------------------------------------------------------------------------
MApi_HDMITx_UnHDCPRxControl(HDMITX_UNHDCPRX_CONTROL state)617 void DLL_PUBLIC MApi_HDMITx_UnHDCPRxControl(HDMITX_UNHDCPRX_CONTROL state)
618 {
619 return;
620 }
621
622
623 //------------------------------------------------------------------------------
624 /// @brief This routine set HDMI video output or blank or encryption while HDCP authentication fail
625 /// @argument:
626 /// E_HDCPRXFail_NORMAL_OUTPUT = 0, // still display normally
627 /// E_HDCPRXFail_HDCP_ENCRYPTION = 1, // HDCP encryption to show snow screen
628 /// E_HDCPRXFail_BLUE_SCREEN = 2, // blue screen
629 /// @return:
630 //------------------------------------------------------------------------------
MApi_HDMITx_HDCPRxFailControl(HDMITX_HDCPRXFail_CONTROL state)631 void DLL_PUBLIC MApi_HDMITx_HDCPRxFailControl(HDMITX_HDCPRXFail_CONTROL state)
632 {
633 return;
634 }
635
636
637 // Debug
MApi_HDMITx_GetLibVer(const MSIF_Version ** ppVersion)638 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetLibVer(const MSIF_Version **ppVersion)
639 {
640 return FALSE;
641 }
MApi_HDMITx_GetInfo(HDMI_TX_INFO * pInfo)642 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetInfo(HDMI_TX_INFO *pInfo)
643 {
644 return FALSE;
645 }
MApi_HDMITx_GetStatus(HDMI_TX_Status * pStatus)646 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetStatus(HDMI_TX_Status *pStatus)
647 {
648 return FALSE;
649 }
650 /**
651 * @brief set debug mask
652 * @param[in] u16DbgSwitch DEBUG MASK,
653 * 0x01: Debug HDMITX, 0x02: Debug HDCP
654 */
MApi_HDMITx_SetDbgLevel(MS_U16 u16DbgSwitch)655 MS_BOOL DLL_PUBLIC MApi_HDMITx_SetDbgLevel(MS_U16 u16DbgSwitch)
656 {
657 return FALSE;
658 }
659
MApi_HDMITx_SetHPDGpioPin(MS_U8 u8pin)660 void DLL_PUBLIC MApi_HDMITx_SetHPDGpioPin(MS_U8 u8pin)
661 {
662 return;
663 }
664
665 // Adjust HDMITx analog setting for HDMI test or compliant issue
MApi_HDMITx_AnalogTuning(HDMITX_ANALOG_TUNING * pInfo)666 void DLL_PUBLIC MApi_HDMITx_AnalogTuning(HDMITX_ANALOG_TUNING *pInfo)
667 {
668 return;
669 }
670
671 //------------------------------------------------------------------------------
672 /// @brief This routine turn on/off HDMI Tx output force mode
673 /// @argument:
674 /// - bflag: TRUE: force mode, FALSE: auto mode
675 /// - output_mode: HDMITX_DVI: DVI, HDMITX_HDMI: HDMI
676 /// @return None
677 //------------------------------------------------------------------------------
MApi_HDMITx_ForceHDMIOutputMode(MS_BOOL bflag,HDMITX_OUTPUT_MODE output_mode)678 void DLL_PUBLIC MApi_HDMITx_ForceHDMIOutputMode(MS_BOOL bflag, HDMITX_OUTPUT_MODE output_mode)
679 {
680 return;
681 }
682
683 //------------------------------------------------------------------------------
684 /// @brief This routine turn on/off HDMI Tx output force color format
685 /// @argument:
686 /// - bflag: TRUE: force output color format, FALSE: auto mode
687 /// - output_mode: HDMITX_VIDEO_COLOR_RGB444: RGB, HDMITX_VIDEO_COLOR_YUV444: YUV
688 /// @return Ture: Set force output color format successfully
689 /// FALSE: Fail to set force output color format
690 //------------------------------------------------------------------------------
MApi_HDMITx_ForceHDMIOutputColorFormat(MS_BOOL bflag,HDMITX_VIDEO_COLOR_FORMAT output_color)691 MS_BOOL DLL_PUBLIC MApi_HDMITx_ForceHDMIOutputColorFormat(MS_BOOL bflag, HDMITX_VIDEO_COLOR_FORMAT output_color)
692 {
693 return FALSE;
694 }
695
696 //------------------------------------------------------------------------------
697 /// @brief This routine set flag to mask register write for special case \n
698 /// e.g. MBoot to APP with logo display
699 /// @argument:
700 /// - bFlag: TRUE: Mask register write, FALSE: not Mask
701 /// @return None
702 //------------------------------------------------------------------------------
MApi_HDMITx_DisableRegWrite(MS_BOOL bFlag)703 void DLL_PUBLIC MApi_HDMITx_DisableRegWrite(MS_BOOL bFlag)
704 {
705 return;
706 }
707
708
709 //*********************//
710 // CEC //
711 //*********************//
712
713 //------------------------------------------------------------------------------
714 /// @brief This routine get EDID physical address
715 /// @argument:
716 /// - pdata: two bytes of physical address, ie. 1.0.0.0 => 0x10 0x00
717 /// @return None
718 //------------------------------------------------------------------------------
MApi_HDMITx_GetEDIDPhyAdr(MS_U8 * pdata)719 void DLL_PUBLIC MApi_HDMITx_GetEDIDPhyAdr(MS_U8 *pdata)
720 {
721 return;
722 }
723
724 //------------------------------------------------------------------------------
725 /// @brief This routine turn on/off HDMI Tx CEC
726 /// @argument:
727 /// - bflag: TRUE: Enable, FALSE: Disable
728 /// @return None
729 //------------------------------------------------------------------------------
MApi_HDMITx_SetCECOnOff(MS_BOOL bflag)730 void DLL_PUBLIC MApi_HDMITx_SetCECOnOff(MS_BOOL bflag)
731 {
732 return;
733 }
734
735 //------------------------------------------------------------------------------
736 /// @brief This routine get HDMI Tx CEC On/Off status
737 /// @argument: None
738 /// @return: CEC On/Off status
739 //------------------------------------------------------------------------------
MApi_HDMITx_GetCECStatus(void)740 MS_BOOL DLL_PUBLIC MApi_HDMITx_GetCECStatus(void)
741 {
742 return FALSE;
743 }
744
745 //------------------------------------------------------------------------------
746 /// @brief This routine get EDID from reciver
747 /// @argument: None
748 /// @return: read status
749 //------------------------------------------------------------------------------
MApi_HDMITx_EdidChecking(void)750 MS_BOOL DLL_PUBLIC MApi_HDMITx_EdidChecking(void)
751 {
752 return FALSE;
753 }
754
755 //*********************//
756 // RxBypassMode //
757 //*********************//
758 //------------------------------------------------------------------------------
759 /// @brief This routine set Rx Bypass Mode
760 /// @argument: freq: Input Freq; bflag:DDC/CEC/ARC bypass
761 /// @return: setting status.
762 //------------------------------------------------------------------------------
MApi_HDMITx_RxBypass_Mode(HDMITX_INPUT_FREQ freq,MS_BOOL bflag)763 MS_BOOL DLL_PUBLIC MApi_HDMITx_RxBypass_Mode(HDMITX_INPUT_FREQ freq, MS_BOOL bflag)
764 {
765 return FALSE;
766 }
767
768
769 // ************* For customer NDS **************//
770 #ifdef CUSTOMER_NDS
771
772 //17.7.7.5 Ioctl: Get Events
MApi_HDMITx_Get_Events(MS_U32 * events,MS_BOOL bEraseEvent)773 MS_BOOL DLL_PUBLIC MApi_HDMITx_Get_Events(MS_U32 *events, MS_BOOL bEraseEvent)
774 {
775 return FALSE;
776 }
777
778 //17.7.7.8 Ioctl: Get Connection Status
MApi_HDMITx_Get_Rx_CONNECTION_STATUS(HDMIConnectionStatus * status)779 MS_BOOL DLL_PUBLIC MApi_HDMITx_Get_Rx_CONNECTION_STATUS(HDMIConnectionStatus *status)
780 {
781 return FALSE;
782 }
783
784 //17.7.7.9 Ioctl: Get EEDID Block
785 /* This function returns 0 if success, otherwise returns non-zero */
MApi_HDMITx_Get_EEDID_Block(HDMIGetEEDIDBlock * eedid)786 MS_BOOL DLL_PUBLIC MApi_HDMITx_Get_EEDID_Block(HDMIGetEEDIDBlock *eedid)
787 {
788 return FALSE;
789 }
790
791 //17.7.7.10 Ioctl: Start
MApi_HDMITx_Set_HDMI_Protocol(MS_U8 protocol)792 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_HDMI_Protocol(MS_U8 protocol)
793 {
794 return FALSE;
795 }
796
797 //17.7.7.11 Ioctl: Stop
MApi_HDMITx_Stop(void)798 MS_BOOL DLL_PUBLIC MApi_HDMITx_Stop(void)
799 {
800 return FALSE;
801 }
802
803 //17.7.7.14 Ioctl: Set Video Code
804 // VIC codes: {6, 21, 2, 17, 19, 4, 20, 5, 32, 33, 34, 31, 16} => 480i60,576i50,480p60,576p50,720p50,720p60,1080i50,1080i60,1080p24,1080p25,1080p30,1080p50,1080p60
MApi_HDMITx_Set_Video_Code(MS_U8 * videoCode)805 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_Video_Code(MS_U8 *videoCode)
806 {
807 return FALSE;
808 }
809
810 //17.7.7.15 Ioctl: Set Pixel Format
MApi_HDMITx_Set_Pixel_Format(MS_U8 * pixelFormat)811 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_Pixel_Format(MS_U8 *pixelFormat)
812 {
813 return FALSE;
814 }
815
816 //17.7.7.16 Ioctl: Set Aspect Ratio
MApi_HDMITx_Set_Aspect_Ratio(HDMIAspectRatio * aspectRatio)817 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_Aspect_Ratio(HDMIAspectRatio *aspectRatio)
818 {
819 return FALSE;
820 }
821
822 //17.7.7.17 Ioctl: Set Colorimetry
MApi_HDMITx_Set_Colorimetry(HDMIColorimetry * colorimetryData)823 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_Colorimetry(HDMIColorimetry *colorimetryData)
824 {
825 return FALSE;
826 }
827
828
829 //17.7.7.18 Ioctl: Set AVMUTE
830 //17.7.7.19 Ioctl: Clear AVMUTE
MApi_HDMITx_Set_AVMUTE(MS_BOOL bflag)831 MS_BOOL DLL_PUBLIC MApi_HDMITx_Set_AVMUTE(MS_BOOL bflag)
832 {
833 return FALSE;
834 }
835
836 //17.7.7.20 Ioctl: HDCP Start Authentication
MApi_HDMITx_HDCP_Start_Authentication(void)837 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Start_Authentication(void)
838 {
839 return FALSE;
840 }
841
842 //17.7.7.21 Ioctl: HDCP Stop Authentication
MApi_HDMITx_HDCP_Stop_Authentication(void)843 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Stop_Authentication(void)
844 {
845 return FALSE;
846 }
847
848 //17.7.7.22 Ioctl: HDCP Get Bcaps
849 /* This function returns 0 if success, otherwise returns non-zero */
MApi_HDMITx_HDCP_Get_BCaps(HDMIHDCPBCaps * arg)850 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Get_BCaps(HDMIHDCPBCaps *arg)
851 {
852 return FALSE;
853 }
854
855 //17.7.7.23 Ioctl: HDCP Get Bstatus
856 /* This function returns 0 if success, otherwise returns non-zero */
MApi_HDMITx_HDCP_Get_BStatus(HDMIHDCPBStatus * arg)857 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Get_BStatus(HDMIHDCPBStatus *arg)
858 {
859 return FALSE;
860 }
861
862 //17.7.7.24 Ioctl: HDCP Send SRM List
MApi_HDMITx_HDCP_Send_SRM(DigitalCPSrm * srm)863 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Send_SRM(DigitalCPSrm *srm)
864 {
865 return FALSE;
866 }
867
MApi_HDMITx_HDCP_Reset_SRM(void)868 void DLL_PUBLIC MApi_HDMITx_HDCP_Reset_SRM(void)
869 {
870 return;
871 }
872
873 //17.7.7.25 Ioctl: HDCP Encryption Control
MApi_HDMITx_HDCP_Encryption_Enable(MS_U8 control)874 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Encryption_Enable(MS_U8 control)
875 {
876 return FALSE;
877 }
878
879 //17.7.7.26 Ioctl: HDCP Get Status
MApi_HDMITx_HDCP_Get_HDCP_Status(MS_U8 * status)880 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Get_HDCP_Status(MS_U8 *status)
881 {
882 return FALSE;
883 }
884
885 //17.7.7.27 Ioctl: HDCP Configure
MApi_HDMITx_HDCP_Configure(HDMIHDCPConfiguration * arg)886 MS_BOOL DLL_PUBLIC MApi_HDMITx_HDCP_Configure(HDMIHDCPConfiguration *arg)
887 {
888 return FALSE;
889 }
890
891 #endif //CUSTOMER_NDS
892
893 #endif
894
895