v_hdmirxss: xv_hdmirxss.c File Reference

| v_hdmirxss Xilinx SDK Drivers API Documentation

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

Macros | Functions | Variables
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...
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...
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

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

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

  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_HDCP_14, XV_HDMIRXSS_HDCP_22, XV_HDMIRXSS_HDCP_BOTH, 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_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_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.

## Variable Documentation

XV_HdmiRxSs_SubCores XV_HdmiRxSs_SubCoreRepo[XPAR_XV_HDMIRXSS_NUM_INSTANCES]

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