XilinxProcessorIPLib/drivers/v_hdmirxss/src/xv_hdmirxss.c
static void XV_HdmiRxSs_StreamDownCallback(void *CallbackRef)
{
  XV_HdmiRxSs *HdmiRxSsPtr = (XV_HdmiRxSs *)CallbackRef;
  XHdmiC_DRMInfoFrame *DrmInfoFramePtr;
  XHdmiC_AVI_InfoFrame *AviInfoFramePtr;

  /* Assert HDMI RX core resets */
  XV_HdmiRxSs_RXCore_VRST(HdmiRxSsPtr, TRUE);
  XV_HdmiRxSs_RXCore_LRST(HdmiRxSsPtr, TRUE);

  /* Assert SYSCLK VID_IN bridge reset */
  XV_HdmiRxSs_SYSRST(HdmiRxSsPtr, TRUE);

  /* Set stream up flag */
  HdmiRxSsPtr->IsStreamUp = (FALSE);

  DrmInfoFramePtr = XV_HdmiRxSs_GetDrmInfoframe(HdmiRxSsPtr);

  DrmInfoFramePtr->Static_Metadata_Descriptor_ID = 0xFF;
  DrmInfoFramePtr->EOTF = 0xff;

  AviInfoFramePtr = XV_HdmiRxSs_GetAviInfoframe(HdmiRxSsPtr);
  memset((void *)AviInfoFramePtr, 0, sizeof(XHdmiC_AVI_InfoFrame));

#ifdef XV_HDMIRXSS_LOG_ENABLE
  XV_HdmiRxSs_LogWrite(HdmiRxSsPtr, XV_HDMIRXSS_LOG_EVT_STREAMDOWN, 0);
#endif
#ifdef USE_HDCP_RX
  // Push stream-down event to HDCP event queue
  XV_HdmiRxSs_HdcpPushEvent(HdmiRxSsPtr, XV_HDMIRXSS_HDCP_STREAMDOWN_EVT);
#endif

  // Check if user callback has been registered
  if (HdmiRxSsPtr->StreamDownCallback) {
      HdmiRxSsPtr->StreamDownCallback(HdmiRxSsPtr->StreamDownRef);
  }

}
/*****************************************************************************/
/**
*
* This function is called when the RX stream is down.
*
* @param  None.
*
* @return None.
*
* @note   None.
*
******************************************************************************/
This function is called when the RX stream is down.
This function is called when the RX stream is down .
static void XV_HdmiRxSs_StreamDownCallback(void *CallbackRef)
{
  XV_HdmiRxSs *HdmiRxSsPtr = (XV_HdmiRxSs *)CallbackRef;
  XHdmiC_DRMInfoFrame *DrmInfoFramePtr;
  XHdmiC_AVI_InfoFrame *AviInfoFramePtr;
  XV_HdmiRxSs_RXCore_VRST(HdmiRxSsPtr, TRUE);
  XV_HdmiRxSs_RXCore_LRST(HdmiRxSsPtr, TRUE);
  XV_HdmiRxSs_SYSRST(HdmiRxSsPtr, TRUE);
  HdmiRxSsPtr->IsStreamUp = (FALSE);
  DrmInfoFramePtr = XV_HdmiRxSs_GetDrmInfoframe(HdmiRxSsPtr);
  DrmInfoFramePtr->Static_Metadata_Descriptor_ID = 0xFF;
  DrmInfoFramePtr->EOTF = 0xff;
  AviInfoFramePtr = XV_HdmiRxSs_GetAviInfoframe(HdmiRxSsPtr);
  memset((void *)AviInfoFramePtr, 0, sizeof(XHdmiC_AVI_InfoFrame));
#ifdef XV_HDMIRXSS_LOG_ENABLE
  XV_HdmiRxSs_LogWrite(HdmiRxSsPtr, XV_HDMIRXSS_LOG_EVT_STREAMDOWN, 0);
#endif
#ifdef USE_HDCP_RX
  XV_HdmiRxSs_HdcpPushEvent(HdmiRxSsPtr, XV_HDMIRXSS_HDCP_STREAMDOWN_EVT);
#endif
  if (HdmiRxSsPtr->StreamDownCallback) {
      HdmiRxSsPtr->StreamDownCallback(HdmiRxSsPtr->StreamDownRef);
  }
}
static void XV_HdmiRxSs_StreamDownCallback ( void * CallbackRef ) { XV_HdmiRxSs * HdmiRxSsPtr = ( XV_HdmiRxSs * ) CallbackRef ; XHdmiC_DRMInfoFrame * DrmInfoFramePtr ; XHdmiC_AVI_InfoFrame * AviInfoFramePtr ; XV_HdmiRxSs_RXCore_VRST ( HdmiRxSsPtr , TRUE ) ; XV_HdmiRxSs_RXCore_LRST ( HdmiRxSsPtr , TRUE ) ; XV_HdmiRxSs_SYSRST ( HdmiRxSsPtr , TRUE ) ; HdmiRxSsPtr -> IsStreamUp = ( FALSE ) ; DrmInfoFramePtr = XV_HdmiRxSs_GetDrmInfoframe ( HdmiRxSsPtr ) ; DrmInfoFramePtr -> Static_Metadata_Descriptor_ID = 0xFF ; DrmInfoFramePtr -> EOTF = 0xff ; AviInfoFramePtr = XV_HdmiRxSs_GetAviInfoframe ( HdmiRxSsPtr ) ; memset ( ( void * ) AviInfoFramePtr , 0 , sizeof ( XHdmiC_AVI_InfoFrame ) ) ; #ifdef XV_HDMIRXSS_LOG_ENABLE XV_HdmiRxSs_LogWrite ( HdmiRxSsPtr , XV_HDMIRXSS_LOG_EVT_STREAMDOWN , 0 ) ; #endif #ifdef USE_HDCP_RX XV_HdmiRxSs_HdcpPushEvent ( HdmiRxSsPtr , XV_HDMIRXSS_HDCP_STREAMDOWN_EVT ) ; #endif if ( HdmiRxSsPtr -> StreamDownCallback ) { HdmiRxSsPtr -> StreamDownCallback ( HdmiRxSsPtr -> StreamDownRef ) ; } }
This function is called when the RX stream is down.
This function is called when the RX stream is down .
/* Assert HDMI RX core resets */ /* Assert SYSCLK VID_IN bridge reset */ /* Set stream up flag */ // Push stream-down event to HDCP event queue // Check if user callback has been registered