v_hdmirxss
Vitis Drivers API Documentation
xv_hdmirxss.h File Reference

Overview

This is main header file of the Xilinx HDMI RX Subsystem driver.

HDMI RX Subsystem Overview

Video Subsystem is a collection of IP cores bounded together by software to provide an abstract view of the processing pipe. It hides all the complexities of programming the underlying cores from end user.

Subsystem Driver Features

Video Subsystem supports following features

  • AXI Stream Input/Output interface
  • 1, 2 or 4 pixel-wide video interface
  • 8/10/12/16 bits per component
  • RGB & YCbCr color space
  • Up to 4k2k 60Hz resolution at both Input and Output interface
  • Interlaced input support (1080i 50Hz/60Hz)
MODIFICATION HISTORY:
Ver   Who    Date     Changes


1.00 10/07/15 Initial release. 1.1 yh 20/01/16 Added remapper support 1.2 yh 01/02/16 Added set_ppc api 1.3 MG 03/02/16 Added HDCP support 1.4 MH 03/15/16 Added HDCP connect event. Added HDCP authenticated callback support. 1.5 YH 17/03/16 Remove xintc.h as it is processor dependent 1.6 MH 23/06/16 Added HDCP repeater support. 1.7 YH 25/07/16 Used UINTPTR instead of u32 for BaseAddress 1.8 MH 26/07/16 Updates for automatic protocol switching 1.9 MH 05/08/16 Updates to optimize out HDCP when excluded 1.10 YH 18/08/16 Combine Report function into one ReportInfo 1.11 YH 14/11/16 Added API to enable/disable YUV420/Pixel Drop Mode for video bridge 1.15 YH 14/11/16 Remove Remapper APIs as remapper feature is moved to video bridge and controlled by HDMI core 1.16 MMO 03/01/17 Add compiler option(XV_HDMIRXSS_LOG_ENABLE) to enable Log Re-order the enumaration and data structure Move HDCP local API into _hdcp.h ms 03/17/17 Added readme.txt file in examples folder for doxygen generation. ms 04/10/17 Modified filename tag in examples to include them in doxygen. 1.4 YH 07/07/17 Add new log type XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR MH 09/08/17 Add function XV_HdmiRxSs_HdcpSetCapability YH 06/10/17 Add function XV_HdmiRxSs_GetAudioFormat 5.0 YH 16/11/17 Added dedicated reset for each clock domain 16/11/17 Added bridge overflow interrupt EB 16/01/18 Added InfoFrame data structure to XV_HdmiRxSs Added XV_HDMIRXSS_LOG_EVT_PIX_REPEAT_ERR log event Added functions XV_HdmiRxSs_GetAviInfoframe, XV_HdmiRxSs_GetGCP, XV_HdmiRxSs_GetAudioInfoframe, XV_HdmiRxSs_GetVSIF SM 28/02/18 Added XV_HdmiRxSS_SetAppVersion API and AppMajVer and AppMinVer version number in XV_HdmiRxSs structure 5.2 YB 08/14/18 Added dedicated callbacks for HDCP 1.4 and HDCP 2.2 protocol events. EB 03/08/18 Added function XV_HdmiRxSs_AudioMute Added TMDS Clock Ratio callback support YB 17/08/18 Marked XV_HDMIRXSS_HDCP_1_PROT_EVT and XV_HDMIRXSS_HDCP_2_PROT_EVT as deprecated. 5.40 EB 06/08/19 Added Vic and Video Timing mismatch callback support

Data Structures

struct  XV_HdmiRxSs_Log
 This typedef contains the logging mechanism for debug. More...
 
struct  XV_HdmiRxSs_SubCore
 Sub-Core Configuration Table. More...
 
struct  XV_HdmiRxSs_Config
 Video Processing Subsystem configuration structure. More...
 
struct  XV_HdmiRxSs
 The XVprocss driver instance data. More...
 

Macros

#define HDMIRXSS_H
 < prevent circular inclusions by using protection macros More...
 

Typedefs

typedef void(* XV_HdmiRxSs_Callback )(void *CallbackRef)
 Callback type for interrupt. More...
 

Functions

