v_hdmirxss
Vitis Drivers API Documentation
xv_hdmirxss.c File Reference

Overview

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

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

MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 10/07/15 Initial release. 1.1 yh 15/01/16 Added 3D Video support 1.2 yh 20/01/16 Added remapper support 1.3 yh 01/02/16 Added set_ppc api 1.4 yh 01/02/16 Removed xil_print "Cable (dis)connected" 1.5 yh 01/02/16 Removed xil_printf("Active audio channels...) 1.6 yh 15/02/16 Added default value to XV_HdmiRxSs_ConfigRemapper 1.7 MG 03/02/16 Added HDCP support 1.8 MG 10/02/16 Moved HDCP 2.2 reset from stream up/down callback to connect callback 1.9 MH 15/03/16 Added HDCP authenticated callback support 1.10 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_HdmiRxSs_HdcpReset and XV_HdmiRxSs_HdcpReset functions directly. 3. Updated XV_HdmiRxSs_HdcpEnable and XV_HdmiRxSs_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.11 MG 13/05/16 Added DDC peripheral HDCP mode selection to XV_HdmiRxSs_HdcpEnable 1.12 MH 23/06/16 Added HDCP repeater support. 1.13 YH 18/07/16 1. Replace xil_print with xdbg_printf. 2. Replace MB_Sleep() with usleep() 1.14 YH 25/07/16 Used UINTPTR instead of u32 for BaseAddress XV_HdmiRxSs_CfgInitialize 1.15 MH 26/07/16 Updates for automatic protocol switching 1.16 MH 05/08/16 Updates to optimize out HDCP when excluded 1.17 YH 17/08/16 Remove sleep in XV_HdmiRxSs_ResetRemapper squash unused variable compiler warning Added Event Log 1.18 MH 08/10/16 Improve HDCP 1.4 authentication 1.19 MG 31/10/16 Fixed issue with reference clock compensation in XV_HdmiRxSS_SetStream 1.20 YH 14/11/16 Added API to enable/disable YUV420/Pixel Drop Mode for video bridge 1.21 YH 14/11/16 Remove Remapper APIs Replace XV_HdmiRxSs_ConfigRemapper API with XV_HdmiRxSs_ConfigBridgeMode API as remapper feature is moved to video bridge and controlled by HDMI core 1.22 MMO 03/01/17 Add compiler option(XV_HDMIRXSS_LOG_ENABLE) to enable Log Move global variable XV_HdmiRx_VSIF VSIF to local XV_HdmiRxSs_RetrieveVSInfoframe API Move HDCP related API's to hdmirxss_hdcp.c 1.23 MMO 10/02/17 Added Sync Loss and HDMI/DVI Interrupt Support

1.4   YH     07/07/17 Add new log type XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR
                      Report HDMI/DVI mode in HDMI example design info log
1.41  MMO    21/07/17 CR-979900 (Fix)
                      Removed the HDCP Push Event API Call when the
                      Aux Callback event happen
      MH     09/08/17 Added function XV_HdmiRxSs_HdcpSetCapability
1.42  YH     06/10/17 Added function XV_HdmiRxSs_GetAudioFormat
      EB     10/10/17 Updated function XV_HdmiRxSs_ReportAudio to report
                          audio format
5.00  YH     16/11/17 Added dedicated reset for each clock domain
             16/11/17 Added bridge overflow interrupt
      EB     16/01/18 Added parsing of InfoFrames during AuxCallback
                      Changed XV_HdmiRxSs_RetrieveVSInfoframe's input
                          parameter type
                      Added function XV_HdmiRxSs_GetAviInfoframe,
                          XV_HdmiRxSs_GetGCP, XV_HdmiRxSs_GetAudioInfoframe,
                          XV_HdmiRxSs_GetVSIF
                      Updated XV_HdmiRxSs_ConfigBridgeMode so Pixel
                          Pepetition is based on received AVI InfoFrame
      SM     28/02/18 Added definition of XV_HdmiRxSS_SetAppVersion() API
5.10  MMO    06/04/18 Updated XV_HdmiRxSs_ToggleHpd and XV_HdmiRxSs_Stop
                          for cleaner HPD flow during transition from HDMI2.0
                          to HDMI1.4
      YH     13/04/18 Fixed a bug in XV_HdmiRxSs_BrdgOverflowCallback
5.20    EB     03/08/18 Added function XV_HdmiRxSs_AudioMute
                      Added TMDS Clock Ratio callback support
5.40  EB     06/08/19 Added Vic and Video Timing mismatch callback support

Macros

#define XV_HdmiRxSs_BridgeYuv420(InstancePtr, Enable)
 This macros selects the bridge YUV420 mode. More...
 
#define XV_HdmiRxSs_BridgePixelDrop(InstancePtr, Enable)
 This macros selects the bridge pixel repeat mode. More...
 

Functions

void XV_HdmiRxSs_SetUserTimerHandler (XV_HdmiRxSs *InstancePtr, XVidC_DelayHandler CallbackFunc, void *CallbackRef)
 This function installs a custom delay/sleep function to be used by the XV_HdmiRxSs driver. More...
 
void XV_HdmiRxSS_HdmiRxIntrHandler (XV_HdmiRxSs *InstancePtr)
 This function calls the interrupt handler for HDMI RX. More...
 
int XV_HdmiRxSs_CfgInitialize (XV_HdmiRxSs *InstancePtr, XV_HdmiRxSs_Config *CfgPtr, UINTPTR EffectiveAddr)
 This function initializes the video subsystem and included sub-cores. More...
 
void XV_HdmiRxSs_Start (XV_HdmiRxSs *InstancePtr)
 This function starts the HDMI RX subsystem including all sub-cores that are included in the processing pipeline for a given use-case. More...
 
void XV_HdmiRxSs_Stop (XV_HdmiRxSs *InstancePtr)
 This function stops the HDMI RX subsystem including all sub-cores Stop the video pipe starting from front to back. More...
 
void XV_HdmiRxSs_Reset (XV_HdmiRxSs *InstancePtr)
 This function resets the video subsystem sub-cores. More...
 
void XV_HdmiRxSs_RXCore_VRST (XV_HdmiRxSs *InstancePtr, u8 Reset)
 This function asserts or releases the Internal Video reset of the HDMI subcore within the subsystem. More...
 
void XV_HdmiRxSs_RXCore_LRST (XV_HdmiRxSs *InstancePtr, u8 Reset)
 This function asserts or releases the Internal Link reset of the HDMI subcore within the subsystem. More...
 
void XV_HdmiRxSs_VRST (XV_HdmiRxSs *InstancePtr, u8 Reset)
 This function asserts or releases the video reset of other blocks within the subsystem. More...
 
void XV_HdmiRxSs_SYSRST (XV_HdmiRxSs *InstancePtr, u8 Reset)
 This function asserts or releases the system reset of other blocks within the subsystem. More...
 
int XV_HdmiRxSs_SetCallback (XV_HdmiRxSs *InstancePtr, XV_HdmiRxSs_HandlerType HandlerType, void *CallbackFunc, void *CallbackRef)
 This function installs an asynchronous callback function for the given HandlerType: More...
 
void XV_HdmiRxSs_SetEdidParam (XV_HdmiRxSs *InstancePtr, u8 *EdidDataPtr, u16 Length)
 This function Sets the EDID parameters in the HDMI RX SS struct. More...
 
void XV_HdmiRxSs_LoadDefaultEdid (XV_HdmiRxSs *InstancePtr)
 This function loads the default EDID to the HDMI RX. More...
 
void XV_HdmiRxSs_LoadEdid (XV_HdmiRxSs *InstancePtr, u8 *EdidDataPtr, u16 Length)
 This function loads the default EDID to the HDMI RX. More...
 
void XV_HdmiRxSs_SetHpd (XV_HdmiRxSs *InstancePtr, u8 Value)
 This function sets the HPD on the HDMI RX. More...
 
void XV_HdmiRxSs_ToggleHpd (XV_HdmiRxSs *InstancePtr)
 This function toggles the HPD on the HDMI RX. More...
 
XHdmiC_Aux * XV_HdmiRxSs_GetAuxiliary (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS Aux structure. More...
 
void XV_HdmiRxSs_Write_ScdcRegister (XV_HdmiRxSs *InstancePtr, u8 address, u8 data)
 This function writes to SCDC registers. More...
 
XHdmiC_AVI_InfoFrame * XV_HdmiRxSs_GetAviInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS AVI InfoFrame structure. More...
 
XHdmiC_GeneralControlPacket * XV_HdmiRxSs_GetGCP (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS General Control Packet structure. More...
 
XHdmiC_AudioInfoFrame * XV_HdmiRxSs_GetAudioInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS Audio InfoFrame structure. More...
 
XHdmiC_VSIF * XV_HdmiRxSs_GetVSIF (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS Vendor Specific InfoFrame structure. More...
 
XHdmiC_DRMInfoFrame * XV_HdmiRxSs_GetDrmInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS DRM InfoFrame structure. More...
 
u32 XV_HdmiRxSs_SetStream (XV_HdmiRxSs *InstancePtr, u32 Clock, u32 LineRate)
 This function set HDMI RX susbsystem stream parameters. More...
 
XVidC_VideoStream * XV_HdmiRxSs_GetVideoStream (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS video stream. More...
 
u8 XV_HdmiRxSs_GetVideoIDCode (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS video Identification code. More...
 
u8 XV_HdmiRxSs_GetVideoStreamType (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS video stream type. More...
 
u8 XV_HdmiRxSs_GetVideoStreamScramblingFlag (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS video stream type. More...
 
u8 XV_HdmiRxSs_GetAudioChannels (XV_HdmiRxSs *InstancePtr)
 This function returns the HDMI RX SS number of active audio channels. More...
 
XV_HdmiRx_AudioFormatType XV_HdmiRxSs_GetAudioFormat (XV_HdmiRxSs *InstancePtr)
 This function returns the HDMI RX SS audio format. More...
 
void XV_HdmiRxSs_RefClockChangeInit (XV_HdmiRxSs *InstancePtr)
 This function is called when HDMI RX SS TMDS clock changes. More...
 
int XV_HdmiRxSs_IsStreamUp (XV_HdmiRxSs *InstancePtr)
 This function checks if the video stream is up. More...
 
int XV_HdmiRxSs_IsStreamConnected (XV_HdmiRxSs *InstancePtr)
 This function checks if the interface is connected. More...
 
void XV_HdmiRxSs_SetDefaultPpc (XV_HdmiRxSs *InstancePtr, u8 Id)
 This function will set the default in HDF. More...
 
void XV_HdmiRxSs_SetPpc (XV_HdmiRxSs *InstancePtr, u8 Id, u8 Ppc)
 This function will set PPC specified by user. More...
 
void XV_HdmiRxSS_SetAppVersion (XV_HdmiRxSs *InstancePtr, u8 maj, u8 min)
 This function will set the major and minor application version in RXSs struct. More...
 
void XV_HdmiRxSs_AudioMute (XV_HdmiRxSs *InstancePtr, u8 Enable)
 This function set HDMI RX audio parameters. More...
 

Variables

XV_HdmiRxSs_SubCores XV_HdmiRxSs_SubCoreRepo [XPAR_XV_HDMIRXSS_NUM_INSTANCES]
 Define Driver instance of all sub-core included in the design. More...
 

Macro Definition Documentation

#define XV_HdmiRxSs_BridgePixelDrop (   InstancePtr,
  Enable 
)
Value:
{ \
XV_HdmiRx_Bridge_pixel(InstancePtr->HdmiRxPtr, Enable); \
}

This macros selects the bridge pixel repeat mode.

Parameters
InstancePtris a pointer to the HDMI RX Subsystem
#define XV_HdmiRxSs_BridgeYuv420 (   InstancePtr,
  Enable 
)
Value:
{ \
XV_HdmiRx_Bridge_yuv420(InstancePtr->HdmiRxPtr, Enable); \
} \

This macros selects the bridge YUV420 mode.

Parameters
InstancePtris a pointer to the HDMI RX Subsystem

Function Documentation

void XV_HdmiRxSs_AudioMute ( XV_HdmiRxSs InstancePtr,
u8  Enable 
)

This function set HDMI RX audio parameters.

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

References XV_HdmiRxSs::HdmiRxPtr.

int XV_HdmiRxSs_CfgInitialize ( XV_HdmiRxSs InstancePtr,
XV_HdmiRxSs_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_HdmiRxSs::AppMajVer, XV_HdmiRxSs::AppMinVer, XV_HdmiRxSs_Config::BaseAddress, XV_HdmiRxSs::Config, XV_HdmiRxSs_Config::DeviceId, XV_HdmiRxSs::HdmiRxPtr, XV_HdmiRxSs::IsReady, XV_HdmiRxSs_GetDrmInfoframe(), XV_HDMIRXSS_HDCP_14, XV_HDMIRXSS_HDCP_22, XV_HDMIRXSS_HDCP_BOTH, XV_HDMIRXSS_HDCP_NOUSERPREF, XV_HdmiRxSs_Reset(), and XV_HdmiRxSs_SubcoreInitHdmiRx().

u8 XV_HdmiRxSs_GetAudioChannels ( XV_HdmiRxSs InstancePtr)

This function returns the HDMI RX SS number of active audio channels.

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
Channels
Note
None.

References XV_HdmiRxSs::AudioChannels.

XV_HdmiRx_AudioFormatType XV_HdmiRxSs_GetAudioFormat ( XV_HdmiRxSs InstancePtr)

This function returns the HDMI RX SS audio format.

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
Channels
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

XHdmiC_AudioInfoFrame* XV_HdmiRxSs_GetAudioInfoframe ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRXSs instance
Returns
XHdmiC_AudioInfoFrame pointer
Note
None.

References XV_HdmiRxSs::AudioInfoframe.

XHdmiC_Aux* XV_HdmiRxSs_GetAuxiliary ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
XVidC_VideoStream pointer
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

XHdmiC_AVI_InfoFrame* XV_HdmiRxSs_GetAviInfoframe ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRXSs instance
Returns
XHdmiC_AVI_InfoFrame pointer
Note
None.

References XV_HdmiRxSs::AVIInfoframe.

XHdmiC_DRMInfoFrame* XV_HdmiRxSs_GetDrmInfoframe ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
XHdmiC_DRMInfoFrame pointer
Note
None.

Referenced by XV_HdmiRxSs_CfgInitialize().

XHdmiC_GeneralControlPacket* XV_HdmiRxSs_GetGCP ( XV_HdmiRxSs InstancePtr)

This function returns the pointer to HDMI RX SS General Control Packet structure.

Parameters
InstancePtrpointer to XV_HdmiRXSs instance
Returns
XHdmiC_GeneralControlPacket pointer
Note
None.

References XV_HdmiRxSs::GCP.

u8 XV_HdmiRxSs_GetVideoIDCode ( XV_HdmiRxSs InstancePtr)

This function returns the pointer to HDMI RX SS video Identification code.

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
VIC
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

XVidC_VideoStream* XV_HdmiRxSs_GetVideoStream ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
XVidC_VideoStream pointer
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

u8 XV_HdmiRxSs_GetVideoStreamScramblingFlag ( XV_HdmiRxSs InstancePtr)

This function returns the pointer to HDMI RX SS video stream type.

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
Stream Type 1:IsScrambled 0: not Scrambled
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

u8 XV_HdmiRxSs_GetVideoStreamType ( XV_HdmiRxSs InstancePtr)

This function returns the pointer to HDMI RX SS video stream type.

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
Stream Type 1:HDMI 0:DVI
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

XHdmiC_VSIF* XV_HdmiRxSs_GetVSIF ( XV_HdmiRxSs InstancePtr)

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

Parameters
InstancePtrpointer to XV_HdmiRxSs instance
Returns
XHdmiC_VSIF pointer
Note
None.

References XV_HdmiRxSs::VSIF.

void XV_HdmiRxSS_HdmiRxIntrHandler ( XV_HdmiRxSs InstancePtr)

This function calls the interrupt handler for HDMI RX.

Parameters
InstancePtris a pointer to the HDMI RX Subsystem

References XV_HdmiRxSs::HdmiRxPtr.

int XV_HdmiRxSs_IsStreamConnected ( XV_HdmiRxSs InstancePtr)

This function checks if the interface is connected.

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

References XV_HdmiRxSs::IsStreamConnected.

int XV_HdmiRxSs_IsStreamUp ( XV_HdmiRxSs 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_HdmiRxSs::IsStreamUp.

void XV_HdmiRxSs_LoadDefaultEdid ( XV_HdmiRxSs InstancePtr)

This function loads the default EDID to the HDMI RX.

Returns
None.
Note
None.

References XV_HdmiRxSs::EdidLength, XV_HdmiRxSs::EdidPtr, and XV_HdmiRxSs::HdmiRxPtr.

void XV_HdmiRxSs_LoadEdid ( XV_HdmiRxSs InstancePtr,
u8 *  EdidDataPtr,
u16  Length 
)

This function loads the default EDID to the HDMI RX.

Returns
None.
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

void XV_HdmiRxSs_RefClockChangeInit ( XV_HdmiRxSs InstancePtr)

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

Parameters
None.
Returns
None
Note
None.

References XV_HdmiRxSs::HdmiRxPtr, XV_HdmiRxSs::TMDSClockRatio, XV_HDMIRXSS_LOG_EVT_REFCLOCKCHANGE, and XV_HdmiRxSs_LogWrite().

void XV_HdmiRxSs_Reset ( XV_HdmiRxSs 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_HDMIRXSS_LOG_EVT_RESET, XV_HdmiRxSs_LogWrite(), XV_HdmiRxSs_RXCore_LRST(), XV_HdmiRxSs_RXCore_VRST(), and XV_HdmiRxSs_SYSRST().

Referenced by XV_HdmiRxSs_CfgInitialize().

void XV_HdmiRxSs_RXCore_LRST ( XV_HdmiRxSs 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_HdmiRxSs::HdmiRxPtr.

Referenced by XV_HdmiRxSs_Reset().

void XV_HdmiRxSs_RXCore_VRST ( XV_HdmiRxSs 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_HdmiRxSs::HdmiRxPtr.

Referenced by XV_HdmiRxSs_Reset().

void XV_HdmiRxSS_SetAppVersion ( XV_HdmiRxSs InstancePtr,
u8  maj,
u8  min 
)

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

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

References XV_HdmiRxSs::AppMajVer, and XV_HdmiRxSs::AppMinVer.

int XV_HdmiRxSs_SetCallback ( XV_HdmiRxSs InstancePtr,
XV_HdmiRxSs_HandlerType  HandlerType,
void *  CallbackFunc,
void *  CallbackRef 
)

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

HandlerType                     Callback Function Type
-----------------------         --------------------------------------------------
(XV_HDMIRXSS_HANDLER_CONNECT)             HpdCallback
(XV_HDMIRXSS_HANDLER_VS)                  VsCallback
(XV_HDMIRXSS_HANDLER_STREAM_DOWN)         StreamDownCallback
(XV_HDMIRXSS_HANDLER_STREAM_UP)           StreamUpCallback
(XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATED)
(XV_HDMIRXSS_HANDLER_HDCP_UNAUTHENTICATED)
(XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATION_REQUEST)
(XV_HDMIRXSS_HANDLER_HDCP_STREAM_MANAGE_REQUEST)
(XV_HDMIRXSS_HANDLER_HDCP_TOPOLOGY_UPDATE)
Parameters
InstancePtris a pointer to the HDMI RX 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_HdmiRxSs::AudCallback, XV_HdmiRxSs::AudRef, XV_HdmiRxSs::AuxCallback, XV_HdmiRxSs::AuxRef, XV_HdmiRxSs::BrdgOverflowCallback, XV_HdmiRxSs::BrdgOverflowRef, XV_HdmiRxSs::ConnectCallback, XV_HdmiRxSs::ConnectRef, XV_HdmiRxSs::DdcCallback, XV_HdmiRxSs::DdcRef, XV_HdmiRxSs::HdcpCallback, XV_HdmiRxSs::HdcpRef, XV_HdmiRxSs::LnkStaCallback, XV_HdmiRxSs::LnkStaRef, XV_HdmiRxSs::StreamDownCallback, XV_HdmiRxSs::StreamDownRef, XV_HdmiRxSs::StreamInitCallback, XV_HdmiRxSs::StreamInitRef, XV_HdmiRxSs::StreamUpCallback, XV_HdmiRxSs::StreamUpRef, XV_HdmiRxSs::TmdsClkRatioCallback, XV_HdmiRxSs::TmdsClkRatioRef, XV_HdmiRxSs::VicErrorCallback, XV_HdmiRxSs::VicErrorRef, XV_HDMIRXSS_HANDLER_AUD, XV_HDMIRXSS_HANDLER_AUX, XV_HDMIRXSS_HANDLER_BRDGOVERFLOW, XV_HDMIRXSS_HANDLER_CONNECT, XV_HDMIRXSS_HANDLER_DDC, XV_HDMIRXSS_HANDLER_HDCP, XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATED, XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATION_REQUEST, XV_HDMIRXSS_HANDLER_HDCP_ENCRYPTION_UPDATE, XV_HDMIRXSS_HANDLER_HDCP_STREAM_MANAGE_REQUEST, XV_HDMIRXSS_HANDLER_HDCP_TOPOLOGY_UPDATE, XV_HDMIRXSS_HANDLER_HDCP_UNAUTHENTICATED, XV_HDMIRXSS_HANDLER_LNKSTA, XV_HDMIRXSS_HANDLER_STREAM_DOWN, XV_HDMIRXSS_HANDLER_STREAM_INIT, XV_HDMIRXSS_HANDLER_STREAM_UP, XV_HDMIRXSS_HANDLER_TMDS_CLK_RATIO, and XV_HDMIRXSS_HANDLER_VIC_ERROR.

void XV_HdmiRxSs_SetDefaultPpc ( XV_HdmiRxSs InstancePtr,
u8  Id 
)

This function will set the default in HDF.

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

References XV_HdmiRxSs::Config, and XV_HdmiRxSs_Config::Ppc.

void XV_HdmiRxSs_SetEdidParam ( XV_HdmiRxSs InstancePtr,
u8 *  EdidDataPtr,
u16  Length 
)

This function Sets the EDID parameters in the HDMI RX SS struct.

Returns
None.
Note
None.

References XV_HdmiRxSs::EdidLength, and XV_HdmiRxSs::EdidPtr.

void XV_HdmiRxSs_SetHpd ( XV_HdmiRxSs InstancePtr,
u8  Value 
)

This function sets the HPD on the HDMI RX.

Parameters
Valueis a flag used to set the HPD.
  • TRUE drives HPD high
  • FALSE drives HPD low
Returns
None.
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

void XV_HdmiRxSs_SetPpc ( XV_HdmiRxSs InstancePtr,
u8  Id,
u8  Ppc 
)

This function will set PPC specified by user.

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

References XV_HdmiRxSs::Config, and XV_HdmiRxSs_Config::Ppc.

u32 XV_HdmiRxSs_SetStream ( XV_HdmiRxSs InstancePtr,
u32  Clock,
u32  LineRate 
)

This function set HDMI RX susbsystem stream parameters.

Parameters
None.
Returns
Calculated TMDS Clock
Note
None.

References XV_HdmiRxSs::Config, XV_HdmiRxSs::HdmiRxPtr, XV_HdmiRxSs_Config::Ppc, XV_HDMIRXSS_LOG_EVT_SETSTREAM, XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR, and XV_HdmiRxSs_LogWrite().

void XV_HdmiRxSs_SetUserTimerHandler ( XV_HdmiRxSs InstancePtr,
XVidC_DelayHandler  CallbackFunc,
void *  CallbackRef 
)

This function installs a custom delay/sleep function to be used by the XV_HdmiRxSs driver.

Parameters
InstancePtris a pointer to the HdmiSsRx instance.
CallbackFuncis the address to the callback function.
CallbackRefis the user data item (microseconds to delay) that will be passed to the custom sleep/delay function when it is invoked.
Returns
None.
Note
None.

References XV_HdmiRxSs::UserTimerPtr, and XV_HdmiRxSs::UserTimerWaitUs.

void XV_HdmiRxSs_Start ( XV_HdmiRxSs InstancePtr)

This function starts the HDMI RX 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_HdmiRxSs::HdmiRxPtr, XV_HDMIRXSS_LOG_EVT_START, and XV_HdmiRxSs_LogWrite().

void XV_HdmiRxSs_Stop ( XV_HdmiRxSs InstancePtr)

This function stops the HDMI RX 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_HdmiRxSs::HdmiRxPtr, XV_HDMIRXSS_LOG_EVT_STOP, and XV_HdmiRxSs_LogWrite().

void XV_HdmiRxSs_SYSRST ( XV_HdmiRxSs 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_HdmiRxSs::HdmiRxPtr.

Referenced by XV_HdmiRxSs_Reset().

void XV_HdmiRxSs_ToggleHpd ( XV_HdmiRxSs InstancePtr)

This function toggles the HPD on the HDMI RX.

Returns
None.
Note
None.

References XV_HdmiRxSs::HdmiRxPtr.

void XV_HdmiRxSs_VRST ( XV_HdmiRxSs 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_HdmiRxSs::HdmiRxPtr.

void XV_HdmiRxSs_Write_ScdcRegister ( XV_HdmiRxSs InstancePtr,
u8  address,
u8  data 
)

This function writes to SCDC registers.

Parameters
InstancePtrpointer to XV_HdmiRXSs instance
Returns
None.
Note
None.

Variable Documentation

XV_HdmiRxSs_SubCores XV_HdmiRxSs_SubCoreRepo[XPAR_XV_HDMIRXSS_NUM_INSTANCES]

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