v_hdmitxss
Vitis Drivers API Documentation
xv_hdmitxss.c File Reference

Overview

This is main code of Xilinx HDMI Transmitter Subsystem device driver.

Please see xv_hdmitxss.h for more details of the driver.

MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 10/07/15 Initial release. 1.01 MG 17/12/16 Fixed issue in function SetAudioChannels Updated function XV_HdmiTxSs_SendAuxInfoframe 1.02 yh 12/01/16 Check vtc existance before configuring it 1.03 yh 15/01/16 Add 3D Support 1.04 yh 20/01/16 Added remapper support 1.05 yh 01/02/16 Added set_ppc api 1.06 yh 01/02/16 Removed xil_print "Cable (dis)connected" 1.07 yh 15/02/16 Added default value to XV_HdmiTxSs_ConfigRemapper 1.08 MG 03/02/16 Added HDCP support 1.09 MG 09/03/16 Added XV_HdmiTxSs_SetHdmiMode and XV_HdmiTxSs_SetDviMode Removed reduced blanking support 1.10 MH 03/15/16 Moved HDCP 2.2 reset from stream up/down callback to connect callback 1.11 YH 18/03/16 Add XV_HdmiTxSs_SendGenericAuxInfoframe function 1.12 MH 23/04/16 1. HDCP 1.x driver now uses AXI timer 4.1, so updated to use AXI Timer config structure to determine timer clock frequency 2. HDCP 1.x driver has fixed the problem where the reset for the receiver causes the entire DDC peripheral to get reset. Based on this change the driver has been updated to use XV_HdmiTxSs_HdcpReset and XV_HdmiTxSs_HdcpReset functions directly. 3. Updated XV_HdmiTxSs_HdcpEnable and XV_HdmiTxSs_HdcpEnable functions to ensure that HDCP 1.4 and 2.2 are mutually exclusive. This fixes the problem where HDCP 1.4 and 2.2 state machines are running simultaneously. 1.13 MH 23/06/16 Added HDCP repeater support. 1.14 YH 18/07/16 1. Replace xil_print with xdbg_printf. 2. XV_HdmiTx_VSIF VSIF global variable local to XV_HdmiTxSs_SendVSInfoframe 3. Replace MB_Sleep() with usleep 4. Remove checking VideoMode < XVIDC_VM_NUM_SUPPORTED in XV_HdmiTxSs_SetStream to support customized video format 1.15 YH 25/07/16 Used UINTPTR instead of u32 for BaseAddress XV_HdmiTxSs_CfgInitialize 1.16 YH 04/08/16 Remove unused functions XV_HdmiTxSs_GetSubSysStruct 1.17 MH 08/08/16 Updates to optimize out HDCP when excluded. 1.18 YH 17/08/16 Remove sleep in XV_HdmiTxSs_ResetRemapper Added Event Log Combine Report function into one ReportInfo 1.19 YH 27/08/16 Remove unused functions XV_HdmiTxSs_SetUserTimerHandler XV_HdmiTxSs_WaitUs 1.20 MH 08/10/16 Update function call sequence in XV_HdmiTxSs_StreamUpCallback

1.1x   mmo   04/11/16 Updated the XV_HdmiTxSs_SetAudioChannels API which
                      currently calls XV_HdmiTx_SetAudioChannels driver,
                      which sets the Audio Channels
                      accordingly. This fixed is made during v1.2 (2016.1)
1.21  YH     14/11/16 Added API to enable/disable YUV420/Pixel Repeat Mode
                      for video bridge
1.22  YH     14/11/16 Remove Remapper APIs as remapper feature is moved to
                      video bridge and controlled by HDMI core
