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;
+}