[RFC v1 04/20] drm/hdcp: Struct drm_hdcp for connector's hdcp state

Ramalingam C ramalingam.c at intel.com
Wed Jul 12 08:28:48 UTC 2017


Structure drm_hdcp is defined to represent the HDCP state
of the connector. drm_connector will have a pointer to an instance
of this structure.

This will be used to hold all specification related information
along with state machine parameters.

Signed-off-by: Ramalingam C <ramalingam.c at intel.com>
---
 include/drm/drm_connector.h |  5 +++++
 include/drm/drm_hdcp.h      | 39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index ae5b7dc..45911db 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -27,6 +27,7 @@
 #include <linux/ctype.h>
 #include <linux/hdmi.h>
 #include <drm/drm_mode_object.h>
+#include <drm/drm_hdcp.h>
 
 #include <uapi/drm/drm_mode.h>
 
@@ -867,6 +868,10 @@ struct drm_connector {
 	 */
 	struct drm_connector_state *state;
 
+	/* HDCP representation on the connector */
+	struct drm_hdcp *hdcp;
+	uint64_t hdcp_state;
+
 	/* DisplayID bits */
 	bool has_tile;
 	struct drm_tile_group *tile_group;
diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
index 7cebf0f..92fd933 100644
--- a/include/drm/drm_hdcp.h
+++ b/include/drm/drm_hdcp.h
@@ -27,6 +27,45 @@
 #ifndef __DRM_HDCP_H__
 #define __DRM_HDCP_H__
 
+struct drm_connector;
+
+/**
+ * HDCP Software stack specific
+ */
+/* Bit mask for HDCP spec ver support */
+#define HDCP_1_4_SUPPORT			(1<<0)
+#define HDCP_2_2_SUPPORT			(1<<1)
+
+/**
+ * wired_protocol: Supported integrated wired HDCP protocol.
+ * Based on this value, Minor differenceneeded between wired specifications
+ * are handled.
+ */
+enum wired_protocol {
+	WIRED_PROTOCOL_INVALID,
+	WIRED_PROTOCOL_HDMI,
+	WIRED_PROTOCOL_DP
+};
+
+/**
+ * Struct drm_hdcp - central drm hdcp control structure
+ */
+struct drm_hdcp {
+	struct drm_connector *connector;
+
+	/* HDCP Specifications support flag */
+	uint32_t ver_support_on_plat;
+	uint32_t ver_support_on_panel;
+
+	/* HDCP requested state and also the current state */
+	uint64_t req_state;
+
+	/* HDMI/DP Protocol */
+	enum wired_protocol protocol;
+
+	struct mutex mutex;
+};
+
 /**
  * HDCP property related information
  */
-- 
2.7.4



More information about the dri-devel mailing list