1.23  mmo    03/01/17 Move HDCP Related API to xv_hdmitxss_hdcp.c
                      Remove inclusion of the xenv.h and sleep.h as it not
                          used
                      Replaced "print" with "xil_printf"
                      Replace Carriage Return () and Line Feed (
) order,\ where the Carriage Return + Line Feed order is used. 1.24 mmo 02/03/17 Added XV_HdmiTxSs_ReadEdidSegment API for Multiple Segment Support and HDMI Compliance Test Updated the XV_HdmiTxSs_ShowEdid API to have support multiple EDID. 1.25 MH 21/04/17 Updated to set HDMI mode in functions XV_HdmiTxSS_SetHdmiMode and XV_HdmiTxSS_SetDviMode. 1.40 YH 07/07/17 Fixed issue with VTC register read when video clock is not present Report HDMI/DVI mode in HDMI example design info log Added Video Masking APIs 1.41 mmo 02/08/17 Initialize the hdcp1.4 first before the hdcp1.4 timer as the hdcp1.4 timer requires hdcp1.4 to be initialize MH 09/08/17 Added function XV_HdmiTxSs_HdcpSetCapability 22/08/17 Added function XV_HdmiTxSs_SetAudioFormat 1.42 YH 06/10/17 Updated function XV_HdmiTxSs_SetAudioFormat Added function XV_HdmiTxSs_GetAudioFormat EB 17/10/17 Added function XV_HdmiTxSs_ReportAudio Updated function XV_HdmiTxSs_ReportInfo 1.43 MMO 19/12/17 Added XV_HdmiTxSS_SetTMDS API 5.00 EB 16/01/18 Updated XV_HdmiTxSS_SetTMDS API Updated XV_HdmiTxSs_SetVideoStream API Moved XV_HdmiTxSs_SendVSInfoframe function to HDMI Common Library Updated function XV_HdmiTxSs_StreamStart, XV_HdmiTxSs_SendGenericAuxInfoframe Added function XV_HdmiTxSs_GetAviInfoframe, XV_HdmiTxSs_GetAudioInfoframe, XV_HdmiTxSs_GetVSIF XV_HdmiTxSs_GetAuxiliary Updated XV_HdmiTxSs_ConfigBridgeMode so Pixel Pepetition AVI InfoFrame is sent out Deprecating XV_HdmiTxSs_SendAviInfoframe and XV_HdmiTxSs_SendGeneralControlPacket APIs YH 16/01/18 Added dedicated reset for each clock domain Added bridge unlock interrupt Added PIO_OUT to set GCP_AVMUTE EB 23/01/18 Added function XV_HdmiTxSs_SetVideoStreamHdmi14ScramblingOverrideFlag 25/01/18 Added function XV_HdmiTxSs_SetScrambler 01/02/18 Updated function XV_HdmiTxSs_VtcSetup and changed the input parameters to it to enable logging of unsupported video timing by VTC SM 28/02/18 Added definition of XV_HdmiTxSS_SetAppVersion() API 5.20 EB 03/08/18 Updated XV_HdmiTxSS_MaskSetRed, XV_HdmiTxSS_MaskSetGreen, XV_HdmiTxSS_MaskSetBlue API Replaced XV_HdmiTx_AudioMute API call with XV_HdmiTx_AudioDisable Replaced XV_HdmiTx_AudioUnmute API call with XV_HdmiTx_AudioEnable Replaced XV_HdmiTx_AudioUnmute API call with MMO 11/08/18 Added Bridge Overflow and Bridge Underflow Interrupt

Macros

#define XV_HdmiTxSs_BridgeYuv420(InstancePtr, Enable)
 This macro selects the bridge YUV420 mode. More...
 
#define XV_HdmiTxSs_BridgePixelRepeat(InstancePtr, Enable)
 This macro selects the bridge pixel repeat mode. More...
 

Functions

void XV_HdmiTxSS_SetHdmiMode (XV_HdmiTxSs *InstancePtr)
 This function sets the core into HDMI mode. More...
 
void XV_HdmiTxSS_SetDviMode (XV_HdmiTxSs *InstancePtr)
 This function sets the core into DVI mode. More...
 
void XV_HdmiTxSS_HdmiTxIntrHandler (XV_HdmiTxSs *InstancePtr)
 This function calls the interrupt handler for HDMI TX. More...
 