XV_HdmiRxSs_ConfigXV_HdmiRxSs_LookupConfig (u32 DeviceId)
 This function looks for the device configuration based on the unique device ID. More...
 
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_Write_ScdcRegister (XV_HdmiRxSs *InstancePtr, u8 address, u8 data)
 This function writes to SCDC registers. 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_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...
 
XHdmiC_AVI_InfoFrame * XV_HdmiRxSs_GetAviInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS AVI InfoFrame structure. More...
 
XHdmiC_AudioInfoFrame * XV_HdmiRxSs_GetAudioInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS Audio InfoFrame structure. More...
 
XHdmiC_DRMInfoFrame * XV_HdmiRxSs_GetDrmInfoframe (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS DRM 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_GeneralControlPacket * XV_HdmiRxSs_GetGCP (XV_HdmiRxSs *InstancePtr)
 This function returns the pointer to HDMI RX SS General Control Packet 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_AudioMute (XV_HdmiRxSs *InstancePtr, u8 Enable)
 This function set HDMI RX audio parameters. More...
 
void XV_HdmiRxSs_LogReset (XV_HdmiRxSs *InstancePtr)
 This function will reset the driver's logging mechanism. More...
 
void XV_HdmiRxSs_LogWrite (XV_HdmiRxSs *InstancePtr, XV_HdmiRxSs_LogEvent Evt, u8 Data)
 This function will insert an event in the driver's logginc mechanism. More...
 
u16 XV_HdmiRxSs_LogRead (XV_HdmiRxSs *InstancePtr)
 This function will read the last event from the log. More...
 
void XV_HdmiRxSs_LogDisplay (XV_HdmiRxSs *InstancePtr)
 This function will print the entire log. More...
 

Handler Types

#define ANSI_COLOR_RED   "\x1b[31m"
 
#define ANSI_COLOR_YELLOW   "\x1b[33m"
 
#define ANSI_COLOR_RESET   "\x1b[0m"
 
enum  XV_HdmiRxSs_LogEvent {
  XV_HDMIRXSS_LOG_EVT_NONE = 1, XV_HDMIRXSS_LOG_EVT_HDMIRX_INIT, XV_HDMIRXSS_LOG_EVT_VTC_INIT, XV_HDMIRXSS_LOG_EVT_HDCPTIMER_INIT,
  XV_HDMIRXSS_LOG_EVT_HDCP14_INIT, XV_HDMIRXSS_LOG_EVT_HDCP22_INIT, XV_HDMIRXSS_LOG_EVT_START, XV_HDMIRXSS_LOG_EVT_STOP,
  XV_HDMIRXSS_LOG_EVT_RESET, XV_HDMIRXSS_LOG_EVT_CONNECT, XV_HDMIRXSS_LOG_EVT_DISCONNECT, XV_HDMIRXSS_LOG_EVT_LINKSTATUS,
  XV_HDMIRXSS_LOG_EVT_STREAMUP, XV_HDMIRXSS_LOG_EVT_STREAMDOWN, XV_HDMIRXSS_LOG_EVT_STREAMINIT, XV_HDMIRXSS_LOG_EVT_SETSTREAM,
  XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR, XV_HDMIRXSS_LOG_EVT_REFCLOCKCHANGE, XV_HDMIRXSS_LOG_EVT_HDCP14, XV_HDMIRXSS_LOG_EVT_HDCP22,
  XV_HDMIRXSS_LOG_EVT_HDMIMODE, XV_HDMIRXSS_LOG_EVT_DVIMODE, XV_HDMIRXSS_LOG_EVT_SYNCLOSS, XV_HDMIRXSS_LOG_EVT_PIX_REPEAT_ERR,
  XV_HDMIRXSS_LOG_EVT_SYNCEST, XV_HDMIRXSS_LOG_EVT_VICERROR, XV_HDMIRXSS_LOG_EVT_DUMMY
}
 
enum  XV_HdmiRxSs_HdcpProtocol {
  XV_HDMIRXSS_HDCP_NONE, XV_HDMIRXSS_HDCP_14, XV_HDMIRXSS_HDCP_22, XV_HDMIRXSS_HDCP_BOTH,
  XV_HDMIRXSS_HDCP_NOUSERPREF
}
 These constants specify the HDCP protection schemes. More...
 
enum  XV_HdmiRxSs_HandlerType {
  XV_HDMIRXSS_HANDLER_CONNECT = 1, XV_HDMIRXSS_HANDLER_BRDGOVERFLOW, XV_HDMIRXSS_HANDLER_AUX, XV_HDMIRXSS_HANDLER_AUD,
  XV_HDMIRXSS_HANDLER_LNKSTA, XV_HDMIRXSS_HANDLER_DDC, XV_HDMIRXSS_HANDLER_STREAM_DOWN, XV_HDMIRXSS_HANDLER_STREAM_INIT,
  XV_HDMIRXSS_HANDLER_STREAM_UP, XV_HDMIRXSS_HANDLER_HDCP, 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, XV_HDMIRXSS_HANDLER_HDCP_ENCRYPTION_UPDATE,
  XV_HDMIRXSS_HANDLER_TMDS_CLK_RATIO, XV_HDMIRXSS_HANDLER_VIC_ERROR
}
 These constants specify different types of handler and used to differentiate interrupt requests from peripheral. More...
 

Macro Definition Documentation

#define HDMIRXSS_H

< prevent circular inclusions by using protection macros

Typedef Documentation

typedef void(* XV_HdmiRxSs_Callback)(void *CallbackRef)

Callback type for interrupt.

Parameters
CallbackRefis a callback reference passed in by the upper layer when setting the callback functions, and passed back to the upper layer when the callback is invoked.
Returns
None.
Note
None.

Enumeration Type Documentation

These constants specify different types of handler and used to differentiate interrupt requests from peripheral.

Enumerator
XV_HDMIRXSS_HANDLER_CONNECT 

Handler for connect event.

XV_HDMIRXSS_HANDLER_BRDGOVERFLOW 

Handler for bridge fifo overflow event.

XV_HDMIRXSS_HANDLER_AUX 

Handler for AUX peripheral event.

XV_HDMIRXSS_HANDLER_AUD 

Handler for AUD peripheral event.

XV_HDMIRXSS_HANDLER_LNKSTA 

Handler for LNKSTA peripheral event.

XV_HDMIRXSS_HANDLER_DDC 

Handler for DDC peripheral event.

XV_HDMIRXSS_HANDLER_STREAM_DOWN 

Handler for stream down event.

XV_HDMIRXSS_HANDLER_STREAM_INIT 

Handler for stream init event.

XV_HDMIRXSS_HANDLER_STREAM_UP 

Handler for stream up event.

XV_HDMIRXSS_HANDLER_HDCP 

Handler for HDCP 1.4 event.

XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATED 

Handler for HDCP authenticated event.

XV_HDMIRXSS_HANDLER_HDCP_UNAUTHENTICATED 

Handler for HDCP unauthenticated event.

XV_HDMIRXSS_HANDLER_HDCP_AUTHENTICATION_REQUEST 

Handler for HDCP authentication request event.

XV_HDMIRXSS_HANDLER_HDCP_STREAM_MANAGE_REQUEST 

Handler for HDCP stream manage request event.

XV_HDMIRXSS_HANDLER_HDCP_TOPOLOGY_UPDATE 

Handler for HDCP topology update event.

XV_HDMIRXSS_HANDLER_HDCP_ENCRYPTION_UPDATE 

Handler for HDCP encryption status update event.

XV_HDMIRXSS_HANDLER_TMDS_CLK_RATIO 

Handler type for TMDS clock ratio change.

XV_HDMIRXSS_HANDLER_VIC_ERROR 

Handler type for VIC error change.

These constants specify the HDCP protection schemes.

Enumerator
XV_HDMIRXSS_HDCP_NONE 

No content protection.

XV_HDMIRXSS_HDCP_14 

HDCP 1.4.

XV_HDMIRXSS_HDCP_22 

HDCP 2.2.

XV_HDMIRXSS_HDCP_BOTH 

Both HDCP 1.4 and 2.2.

XV_HDMIRXSS_HDCP_NOUSERPREF 

Control user selection.

to be used only with API XV_HdmiRxSs_SetUserHdcpProtocol

Enumerator
XV_HDMIRXSS_LOG_EVT_NONE 

Log event none.

XV_HDMIRXSS_LOG_EVT_HDMIRX_INIT 

Log event HDMIRX Init.

XV_HDMIRXSS_LOG_EVT_VTC_INIT 

Log event VTC Init.

XV_HDMIRXSS_LOG_EVT_HDCPTIMER_INIT 

Log event HDCP Timer Init.

XV_HDMIRXSS_LOG_EVT_HDCP14_INIT 

Log event HDCP 14 Init.

XV_HDMIRXSS_LOG_EVT_HDCP22_INIT 

Log event HDCP 22 Init.

XV_HDMIRXSS_LOG_EVT_START 

Log event HDMIRXSS Start.

XV_HDMIRXSS_LOG_EVT_STOP 

Log event HDMIRXSS Stop.

XV_HDMIRXSS_LOG_EVT_RESET 

Log event HDMIRXSS Reset.

XV_HDMIRXSS_LOG_EVT_CONNECT 

Log event Cable connect.

XV_HDMIRXSS_LOG_EVT_DISCONNECT 

Log event Cable disconnect.

XV_HDMIRXSS_LOG_EVT_LINKSTATUS 

Log event Link Status Error.

XV_HDMIRXSS_LOG_EVT_STREAMUP 

Log event Stream Up.

XV_HDMIRXSS_LOG_EVT_STREAMDOWN 

Log event Stream Down.

XV_HDMIRXSS_LOG_EVT_STREAMINIT 

Log event Stream Init.

XV_HDMIRXSS_LOG_EVT_SETSTREAM 

Log event HDMIRXSS Setstream.

XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR 

Log event HDMIRXSS Setstream Err.

XV_HDMIRXSS_LOG_EVT_REFCLOCKCHANGE 

Log event TMDS Ref clock change.

XV_HDMIRXSS_LOG_EVT_HDCP14 

Log event Enable HDCP 1.4.

XV_HDMIRXSS_LOG_EVT_HDCP22 

Log event Enable HDCP 2.2.

XV_HDMIRXSS_LOG_EVT_HDMIMODE 

Log event HDMI Mode change.

XV_HDMIRXSS_LOG_EVT_DVIMODE 

Log event HDMI Mode change.

XV_HDMIRXSS_LOG_EVT_SYNCLOSS 

Log event Sync Loss detected.

XV_HDMIRXSS_LOG_EVT_PIX_REPEAT_ERR 

Log event Unsupported Pixel Repetition.

XV_HDMIRXSS_LOG_EVT_SYNCEST 

Log event Sync Loss detected.

XV_HDMIRXSS_LOG_EVT_VICERROR 

Log event vic error detected.

XV_HDMIRXSS_LOG_EVT_DUMMY 

Dummy Event should be last.

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.

u16 XV_HdmiRxSs_LogRead ( XV_HdmiRxSs InstancePtr)

This function will read the last event from the log.

Parameters
InstancePtris a pointer to the XV_HdmiRxSs core instance.
Returns
The log data.
Note
None.

References XV_HdmiRxSs_Log::DataBuffer, XV_HdmiRxSs_Log::HeadIndex, XV_HdmiRxSs::Log, and XV_HdmiRxSs_Log::TailIndex.

Referenced by XV_HdmiRxSs_LogDisplay().

void XV_HdmiRxSs_LogReset ( XV_HdmiRxSs InstancePtr)

This function will reset the driver's logging mechanism.

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

References XV_HdmiRxSs_Log::HeadIndex, XV_HdmiRxSs::Log, and XV_HdmiRxSs_Log::TailIndex.

void XV_HdmiRxSs_LogWrite ( XV_HdmiRxSs InstancePtr,
XV_HdmiRxSs_LogEvent  Evt,
u8  Data 
)

This function will insert an event in the driver's logginc mechanism.

Parameters
InstancePtris a pointer to the XV_HdmiRxSs core instance.
Evtis the event type to log.
Datais the associated data for the event.
Returns
None.
Note
None.

References XV_HdmiRxSs_Log::DataBuffer, XV_HdmiRxSs_Log::HeadIndex, XV_HdmiRxSs::Log, XV_HdmiRxSs_Log::TailIndex, and XV_HDMIRXSS_LOG_EVT_DUMMY.

Referenced by XV_HdmiRxSs_RefClockChangeInit(), XV_HdmiRxSs_Reset(), XV_HdmiRxSs_SetStream(), XV_HdmiRxSs_Start(), XV_HdmiRxSs_Stop(), and XV_HdmiRxSs_SubcoreInitHdmiRx().

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.