| v_hdmirxss Vitis Drivers API Documentation

- Overview
- Data Structures
- APIs
- File List
- Examples

Data Structures | Macros | Typedefs | Functions
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_Config * | XV_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

  CallbackRef | is 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

enum XV_HdmiRxSs_HandlerType

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.

enum XV_HdmiRxSs_HdcpProtocol

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

enum XV_HdmiRxSs_LogEvent

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

  Enable | 0: 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

  InstancePtr | is a pointer to the Subsystem instance to be worked on.
  CfgPtr | points to the configuration structure associated with the subsystem instance.
  EffectiveAddr | is 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | pointer 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

  InstancePtr | is 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_LogDisplay | ( | XV_HdmiRxSs * | InstancePtr | ) |

This function will print the entire log.

Parameters

  InstancePtr | is a pointer to the XV_HdmiRxSs core instance.

Returns
  None.

Note
  None.

References XV_HDMIRXSS_LOG_EVT_CONNECT, XV_HDMIRXSS_LOG_EVT_DISCONNECT, XV_HDMIRXSS_LOG_EVT_DVIMODE, XV_HDMIRXSS_LOG_EVT_HDCP14, XV_HDMIRXSS_LOG_EVT_HDCP14_INIT, XV_HDMIRXSS_LOG_EVT_HDCP22, XV_HDMIRXSS_LOG_EVT_HDCP22_INIT, XV_HDMIRXSS_LOG_EVT_HDCPTIMER_INIT, XV_HDMIRXSS_LOG_EVT_HDMIMODE, XV_HDMIRXSS_LOG_EVT_HDMIRX_INIT, XV_HDMIRXSS_LOG_EVT_LINKSTATUS, XV_HDMIRXSS_LOG_EVT_NONE, XV_HDMIRXSS_LOG_EVT_PIX_REPEAT_ERR, XV_HDMIRXSS_LOG_EVT_REFCLOCKCHANGE, XV_HDMIRXSS_LOG_EVT_RESET, XV_HDMIRXSS_LOG_EVT_SETSTREAM, XV_HDMIRXSS_LOG_EVT_SETSTREAM_ERR, XV_HDMIRXSS_LOG_EVT_START, XV_HDMIRXSS_LOG_EVT_STOP, XV_HDMIRXSS_LOG_EVT_STREAMDOWN, XV_HDMIRXSS_LOG_EVT_STREAMINIT, XV_HDMIRXSS_LOG_EVT_STREAMUP, XV_HDMIRXSS_LOG_EVT_SYNCEST, XV_HDMIRXSS_LOG_EVT_SYNCLOSS, XV_HDMIRXSS_LOG_EVT_VICERROR, XV_HDMIRXSS_LOG_EVT_VTC_INIT, and XV_HdmiRxSs_LogRead().

u16 XV_HdmiRxSs_LogRead | ( | XV_HdmiRxSs * | InstancePtr | ) |

This function will read the last event from the log.

Parameters

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | is a pointer to the XV_HdmiRxSs core instance.
  Evt | is the event type to log.
  Data | is 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

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | is a pointer to the XV_HdmiRxSs core instance.
  maj | is the major version of the application.
  min | is 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

  InstancePtr | is a pointer to the HDMI RX Subsystem instance.
  HandlerType | specifies the type of handler.
  CallbackFunc | is the address of the callback function.
  CallbackRef | is 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

  InstancePtr | is a pointer to the XV_HdmiRxSs core instance.
  Id | is 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

  Value | is 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

  InstancePtr | is a pointer to the XV_HdmiRxSs core instance.
  Id | is the XV_HdmiRxSs ID to operate on.
  Ppc | is 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

  InstancePtr | is a pointer to the HdmiSsRx instance.
  CallbackFunc | is the address to the callback function.
  CallbackRef | is 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

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | is 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

  InstancePtr | pointer to XV_HdmiRXSs instance

Returns
  None.

Note
  None.