XilinxProcessorIPLib/drivers/v_hdmirxss1/src/xv_hdmirxss1.c
static void XV_HdmiRxSs1_StreamDownCallback(void *CallbackRef)
{
  XV_HdmiRxSs1 *HdmiRxSs1Ptr = (XV_HdmiRxSs1 *)CallbackRef;
  XHdmiC_AVI_InfoFrame *AviInfoFramePtr;
  XV_HdmiC_VideoTimingExtMeta *ExtMetaPtr;
  XV_HdmiC_SrcProdDescIF *SpdIfPtr;
  XVidC_VideoStream *VidCStream;
  XHdmiC_DRMInfoFrame *DrmInfoFramePtr;

  if (HdmiRxSs1Ptr->HdmiRx1Ptr->Stream.IsFrl != TRUE) {
	  /* Assert HDMI RX core resets */
	  XV_HdmiRxSs1_RXCore_VRST(HdmiRxSs1Ptr, TRUE);
	  XV_HdmiRxSs1_RXCore_LRST(HdmiRxSs1Ptr, TRUE);
  }
  HdmiRxSs1Ptr->HdmiRx1Ptr->IsFirstVtemReceived = FALSE;

  /* Assert SYSCLK VID_IN bridge reset */
  XV_HdmiRxSs1_SYSRST(HdmiRxSs1Ptr, TRUE);

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

  AviInfoFramePtr = XV_HdmiRxSs1_GetAviInfoframe(HdmiRxSs1Ptr);
  memset((void *)AviInfoFramePtr, 0, sizeof(XHdmiC_AVI_InfoFrame));

  DrmInfoFramePtr = XV_HdmiRxSs1_GetDrmInfoframe(HdmiRxSs1Ptr);
  DrmInfoFramePtr->Static_Metadata_Descriptor_ID = 0xFF;
  DrmInfoFramePtr->EOTF = 0xFF;

  XV_HdmiRx1_SetVrrIfType(HdmiRxSs1Ptr->HdmiRx1Ptr,
		  XV_HDMIC_VRRINFO_TYPE_NONE);
  ExtMetaPtr = XV_HdmiRx1_GetVidTimingExtMeta(HdmiRxSs1Ptr->HdmiRx1Ptr);
  memset((void *)ExtMetaPtr, 0, sizeof(XV_HdmiC_VideoTimingExtMeta));

  SpdIfPtr = XV_HdmiRx1_GetSrcProdDescIF(HdmiRxSs1Ptr->HdmiRx1Ptr);
  memset((void *)SpdIfPtr, 0, sizeof(XV_HdmiC_SrcProdDescIF));

  VidCStream = XV_HdmiRxSs1_GetVideoStream(HdmiRxSs1Ptr);
  memset(&(VidCStream->BaseTiming), 0, sizeof(XVidC_VideoTiming));

#ifdef XV_HDMIRXSS1_LOG_ENABLE
  XV_HdmiRxSs1_LogWrite(HdmiRxSs1Ptr, XV_HDMIRXSS1_LOG_EVT_STREAMDOWN, 0);
#endif
#ifdef USE_HDCP_RX
  /* Push stream-down event to HDCP event queue*/
  XV_HdmiRxSs1_HdcpPushEvent(HdmiRxSs1Ptr, XV_HDMIRXSS1_HDCP_STREAMDOWN_EVT);
#endif

  /* Check if user callback has been registered*/
  if (HdmiRxSs1Ptr->StreamDownCallback) {
      HdmiRxSs1Ptr->StreamDownCallback(HdmiRxSs1Ptr->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_HdmiRxSs1_StreamDownCallback(void *CallbackRef)
{
  XV_HdmiRxSs1 *HdmiRxSs1Ptr = (XV_HdmiRxSs1 *)CallbackRef;
  XHdmiC_AVI_InfoFrame *AviInfoFramePtr;
  XV_HdmiC_VideoTimingExtMeta *ExtMetaPtr;
  XV_HdmiC_SrcProdDescIF *SpdIfPtr;
  XVidC_VideoStream *VidCStream;
  XHdmiC_DRMInfoFrame *DrmInfoFramePtr;
  if (HdmiRxSs1Ptr->HdmiRx1Ptr->Stream.IsFrl != TRUE) {
	  XV_HdmiRxSs1_RXCore_VRST(HdmiRxSs1Ptr, TRUE);
	  XV_HdmiRxSs1_RXCore_LRST(HdmiRxSs1Ptr, TRUE);
  }
  HdmiRxSs1Ptr->HdmiRx1Ptr->IsFirstVtemReceived = FALSE;
  XV_HdmiRxSs1_SYSRST(HdmiRxSs1Ptr, TRUE);
  HdmiRxSs1Ptr->IsStreamUp = (FALSE);
  AviInfoFramePtr = XV_HdmiRxSs1_GetAviInfoframe(HdmiRxSs1Ptr);
  memset((void *)AviInfoFramePtr, 0, sizeof(XHdmiC_AVI_InfoFrame));
  DrmInfoFramePtr = XV_HdmiRxSs1_GetDrmInfoframe(HdmiRxSs1Ptr);
  DrmInfoFramePtr->Static_Metadata_Descriptor_ID = 0xFF;
  DrmInfoFramePtr->EOTF = 0xFF;
  XV_HdmiRx1_SetVrrIfType(HdmiRxSs1Ptr->HdmiRx1Ptr,
		  XV_HDMIC_VRRINFO_TYPE_NONE);
  ExtMetaPtr = XV_HdmiRx1_GetVidTimingExtMeta(HdmiRxSs1Ptr->HdmiRx1Ptr);
  memset((void *)ExtMetaPtr, 0, sizeof(XV_HdmiC_VideoTimingExtMeta));
  SpdIfPtr = XV_HdmiRx1_GetSrcProdDescIF(HdmiRxSs1Ptr->HdmiRx1Ptr);
  memset((void *)SpdIfPtr, 0, sizeof(XV_HdmiC_SrcProdDescIF));
  VidCStream = XV_HdmiRxSs1_GetVideoStream(HdmiRxSs1Ptr);
  memset(&(VidCStream->BaseTiming), 0, sizeof(XVidC_VideoTiming));
#ifdef XV_HDMIRXSS1_LOG_ENABLE
  XV_HdmiRxSs1_LogWrite(HdmiRxSs1Ptr, XV_HDMIRXSS1_LOG_EVT_STREAMDOWN, 0);
#endif
#ifdef USE_HDCP_RX
  XV_HdmiRxSs1_HdcpPushEvent(HdmiRxSs1Ptr, XV_HDMIRXSS1_HDCP_STREAMDOWN_EVT);
#endif
  if (HdmiRxSs1Ptr->StreamDownCallback) {
      HdmiRxSs1Ptr->StreamDownCallback(HdmiRxSs1Ptr->StreamDownRef);
  }
}
static void XV_HdmiRxSs1_StreamDownCallback ( void * CallbackRef ) { XV_HdmiRxSs1 * HdmiRxSs1Ptr = ( XV_HdmiRxSs1 * ) CallbackRef ; XHdmiC_AVI_InfoFrame * AviInfoFramePtr ; XV_HdmiC_VideoTimingExtMeta * ExtMetaPtr ; XV_HdmiC_SrcProdDescIF * SpdIfPtr ; XVidC_VideoStream * VidCStream ; XHdmiC_DRMInfoFrame * DrmInfoFramePtr ; if ( HdmiRxSs1Ptr -> HdmiRx1Ptr -> Stream . IsFrl != TRUE ) { XV_HdmiRxSs1_RXCore_VRST ( HdmiRxSs1Ptr , TRUE ) ; XV_HdmiRxSs1_RXCore_LRST ( HdmiRxSs1Ptr , TRUE ) ; } HdmiRxSs1Ptr -> HdmiRx1Ptr -> IsFirstVtemReceived = FALSE ; XV_HdmiRxSs1_SYSRST ( HdmiRxSs1Ptr , TRUE ) ; HdmiRxSs1Ptr -> IsStreamUp = ( FALSE ) ; AviInfoFramePtr = XV_HdmiRxSs1_GetAviInfoframe ( HdmiRxSs1Ptr ) ; memset ( ( void * ) AviInfoFramePtr , 0 , sizeof ( XHdmiC_AVI_InfoFrame ) ) ; DrmInfoFramePtr = XV_HdmiRxSs1_GetDrmInfoframe ( HdmiRxSs1Ptr ) ; DrmInfoFramePtr -> Static_Metadata_Descriptor_ID = 0xFF ; DrmInfoFramePtr -> EOTF = 0xFF ; XV_HdmiRx1_SetVrrIfType ( HdmiRxSs1Ptr -> HdmiRx1Ptr , XV_HDMIC_VRRINFO_TYPE_NONE ) ; ExtMetaPtr = XV_HdmiRx1_GetVidTimingExtMeta ( HdmiRxSs1Ptr -> HdmiRx1Ptr ) ; memset ( ( void * ) ExtMetaPtr , 0 , sizeof ( XV_HdmiC_VideoTimingExtMeta ) ) ; SpdIfPtr = XV_HdmiRx1_GetSrcProdDescIF ( HdmiRxSs1Ptr -> HdmiRx1Ptr ) ; memset ( ( void * ) SpdIfPtr , 0 , sizeof ( XV_HdmiC_SrcProdDescIF ) ) ; VidCStream = XV_HdmiRxSs1_GetVideoStream ( HdmiRxSs1Ptr ) ; memset ( & ( VidCStream -> BaseTiming ) , 0 , sizeof ( XVidC_VideoTiming ) ) ; #ifdef XV_HDMIRXSS1_LOG_ENABLE XV_HdmiRxSs1_LogWrite ( HdmiRxSs1Ptr , XV_HDMIRXSS1_LOG_EVT_STREAMDOWN , 0 ) ; #endif #ifdef USE_HDCP_RX XV_HdmiRxSs1_HdcpPushEvent ( HdmiRxSs1Ptr , XV_HDMIRXSS1_HDCP_STREAMDOWN_EVT ) ; #endif if ( HdmiRxSs1Ptr -> StreamDownCallback ) { HdmiRxSs1Ptr -> StreamDownCallback ( HdmiRxSs1Ptr -> 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*/