From c5b9fdac16581699709032d5e663f2648042b402 Mon Sep 17 00:00:00 2001 From: Andrei-Liviu Simion <andrei.simion@xilinx.com> Date: Fri, 16 Jan 2015 14:19:04 -0800 Subject: [PATCH] dp: rx: Added callback for power state change interrupts. Signed-off-by: Andrei-Liviu Simion <andrei.simion@xilinx.com> --- XilinxProcessorIPLib/drivers/dp/src/xdprx.h | 9 +++++++ .../drivers/dp/src/xdprx_intr.c | 27 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h index c752b9f1..baadee40 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx.h +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx.h @@ -99,6 +99,13 @@ typedef struct { passed to the video mode change callback function. */ + XDptx_IntrHandler IntrPowerStateHandler; /**< Callback function for + power state change + interrupts. */ + void *IntrPowerStateCallbackRef; /**< A pointer to the user data + passed to the power + state change callback + function. */ } XDprx; /**************************** Function Prototypes *****************************/ @@ -122,5 +129,7 @@ void XDprx_WaitUs(XDprx *InstancePtr, u32 MicroSeconds); /* xdprx_intr.c: Interrupt handling functions. */ void XDptx_SetIntrVmChangeHandler(XDptx *InstancePtr, XDprx_IntrHandler CallbackFunc, void *CallbackRef); +void XDptx_SetIntrPowerStateHandler(XDptx *InstancePtr, + XDprx_IntrHandler CallbackFunc, void *CallbackRef); #endif /* XDPRX_H_ */ diff --git a/XilinxProcessorIPLib/drivers/dp/src/xdprx_intr.c b/XilinxProcessorIPLib/drivers/dp/src/xdprx_intr.c index b7b1b257..2c14a42a 100644 --- a/XilinxProcessorIPLib/drivers/dp/src/xdprx_intr.c +++ b/XilinxProcessorIPLib/drivers/dp/src/xdprx_intr.c @@ -79,3 +79,30 @@ void XDptx_SetIntrVmChangeHandler(XDptx *InstancePtr, InstancePtr->IntrVmChangeHandler = CallbackFunc; InstancePtr->IntrVmChangeCallbackRef = CallbackRef; } + +/******************************************************************************/ +/** + * This function installs a callback function for when the power state interrupt + * occurs. + * + * @param InstancePtr is a pointer to the XDprx instance. + * @param CallbackFunc is the address to the callback function. + * @param CallbackRef is the user data item that will be passed to the + * callback function when it is invoked. + * + * @return None. + * + * @note None. + * +*******************************************************************************/ +void XDptx_SetIntrPowerStateHandler(XDptx *InstancePtr, + XDprx_IntrHandler CallbackFunc, void *CallbackRef) +{ + /* Verify arguments. */ + Xil_AssertVoid(InstancePtr != NULL); + Xil_AssertVoid(CallbackFunc != NULL); + Xil_AssertVoid(CallbackRef != NULL); + + InstancePtr->IntrPowerStateHandler = CallbackFunc; + InstancePtr->IntrPowerStateCallbackRef = CallbackRef; +}