XilinxProcessorIPLib/drivers/vphy/src/xvphy_hdmi_intr.c
void XVphy_HdmiTxMmcmLockHandler(XVphy *InstancePtr)
{
#if (XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2)
	XVphy_ChannelId ChId;
	XVphy_PllType TxPllType;
	u8 Id, Id0, Id1;
#endif

	XVphy_LogWrite(InstancePtr, XVPHY_LOG_EVT_TXPLL_LOCK, 1);

#if (XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2)
	/* Determine PLL type. */
	TxPllType = XVphy_GetPllType(InstancePtr, 0, XVPHY_DIR_TX,
		XVPHY_CHANNEL_ID_CH1);
	/* Determine which channel(s) to operate on. */
	ChId = XVphy_GetRcfgChId(InstancePtr, 0, XVPHY_DIR_TX, TxPllType);

	/* Reset GT TX when associated PLL is Locked */
	if (XVphy_IsPllLocked(InstancePtr, 0, ChId) == XST_SUCCESS) {

		if (!XVphy_IsBonded(InstancePtr, 0,
					XVPHY_CHANNEL_ID_CH1)) {
			/* GT TX reset. */
			XVphy_ResetGtTxRx(InstancePtr, 0,
					XVPHY_CHANNEL_ID_CHA,
					XVPHY_DIR_TX, FALSE);
		}
		XVphy_Ch2Ids(InstancePtr, XVPHY_CHANNEL_ID_CHA,
				&Id0, &Id1);
		for (Id = Id0; Id <= Id1; Id++) {
			InstancePtr->Quads[0].Plls[
				XVPHY_CH2IDX(Id)].
				TxState = XVPHY_GT_STATE_RESET;
		}
	}
#endif
}
/*****************************************************************************/
/**
* This function is the handler for TX MMCM Lock events.
*
* @param	InstancePtr is a pointer to the VPHY instance.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
This function is the handler for TX MMCM Lock events.
This function is the handler for TX MMCM Lock events .
void XVphy_HdmiTxMmcmLockHandler(XVphy *InstancePtr)
{
#if (XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2)
	XVphy_ChannelId ChId;
	XVphy_PllType TxPllType;
	u8 Id, Id0, Id1;
#endif
	XVphy_LogWrite(InstancePtr, XVPHY_LOG_EVT_TXPLL_LOCK, 1);
#if (XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2)
	TxPllType = XVphy_GetPllType(InstancePtr, 0, XVPHY_DIR_TX,
		XVPHY_CHANNEL_ID_CH1);
	ChId = XVphy_GetRcfgChId(InstancePtr, 0, XVPHY_DIR_TX, TxPllType);
	if (XVphy_IsPllLocked(InstancePtr, 0, ChId) == XST_SUCCESS) {
		if (!XVphy_IsBonded(InstancePtr, 0,
					XVPHY_CHANNEL_ID_CH1)) {
			XVphy_ResetGtTxRx(InstancePtr, 0,
					XVPHY_CHANNEL_ID_CHA,
					XVPHY_DIR_TX, FALSE);
		}
		XVphy_Ch2Ids(InstancePtr, XVPHY_CHANNEL_ID_CHA,
				&Id0, &Id1);
		for (Id = Id0; Id <= Id1; Id++) {
			InstancePtr->Quads[0].Plls[
				XVPHY_CH2IDX(Id)].
				TxState = XVPHY_GT_STATE_RESET;
		}
	}
#endif
}
void XVphy_HdmiTxMmcmLockHandler ( XVphy * InstancePtr ) { #if ( XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2 ) XVphy_ChannelId ChId ; XVphy_PllType TxPllType ; u8 Id , Id0 , Id1 ; #endif XVphy_LogWrite ( InstancePtr , XVPHY_LOG_EVT_TXPLL_LOCK , 1 ) ; #if ( XPAR_VPHY_0_TRANSCEIVER == XVPHY_GTXE2 ) TxPllType = XVphy_GetPllType ( InstancePtr , 0 , XVPHY_DIR_TX , XVPHY_CHANNEL_ID_CH1 ) ; ChId = XVphy_GetRcfgChId ( InstancePtr , 0 , XVPHY_DIR_TX , TxPllType ) ; if ( XVphy_IsPllLocked ( InstancePtr , 0 , ChId ) == XST_SUCCESS ) { if ( ! XVphy_IsBonded ( InstancePtr , 0 , XVPHY_CHANNEL_ID_CH1 ) ) { XVphy_ResetGtTxRx ( InstancePtr , 0 , XVPHY_CHANNEL_ID_CHA , XVPHY_DIR_TX , FALSE ) ; } XVphy_Ch2Ids ( InstancePtr , XVPHY_CHANNEL_ID_CHA , & Id0 , & Id1 ) ; for ( Id = Id0 ; Id <= Id1 ; Id ++ ) { InstancePtr -> Quads [ 0 ] . Plls [ XVPHY_CH2IDX ( Id ) ] . TxState = XVPHY_GT_STATE_RESET ; } } #endif }
This function is the handler for TX MMCM Lock events.
This function is the handler for TX MMCM Lock events .
/* Determine PLL type. */ /* Determine which channel(s) to operate on. */ /* Reset GT TX when associated PLL is Locked */ /* GT TX reset. */