diff --git a/include/media/hardware/HDCPAPI.h b/include/media/hardware/HDCPAPI.h
index bb91540..23e2bdda 100644
--- a/include/media/hardware/HDCPAPI.h
+++ b/include/media/hardware/HDCPAPI.h
@@ -23,7 +23,7 @@
 namespace android {
 
 struct HDCPModule {
-    typedef void (*ObserverFunc)(int msg, int ext1, int ext2);
+    typedef void (*ObserverFunc)(void *cookie, int msg, int ext1, int ext2);
 
     // The msg argument in calls to the observer notification function.
     enum {
@@ -34,18 +34,26 @@
         // ext1 should be a suitable error code (status_t), ext2 is
         // unused.
         HDCP_INITIALIZATION_COMPLETE,
+        HDCP_INITIALIZATION_FAILED,
 
         // Sent upon completion of a call to "HDCPModule::shutdownAsync".
         // ext1 should be a suitable error code, ext2 is unused.
         HDCP_SHUTDOWN_COMPLETE,
+        HDCP_SHUTDOWN_FAILED,
+
+        HDCP_UNAUTHENTICATED_CONNECTION,
+        HDCP_UNAUTHORIZED_CONNECTION,
+        HDCP_REVOKED_CONNECTION,
+        HDCP_TOPOLOGY_EXECEEDED,
+        HDCP_UNKNOWN_ERROR,
     };
 
     // Module can call the notification function to signal completion/failure
     // of asynchronous operations (such as initialization) or out of band
     // events.
-    HDCPModule(ObserverFunc observerNotify);
+    HDCPModule(void *cookie, ObserverFunc observerNotify) {};
 
-    virtual ~HDCPModule();
+    virtual ~HDCPModule() {};
 
     // Request to setup an HDCP session with the specified host listening
     // on the specified port.
@@ -78,7 +86,8 @@
 // "libstagefright_hdcp.so", it will be dynamically loaded into the
 // mediaserver process.
 extern "C" {
-    extern android::HDCPModule *createHDCPModule();
+    extern android::HDCPModule *createHDCPModule(
+            void *cookie, android::HDCPModule::ObserverFunc);
 }
 
 #endif  // HDCP_API_H_
