XilinxProcessorIPLib/drivers/hdcp1x/src/xhdcp1x_cipher_intr.c
void XHdcp1x_CipherHandleInterrupt(void *InstancePtr)
{
	XHdcp1x *HdcpPtr = InstancePtr;
	u32 Pending = 0;

	/* Verify arguments */
	Xil_AssertVoid(HdcpPtr != NULL);
	Xil_AssertVoid(HdcpPtr->IsReady == XIL_COMPONENT_IS_READY);

	/* Determine Pending */
	Pending = XHdcp1x_ReadReg(HdcpPtr->Config.BaseAddress,
		XHDCP1X_CIPHER_REG_INTERRUPT_STATUS);

	/* Check for pending */
	if (Pending != 0) {
		/* Clear Pending */
		XHdcp1x_WriteReg(HdcpPtr->Config.BaseAddress,
			XHDCP1X_CIPHER_REG_INTERRUPT_STATUS, Pending);

		/* Update statistics */
		HdcpPtr->Cipher.Stats.IntCount++;

		/* Check for link integrity failure */
		if (Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL) {
			/* Invoke callback if set */
			if (HdcpPtr->Cipher.IsLinkFailCallbackSet) {
				(*HdcpPtr->Cipher.LinkFailCallback)(
						HdcpPtr->Cipher.LinkFailRef);
			}
		}

		/* Check for change to Ri register */
		if (Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE) {
			/* Invoke callback if set */
			if (HdcpPtr->Cipher.IsRiUpdateCallbackSet) {
				(*HdcpPtr->Cipher.RiUpdateCallback)(
						HdcpPtr->Cipher.RiUpdateRef);
			}
		}
	}
}
/*****************************************************************************/
/**
* This function is the interrupt handler for the cipher core driver.
*
* @param	InstancePtr is the cipher core instance.
*
* @return	None.
*
* @note		None.
*
******************************************************************************/
This function is the interrupt handler for the cipher core driver.
This function is the interrupt handler for the cipher core driver .
void XHdcp1x_CipherHandleInterrupt(void *InstancePtr)
{
	XHdcp1x *HdcpPtr = InstancePtr;
	u32 Pending = 0;
	Xil_AssertVoid(HdcpPtr != NULL);
	Xil_AssertVoid(HdcpPtr->IsReady == XIL_COMPONENT_IS_READY);
	Pending = XHdcp1x_ReadReg(HdcpPtr->Config.BaseAddress,
		XHDCP1X_CIPHER_REG_INTERRUPT_STATUS);
	if (Pending != 0) {
		XHdcp1x_WriteReg(HdcpPtr->Config.BaseAddress,
			XHDCP1X_CIPHER_REG_INTERRUPT_STATUS, Pending);
		HdcpPtr->Cipher.Stats.IntCount++;
		if (Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL) {
			if (HdcpPtr->Cipher.IsLinkFailCallbackSet) {
				(*HdcpPtr->Cipher.LinkFailCallback)(
						HdcpPtr->Cipher.LinkFailRef);
			}
		}
		if (Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE) {
			if (HdcpPtr->Cipher.IsRiUpdateCallbackSet) {
				(*HdcpPtr->Cipher.RiUpdateCallback)(
						HdcpPtr->Cipher.RiUpdateRef);
			}
		}
	}
}
void XHdcp1x_CipherHandleInterrupt ( void * InstancePtr ) { XHdcp1x * HdcpPtr = InstancePtr ; u32 Pending = 0 ; Xil_AssertVoid ( HdcpPtr != NULL ) ; Xil_AssertVoid ( HdcpPtr -> IsReady == XIL_COMPONENT_IS_READY ) ; Pending = XHdcp1x_ReadReg ( HdcpPtr -> Config . BaseAddress , XHDCP1X_CIPHER_REG_INTERRUPT_STATUS ) ; if ( Pending != 0 ) { XHdcp1x_WriteReg ( HdcpPtr -> Config . BaseAddress , XHDCP1X_CIPHER_REG_INTERRUPT_STATUS , Pending ) ; HdcpPtr -> Cipher . Stats . IntCount ++ ; if ( Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_LINK_FAIL ) { if ( HdcpPtr -> Cipher . IsLinkFailCallbackSet ) { ( * HdcpPtr -> Cipher . LinkFailCallback ) ( HdcpPtr -> Cipher . LinkFailRef ) ; } } if ( Pending & XHDCP1X_CIPHER_BITMASK_INTERRUPT_Ri_UPDATE ) { if ( HdcpPtr -> Cipher . IsRiUpdateCallbackSet ) { ( * HdcpPtr -> Cipher . RiUpdateCallback ) ( HdcpPtr -> Cipher . RiUpdateRef ) ; } } } }
This function is the interrupt handler for the cipher core driver.
This function is the interrupt handler for the cipher core driver .
/* Verify arguments */ /* Determine Pending */ /* Check for pending */ /* Clear Pending */ /* Update statistics */ /* Check for link integrity failure */ /* Invoke callback if set */ /* Check for change to Ri register */ /* Invoke callback if set */