int XV_HdmiTxSs_CfgInitialize (XV_HdmiTxSs *InstancePtr, XV_HdmiTxSs_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the video subsystem and included sub-cores. More...
 
void XV_HdmiTxSs_Start (XV_HdmiTxSs *InstancePtr)
 This function starts the HDMI TX subsystem including all sub-cores that are included in the processing pipeline for a given use-case. More...
 
void XV_HdmiTxSs_Stop (XV_HdmiTxSs *InstancePtr)
 This function stops the HDMI TX subsystem including all sub-cores Stop the video pipe starting from front to back. More...
 
void XV_HdmiTxSs_Reset (XV_HdmiTxSs *InstancePtr)
 This function resets the video subsystem sub-cores. More...
 
void XV_HdmiTxSs_TXCore_VRST (XV_HdmiTxSs *InstancePtr, u8 Reset)
 This function asserts or releases the Internal Video reset of the HDMI subcore within the subsystem. More...
 
void XV_HdmiTxSs_TXCore_LRST (XV_HdmiTxSs *InstancePtr, u8 Reset)
 This function asserts or releases the Internal Link reset of the HDMI subcore within the subsystem. More...
 
void XV_HdmiTxSs_VRST (XV_HdmiTxSs *InstancePtr, u8 Reset)
 This function asserts or releases the video reset of other blocks within the subsystem. More...
 
void XV_HdmiTxSs_SYSRST (XV_HdmiTxSs *InstancePtr, u8 Reset)
 This function asserts or releases the system reset of other blocks within the subsystem. More...
 
void XV_HdmiTxSs_SetGcpAvmuteBit (XV_HdmiTxSs *InstancePtr)
 This function sets the HDMI TX AUX GCP register AVMUTE bit. More...
 
void XV_HdmiTxSs_ClearGcpAvmuteBit (XV_HdmiTxSs *InstancePtr)
 This function clears the HDMI TX AUX GCP register AVMUTE bit. More...
 
void XV_HdmiTxSs_SetGcpClearAvmuteBit (XV_HdmiTxSs *InstancePtr)
 This function sets the HDMI TX AUX GCP register CLEAR_AVMUTE bit. More...
 
void XV_HdmiTxSs_ClearGcpClearAvmuteBit (XV_HdmiTxSs *InstancePtr)
 This function clears the HDMI TX AUX GCP register CLEAR_AVMUTE bit. More...
 
int XV_HdmiTxSs_SetCallback (XV_HdmiTxSs *InstancePtr, XV_HdmiTxSs_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
int XV_HdmiTxSs_ReadEdid (XV_HdmiTxSs *InstancePtr, u8 *Buffer)
 This function reads the HDMI Sink EDID. More...
 
int XV_HdmiTxSs_ReadEdidSegment (XV_HdmiTxSs *InstancePtr, u8 *Buffer, u8 segment)
 This function reads one block from the HDMI Sink EDID. More...
 
void XV_HdmiTxSs_ShowEdid (XV_HdmiTxSs *InstancePtr)
 This function shows the HDMI source edid. More...
 
void XV_HdmiTxSs_StreamStart (XV_HdmiTxSs *InstancePtr)
 This function starts the HDMI TX stream. More...
 
void XV_HdmiTxSs_SetScrambler (XV_HdmiTxSs *InstancePtr, u8 Enable)
 This function enables / disables the TX scrambler. More...
 
void XV_HdmiTxSs_SendAuxInfoframe (XV_HdmiTxSs *InstancePtr, void *Aux)
 This function sends audio info frames. More...
 
u32 XV_HdmiTxSs_SendGenericAuxInfoframe (XV_HdmiTxSs *InstancePtr, void *Aux)
 This function sends generic info frames. More...
 
void XV_HdmiTxSs_SetAudioChannels (XV_HdmiTxSs *InstancePtr, u8 AudioChannels)
 This function Sets the HDMI TX SS number of active audio channels. More...
 
void XV_HdmiTxSs_AudioMute (XV_HdmiTxSs *InstancePtr, u8 Enable)
 This function set HDMI TX audio parameters. More...
 
void XV_HdmiTxSs_SetAudioFormat (XV_HdmiTxSs *InstancePtr, XV_HdmiTx_AudioFormatType format)
 This function Sets the HDMI TX SS Audio Format. More...
 
XV_HdmiTx_AudioFormatType XV_HdmiTxSs_GetAudioFormat (XV_HdmiTxSs *InstancePtr)
 This function gets the active audio format. More...
 
XHdmiC_Aux * XV_HdmiTxSs_GetAuxiliary (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS Aux structure. More...
 
XHdmiC_AVI_InfoFrame * XV_HdmiTxSs_GetAviInfoframe (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS AVI InfoFrame structure. More...
 
XHdmiC_AudioInfoFrame * XV_HdmiTxSs_GetAudioInfoframe (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS Audio InfoFrame structure. More...
 
XHdmiC_VSIF * XV_HdmiTxSs_GetVSIF (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS Vendor Specific InfoFrame structure. More...
 
XHdmiC_DRMInfoFrame * XV_HdmiTxSs_GetDrmInfoframe (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS DRM InfoFrame structure. More...
 
u32 XV_HdmiTxSs_SetStream (XV_HdmiTxSs *InstancePtr, XVidC_VideoMode VideoMode, XVidC_ColorFormat ColorFormat, XVidC_ColorDepth Bpc, XVidC_3DInfo *Info3D)
 This function set HDMI TX susbsystem stream parameters. More...
 
XVidC_VideoStream * XV_HdmiTxSs_GetVideoStream (XV_HdmiTxSs *InstancePtr)
 This function returns the pointer to HDMI TX SS video stream. More...
 
void XV_HdmiTxSs_SetVideoStream (XV_HdmiTxSs *InstancePtr, XVidC_VideoStream VidStream)
 This function Sets the HDMI TX SS video stream. More...
 
void XV_HdmiTxSs_SetSamplingRate (XV_HdmiTxSs *InstancePtr, u8 SamplingRate)
 This function Sets the HDMI TX SS video Identification code. More...
 
void XV_HdmiTxSs_SetVideoIDCode (XV_HdmiTxSs *InstancePtr, u8 Vic)
 This function Sets the HDMI TX SS video Identification code. More...
 
void XV_HdmiTxSs_SetVideoStreamType (XV_HdmiTxSs *InstancePtr, u8 StreamType)
 This function Sets the HDMI TX SS video stream type. More...
 
void XV_HdmiTxSs_SetVideoStreamScramblingFlag (XV_HdmiTxSs *InstancePtr, u8 IsScrambled)
 This function Sets the HDMI TX SS video stream type. More...
 
void XV_HdmiTxSs_SetVideoStreamScramblingOverrideFlag (XV_HdmiTxSs *InstancePtr, u8 OverrideScramble)
 This function Sets the HDMI TX SS video stream scrambling behaviour. More...
 
void XV_HdmiTxSs_SetTmdsClockRatio (XV_HdmiTxSs *InstancePtr, u8 Ratio)
 This function Sets the HDMI TX SS TMDS Cock Ratio. More...
 
u32 XV_HdmiTxSs_GetTmdsClockFreqHz (XV_HdmiTxSs *InstancePtr)
 This function Sets the HDMI TX SS video Identification code. More...
 
int XV_HdmiTxSs_DetectHdmi20 (XV_HdmiTxSs *InstancePtr)
 This function detects connected sink is a HDMI 2.0/HDMI 1.4 sink device. More...
 
void XV_HdmiTxSs_RefClockChangeInit (XV_HdmiTxSs *InstancePtr)
 This function is called when HDMI TX SS TMDS clock changes. More...
 
void XV_HdmiTxSs_ReportInfo (XV_HdmiTxSs *InstancePtr)
 This function prints the HDMI TX SS subcore versions. More...
 
int XV_HdmiTxSs_IsStreamUp (XV_HdmiTxSs *InstancePtr)
 This function checks if the video stream is up. More...
 
int XV_HdmiTxSs_IsStreamConnected (XV_HdmiTxSs *InstancePtr)
 This function checks if the interface is connected. More...
 
int XV_HdmiTxSs_IsStreamToggled (XV_HdmiTxSs *InstancePtr)
 This function checks if the interface has toggled. More...
 
void XV_HdmiTxSs_SetDefaultPpc (XV_HdmiTxSs *InstancePtr, u8 Id)
 This function will set the default in HDF. More...
 
void XV_HdmiTxSs_SetPpc (XV_HdmiTxSs *InstancePtr, u8 Id, u8 Ppc)
 This function will set PPC specified by user. More...
 
void XV_HdmiTxSS_MaskEnable (XV_HdmiTxSs *InstancePtr)
 This function will enable the video masking. More...
 
void XV_HdmiTxSS_MaskDisable (XV_HdmiTxSs *InstancePtr)
 This function will disable the video masking. More...
 
void XV_HdmiTxSS_MaskNoise (XV_HdmiTxSs *InstancePtr, u8 Enable)
 This function will enable or disable the noise in the video mask. More...
 
void XV_HdmiTxSS_MaskSetRed (XV_HdmiTxSs *InstancePtr, u16 Value)
 This function will set the red component in the video mask. More...
 
void XV_HdmiTxSS_MaskSetGreen (XV_HdmiTxSs *InstancePtr, u16 Value)
 This function will set the green component in the video mask. More...
 
void XV_HdmiTxSS_MaskSetBlue (XV_HdmiTxSs *InstancePtr, u16 Value)
 This function will set the blue component in the video mask. More...
 
void XV_HdmiTxSS_SetBackgroundColor (XV_HdmiTxSs *InstancePtr, XVMaskColorId ColorId)
 This function configures the background color for Video Masking Feature. More...
 
u8 XV_HdmiTxSS_IsMasked (XV_HdmiTxSs *InstancePtr)
 This function will get the current video mask mode. More...
 
void XV_HdmiTxSS_SetAppVersion (XV_HdmiTxSs *InstancePtr, u8 maj, u8 min)
 This function will set the major and minor application version in TXSs struct. More...
 

Variables

XV_HdmiTxSs_SubCores XV_HdmiTxSs_SubCoreRepo [XPAR_XV_HDMITXSS_NUM_INSTANCES]
 Define Driver instance of all sub-core included in the design. More...
 

Macro Definition Documentation

#define XV_HdmiTxSs_BridgePixelRepeat (   InstancePtr,
  Enable 
)
Value:
{ \
XV_HdmiTx_Bridge_pixel(InstancePtr->HdmiTxPtr, Enable); \
}

This macro selects the bridge pixel repeat mode.

Parameters
InstancePtris a pointer to the HDMI TX Subsystem
#define XV_HdmiTxSs_BridgeYuv420 (   InstancePtr,
  Enable 
)
Value:
{ \
XV_HdmiTx_Bridge_yuv420(InstancePtr->HdmiTxPtr, Enable); \
}

This macro selects the bridge YUV420 mode.

Parameters
InstancePtris a pointer to the HDMI TX Subsystem

Function Documentation

void XV_HdmiTxSs_AudioMute ( XV_HdmiTxSs InstancePtr,
u8  Enable 
)

This function set HDMI TX audio parameters.

Parameters
Enable0: Unmute the audio 1: Mute the audio.
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr, XV_HDMITXSS_LOG_EVT_AUDIOMUTE, XV_HDMITXSS_LOG_EVT_AUDIOUNMUTE, and XV_HdmiTxSs_LogWrite().

Referenced by XV_HdmiTxSs_SetVideoStreamType().

int XV_HdmiTxSs_CfgInitialize ( XV_HdmiTxSs InstancePtr,
XV_HdmiTxSs_Config CfgPtr,
UINTPTR  EffectiveAddr 
)

This function initializes the video subsystem and included sub-cores.

This function must be called prior to using the subsystem. Initialization includes setting up the instance data for top level as well as all included sub-core therein, and ensuring the hardware is in a known stable state.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
CfgPtrpoints to the configuration structure associated with the subsystem instance.
EffectiveAddris the base address of the device. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.
Returns
XST_SUCCESS if initialization is successful else XST_FAILURE

References XV_HdmiTxSs::AppMajVer, XV_HdmiTxSs::AppMinVer, XV_HdmiTxSs::AudioInfoframe, XV_HdmiTxSs::AVIInfoframe, XV_HdmiTxSs_Config::AxiLiteClkFreq, XV_HdmiTxSs_Config::BaseAddress, XV_HdmiTxSs::Config, XV_HdmiTxSs_Config::DeviceId, XV_HdmiTxSs::DrmInfoframe, XV_HdmiTxSs::HdcpProtocol, XV_HdmiTxSs::HdmiTxPtr, XV_HdmiTxSs::IsReady, XV_HdmiTxSs::VSIF, XV_HdmiTxSs::VtcPtr, XV_HDMITXSS_HDCP_BOTH, XV_HDMITXSS_HDCP_NONE, XV_HdmiTxSs_Reset(), XV_HdmiTxSs_SubcoreInitHdmiTx(), and XV_HdmiTxSs_SubcoreInitVtc().

void XV_HdmiTxSs_ClearGcpAvmuteBit ( XV_HdmiTxSs InstancePtr)

This function clears the HDMI TX AUX GCP register AVMUTE bit.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_ClearGcpClearAvmuteBit ( XV_HdmiTxSs InstancePtr)

This function clears the HDMI TX AUX GCP register CLEAR_AVMUTE bit.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

int XV_HdmiTxSs_DetectHdmi20 ( XV_HdmiTxSs InstancePtr)

This function detects connected sink is a HDMI 2.0/HDMI 1.4 sink device.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Returns
  • XST_SUCCESS if HDMI 2.0
  • XST_FAILURE if HDMI 1.4
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

XV_HdmiTx_AudioFormatType XV_HdmiTxSs_GetAudioFormat ( XV_HdmiTxSs InstancePtr)

This function gets the active audio format.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Returns
Active audio format of HDMI Tx Subsystem
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

XHdmiC_AudioInfoFrame* XV_HdmiTxSs_GetAudioInfoframe ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS Audio InfoFrame structure.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XHdmiC_AudioInfoFrame pointer
Note
None.

References XV_HdmiTxSs::AudioInfoframe.

XHdmiC_Aux* XV_HdmiTxSs_GetAuxiliary ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS Aux structure.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XVidC_VideoStream pointer
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

XHdmiC_AVI_InfoFrame* XV_HdmiTxSs_GetAviInfoframe ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS AVI InfoFrame structure.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XHdmiC_AVI_InfoFrame pointer
Note
None.

References XV_HdmiTxSs::AVIInfoframe.

XHdmiC_DRMInfoFrame* XV_HdmiTxSs_GetDrmInfoframe ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS DRM InfoFrame structure.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XHdmiC_DRMInfoFrame pointer
Note
None.

References XV_HdmiTxSs::DrmInfoframe.

u32 XV_HdmiTxSs_GetTmdsClockFreqHz ( XV_HdmiTxSs InstancePtr)

This function Sets the HDMI TX SS video Identification code.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
@returnStream Data Structure (TMDS Clock)
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

XVidC_VideoStream* XV_HdmiTxSs_GetVideoStream ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS video stream.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XVidC_VideoStream pointer
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

XHdmiC_VSIF* XV_HdmiTxSs_GetVSIF ( XV_HdmiTxSs InstancePtr)

This function returns the pointer to HDMI TX SS Vendor Specific InfoFrame structure.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Returns
XHdmiC_VSIF pointer
Note
None.

References XV_HdmiTxSs::VSIF.

void XV_HdmiTxSS_HdmiTxIntrHandler ( XV_HdmiTxSs InstancePtr)

This function calls the interrupt handler for HDMI TX.

Parameters
InstancePtris a pointer to the HDMI TX Subsystem

References XV_HdmiTxSs::HdmiTxPtr.

u8 XV_HdmiTxSS_IsMasked ( XV_HdmiTxSs InstancePtr)

This function will get the current video mask mode.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Returns
Current mode. 0 = Video masking is disabled 1 = Video masking is enabled
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

int XV_HdmiTxSs_IsStreamConnected ( XV_HdmiTxSs InstancePtr)

This function checks if the interface is connected.

Parameters
None.
Returns
  • TRUE if the interface is connected.
  • FALSE if the interface is not connected.
Note
None.

References XV_HdmiTxSs::IsStreamConnected.

int XV_HdmiTxSs_IsStreamToggled ( XV_HdmiTxSs InstancePtr)

This function checks if the interface has toggled.

Parameters
None.
Returns
  • TRUE if the interface HPD has toggled.
  • FALSE if the interface HPD has not toggled.
Note
None.

References XV_HdmiTxSs::IsStreamToggled.

int XV_HdmiTxSs_IsStreamUp ( XV_HdmiTxSs InstancePtr)

This function checks if the video stream is up.

Parameters
None.
Returns
  • TRUE if stream is up.
  • FALSE if stream is down.
Note
None.

References XV_HdmiTxSs::IsStreamUp.

void XV_HdmiTxSS_MaskDisable ( XV_HdmiTxSs InstancePtr)

This function will disable the video masking.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSS_MaskEnable ( XV_HdmiTxSs InstancePtr)

This function will enable the video masking.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

void XV_HdmiTxSS_MaskNoise ( XV_HdmiTxSs InstancePtr,
u8  Enable 
)

This function will enable or disable the noise in the video mask.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Enablespecifies TRUE/FALSE value to either enable or disable the Noise.
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

void XV_HdmiTxSS_MaskSetBlue ( XV_HdmiTxSs InstancePtr,
u16  Value 
)

This function will set the blue component in the video mask.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Valuespecifies the video mask value set to blue component
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

void XV_HdmiTxSS_MaskSetGreen ( XV_HdmiTxSs InstancePtr,
u16  Value 
)

This function will set the green component in the video mask.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Valuespecifies the video mask value set to green component
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

void XV_HdmiTxSS_MaskSetRed ( XV_HdmiTxSs InstancePtr,
u16  Value 
)

This function will set the red component in the video mask.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Valuespecifies the video mask value set to red component
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSS_SetBackgroundColor().

int XV_HdmiTxSs_ReadEdid ( XV_HdmiTxSs InstancePtr,
u8 *  Buffer 
)

This function reads the HDMI Sink EDID.

Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr, and XV_HdmiTxSs::IsStreamConnected.

int XV_HdmiTxSs_ReadEdidSegment ( XV_HdmiTxSs InstancePtr,
u8 *  Buffer,
u8  segment 
)

This function reads one block from the HDMI Sink EDID.

Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr, and XV_HdmiTxSs::IsStreamConnected.

Referenced by XV_HdmiTxSs_ShowEdid().

void XV_HdmiTxSs_RefClockChangeInit ( XV_HdmiTxSs InstancePtr)

This function is called when HDMI TX SS TMDS clock changes.

Parameters
None.
Returns
None
Note
None.

References XV_HdmiTxSs::HdmiTxPtr, XV_HdmiTxSs_SYSRST(), XV_HdmiTxSs_TXCore_LRST(), XV_HdmiTxSs_TXCore_VRST(), and XV_HdmiTxSs_VRST().

void XV_HdmiTxSs_ReportInfo ( XV_HdmiTxSs InstancePtr)

This function prints the HDMI TX SS subcore versions.

Parameters
None.
Returns
None.
Note
None.
void XV_HdmiTxSs_Reset ( XV_HdmiTxSs InstancePtr)

This function resets the video subsystem sub-cores.

There are 2 reset networks within the subsystem

  • For cores that are on AXIS interface
  • For cores that are on AXI-MM interface
Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HDMITXSS_LOG_EVT_RESET, XV_HdmiTxSs_LogWrite(), XV_HdmiTxSs_SYSRST(), XV_HdmiTxSs_TXCore_LRST(), XV_HdmiTxSs_TXCore_VRST(), and XV_HdmiTxSs_VRST().

Referenced by XV_HdmiTxSs_CfgInitialize().

void XV_HdmiTxSs_SendAuxInfoframe ( XV_HdmiTxSs InstancePtr,
void *  Aux 
)

This function sends audio info frames.

Parameters
None.
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

u32 XV_HdmiTxSs_SendGenericAuxInfoframe ( XV_HdmiTxSs InstancePtr,
void *  Aux 
)

This function sends generic info frames.

Parameters
None.
Returns
  • XST_SUCCESS if infoframes transmitted successfully.
  • XST_FAILURE if AUX FIFO is full.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSS_SetAppVersion ( XV_HdmiTxSs InstancePtr,
u8  maj,
u8  min 
)

This function will set the major and minor application version in TXSs struct.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
majis the major version of the application.
minis the minor version of the application.
Returns
void.
Note
None.

References XV_HdmiTxSs::AppMajVer, and XV_HdmiTxSs::AppMinVer.

void XV_HdmiTxSs_SetAudioChannels ( XV_HdmiTxSs InstancePtr,
u8  AudioChannels 
)

This function Sets the HDMI TX SS number of active audio channels.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
AudioChannels
Returns
None.
Note
None.

References XV_HdmiTxSs::AudioChannels, XV_HdmiTxSs::AudioInfoframe, XV_HdmiTxSs::HdmiTxPtr, XV_HDMITXSS_LOG_EVT_SETAUDIOCHANNELS, and XV_HdmiTxSs_LogWrite().

void XV_HdmiTxSs_SetAudioFormat ( XV_HdmiTxSs InstancePtr,
XV_HdmiTx_AudioFormatType  format 
)

This function Sets the HDMI TX SS Audio Format.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
format1:HBR 0:L-PCM
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSS_SetBackgroundColor ( XV_HdmiTxSs InstancePtr,
XVMaskColorId  ColorId 
)

This function configures the background color for Video Masking Feature.

Parameters
InstancePtris a pointer to the core instance to be worked on.
ColorIdis the background color requested
Returns
None

References XV_HdmiTxSs::HdmiTxPtr, XV_HdmiTxSs_GetVideoStream(), XV_HdmiTxSS_MaskEnable(), XV_HdmiTxSS_MaskNoise(), XV_HdmiTxSS_MaskSetBlue(), XV_HdmiTxSS_MaskSetGreen(), and XV_HdmiTxSS_MaskSetRed().

int XV_HdmiTxSs_SetCallback ( XV_HdmiTxSs InstancePtr,
XV_HdmiTxSs_HandlerType  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

This function installs an asynchronous callback function for the given HandlerType:

HandlerType                     Callback Function Type
-----------------------         ---------------------------------------------
(XV_HDMITXSS_HANDLER_CONNECT)       HpdCallback
(XV_HDMITXSS_HANDLER_VS)            VsCallback
(XV_HDMITXSS_HANDLER_STREAM_DOWN)   StreamDownCallback
(XV_HDMITXSS_HANDLER_STREAM_UP)     StreamUpCallback
(XV_HDMITXSS_HANDLER_BRDGOVERFLOW)  BrdgOverflowCallback
(XV_HDMITXSS_HANDLER_BRDGUNDERFLOW) BrdgUnderflowCallback
(XV_HDMITXSS_HANDLER_HDCP_AUTHENTICATED)
(XV_HDMITXSS_HANDLER_HDCP_DOWNSTREAM_TOPOLOGY_AVAILABLE)
(XV_HDMITXSS_HANDLER_HDCP_UNAUTHENTICATED)
Parameters
InstancePtris a pointer to the HDMI TX Subsystem instance.
HandlerTypespecifies the type of handler.
CallbackFuncis the address of the callback function.
CallbackRefis a user data item that will be passed to the callback function when it is invoked.
Returns
  • XST_SUCCESS if callback function installed successfully.
  • XST_INVALID_PARAM when HandlerType is invalid.
Note
Invoking this function for a handler that already has been installed replaces it with the new handler.

References XV_HdmiTxSs::BrdgOverflowCallback, XV_HdmiTxSs::BrdgOverflowRef, XV_HdmiTxSs::BrdgUnderflowCallback, XV_HdmiTxSs::BrdgUnderflowRef, XV_HdmiTxSs::BrdgUnlockedCallback, XV_HdmiTxSs::BrdgUnlockedRef, XV_HdmiTxSs::ConnectCallback, XV_HdmiTxSs::ConnectRef, XV_HdmiTxSs::StreamDownCallback, XV_HdmiTxSs::StreamDownRef, XV_HdmiTxSs::StreamUpCallback, XV_HdmiTxSs::StreamUpRef, XV_HdmiTxSs::ToggleCallback, XV_HdmiTxSs::ToggleRef, XV_HdmiTxSs::VsCallback, XV_HdmiTxSs::VsRef, XV_HDMITXSS_HANDLER_BRDGOVERFLOW, XV_HDMITXSS_HANDLER_BRDGUNDERFLOW, XV_HDMITXSS_HANDLER_BRDGUNLOCK, XV_HDMITXSS_HANDLER_CONNECT, XV_HDMITXSS_HANDLER_HDCP_AUTHENTICATED, XV_HDMITXSS_HANDLER_HDCP_DOWNSTREAM_TOPOLOGY_AVAILABLE, XV_HDMITXSS_HANDLER_HDCP_UNAUTHENTICATED, XV_HDMITXSS_HANDLER_STREAM_DOWN, XV_HDMITXSS_HANDLER_STREAM_UP, XV_HDMITXSS_HANDLER_TOGGLE, and XV_HDMITXSS_HANDLER_VS.

void XV_HdmiTxSs_SetDefaultPpc ( XV_HdmiTxSs InstancePtr,
u8  Id 
)

This function will set the default in HDF.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Idis the XV_HdmiTxSs ID to operate on.
Returns
None.
Note
None.

References XV_HdmiTxSs::Config, and XV_HdmiTxSs_Config::Ppc.

void XV_HdmiTxSS_SetDviMode ( XV_HdmiTxSs InstancePtr)

This function sets the core into DVI mode.

Parameters
InstancePtris a pointer to the HDMI TX Subsystem

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_SetVideoStreamType().

void XV_HdmiTxSs_SetGcpAvmuteBit ( XV_HdmiTxSs InstancePtr)

This function sets the HDMI TX AUX GCP register AVMUTE bit.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_SetGcpClearAvmuteBit ( XV_HdmiTxSs InstancePtr)

This function sets the HDMI TX AUX GCP register CLEAR_AVMUTE bit.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSS_SetHdmiMode ( XV_HdmiTxSs InstancePtr)

This function sets the core into HDMI mode.

Parameters
InstancePtris a pointer to the HDMI TX Subsystem

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_SetVideoStreamType(), and XV_HdmiTxSs_SubcoreInitHdmiTx().

void XV_HdmiTxSs_SetPpc ( XV_HdmiTxSs InstancePtr,
u8  Id,
u8  Ppc 
)

This function will set PPC specified by user.

Parameters
InstancePtris a pointer to the XV_HdmiTxSs core instance.
Idis the XV_HdmiTxSs ID to operate on.
Ppcis the PPC to be set.
Returns
None.
Note
None.

References XV_HdmiTxSs::Config, and XV_HdmiTxSs_Config::Ppc.

void XV_HdmiTxSs_SetSamplingRate ( XV_HdmiTxSs InstancePtr,
u8  SamplingRate 
)

This function Sets the HDMI TX SS video Identification code.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
SamplingRateValue
Returns
None.
Note
None.

References XV_HdmiTxSs::SamplingRate.

void XV_HdmiTxSs_SetScrambler ( XV_HdmiTxSs InstancePtr,
u8  Enable 
)

This function enables / disables the TX scrambler.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
EnableTRUE:Enable scrambler FALSE:Disable scrambler
Returns
None.
Note
The scrambler setting will revert to the default behavior during the next stream configuration (scrambler is enabled for HDMI 2.0 video and disabled when the video is of HDMI 1.4 or lower)

References XV_HdmiTxSs::HdmiTxPtr, and XV_HdmiTxSs_SetVideoStreamScramblingFlag().

u32 XV_HdmiTxSs_SetStream ( XV_HdmiTxSs InstancePtr,
XVidC_VideoMode  VideoMode,
XVidC_ColorFormat  ColorFormat,
XVidC_ColorDepth  Bpc,
XVidC_3DInfo *  Info3D 
)

This function set HDMI TX susbsystem stream parameters.

Parameters
None.
Returns
Calculated TMDS Clock
Note
None.

References XV_HdmiTxSs::Config, XV_HdmiTxSs::HdmiTxPtr, XV_HdmiTxSs_Config::Ppc, XV_HDMITXSS_LOG_EVT_SETSTREAM, and XV_HdmiTxSs_LogWrite().

void XV_HdmiTxSs_SetTmdsClockRatio ( XV_HdmiTxSs InstancePtr,
u8  Ratio 
)

This function Sets the HDMI TX SS TMDS Cock Ratio.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
Ratio0 - 1/10, 1 - 1/40
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_SetVideoIDCode ( XV_HdmiTxSs InstancePtr,
u8  Vic 
)

This function Sets the HDMI TX SS video Identification code.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
InstancePtrVIC Flag Value
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_SetVideoStream ( XV_HdmiTxSs InstancePtr,
XVidC_VideoStream  VidStream 
)

This function Sets the HDMI TX SS video stream.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
@returnXVidC_VideoStream pointer
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_SetVideoStreamScramblingFlag ( XV_HdmiTxSs InstancePtr,
u8  IsScrambled 
)

This function Sets the HDMI TX SS video stream type.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
IsScrambled1:IsScrambled 0: not Scrambled
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_SetScrambler().

void XV_HdmiTxSs_SetVideoStreamScramblingOverrideFlag ( XV_HdmiTxSs InstancePtr,
u8  OverrideScramble 
)

This function Sets the HDMI TX SS video stream scrambling behaviour.

Setting OverrideScramble to true will force enabling/disabling scrambling function based on the value of IsScrambled flag.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
OverrideScramble0: Scrambling is always enabled for HDMI 2.0 resolutions and is enabled /or disabled for HDMI 1.4 resolutions based on IsScrambled value 1: Enable scrambling if IsScrambled is TRUE and disable scrambling if IsScrambled is FALSE
Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr.

void XV_HdmiTxSs_SetVideoStreamType ( XV_HdmiTxSs InstancePtr,
u8  StreamType 
)

This function Sets the HDMI TX SS video stream type.

Parameters
InstancePtrpointer to XV_HdmiTxSs instance
InstancePtrVIC Value 1:HDMI 0:DVI
Returns
None.
Note
None.

References XV_HdmiTxSs_AudioMute(), XV_HdmiTxSS_SetDviMode(), and XV_HdmiTxSS_SetHdmiMode().

void XV_HdmiTxSs_ShowEdid ( XV_HdmiTxSs InstancePtr)

This function shows the HDMI source edid.

Returns
None.
Note
None.

References XV_HdmiTxSs::IsStreamConnected, and XV_HdmiTxSs_ReadEdidSegment().

void XV_HdmiTxSs_Start ( XV_HdmiTxSs InstancePtr)

This function starts the HDMI TX subsystem including all sub-cores that are included in the processing pipeline for a given use-case.

Video pipe is started from back to front

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None
Note
Cores are started only if the corresponding start flag in the scratch pad memory is set. This allows to selectively start only those cores included in the processing chain

References XV_HDMITXSS_LOG_EVT_START, and XV_HdmiTxSs_LogWrite().

void XV_HdmiTxSs_Stop ( XV_HdmiTxSs InstancePtr)

This function stops the HDMI TX subsystem including all sub-cores Stop the video pipe starting from front to back.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::VtcPtr, XV_HDMITXSS_LOG_EVT_STOP, and XV_HdmiTxSs_LogWrite().

void XV_HdmiTxSs_StreamStart ( XV_HdmiTxSs InstancePtr)

This function starts the HDMI TX stream.

Returns
None.
Note
None.

References XV_HdmiTxSs::HdmiTxPtr, XV_HDMITXSS_LOG_EVT_STREAMSTART, and XV_HdmiTxSs_LogWrite().

void XV_HdmiTxSs_SYSRST ( XV_HdmiTxSs InstancePtr,
u8  Reset 
)

This function asserts or releases the system reset of other blocks within the subsystem.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_RefClockChangeInit(), and XV_HdmiTxSs_Reset().

void XV_HdmiTxSs_TXCore_LRST ( XV_HdmiTxSs InstancePtr,
u8  Reset 
)

This function asserts or releases the Internal Link reset of the HDMI subcore within the subsystem.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_RefClockChangeInit(), and XV_HdmiTxSs_Reset().

void XV_HdmiTxSs_TXCore_VRST ( XV_HdmiTxSs InstancePtr,
u8  Reset 
)

This function asserts or releases the Internal Video reset of the HDMI subcore within the subsystem.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_RefClockChangeInit(), and XV_HdmiTxSs_Reset().

void XV_HdmiTxSs_VRST ( XV_HdmiTxSs InstancePtr,
u8  Reset 
)

This function asserts or releases the video reset of other blocks within the subsystem.

Parameters
InstancePtris a pointer to the Subsystem instance to be worked on.
Returns
None

References XV_HdmiTxSs::HdmiTxPtr.

Referenced by XV_HdmiTxSs_RefClockChangeInit(), and XV_HdmiTxSs_Reset().

Variable Documentation

XV_HdmiTxSs_SubCores XV_HdmiTxSs_SubCoreRepo[XPAR_XV_HDMITXSS_NUM_INSTANCES]

Define Driver instance of all sub-core included in the design.