All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Shankar, Uma" <uma.shankar@intel.com>
To: "C, Ramalingam" <ramalingam.c@intel.com>,
	"intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"seanpaul@chromium.org" <seanpaul@chromium.org>,
	"daniel@ffwll.ch" <daniel@ffwll.ch>,
	"chris@chris-wilson.co.uk" <chris@chris-wilson.co.uk>,
	"jani.nikula@linux.intel.com" <jani.nikula@linux.intel.com>,
	"Winkler, Tomas" <tomas.winkler@intel.com>,
	"Usyskin, Alexander" <alexander.usyskin@intel.com>
Cc: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
Subject: RE: [PATCH v3 19/40] drm/i915: wrapping all hdcp var into intel_hdcp
Date: Wed, 9 May 2018 14:11:12 +0000	[thread overview]
Message-ID: <E7C9878FBA1C6D42A1CA3F62AEB6945F7F1EFA64@BGSMSX104.gar.corp.intel.com> (raw)
In-Reply-To: <1522763873-23041-20-git-send-email-ramalingam.c@intel.com>



>-----Original Message-----
>From: dri-devel [mailto:dri-devel-bounces@lists.freedesktop.org] On Behalf Of
>Ramalingam C
>Sent: Tuesday, April 3, 2018 7:28 PM
>To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org;
>seanpaul@chromium.org; daniel@ffwll.ch; chris@chris-wilson.co.uk;
>jani.nikula@linux.intel.com; Winkler, Tomas <tomas.winkler@intel.com>;
>Usyskin, Alexander <alexander.usyskin@intel.com>
>Cc: Vivi, Rodrigo <rodrigo.vivi@intel.com>
>Subject: [PATCH v3 19/40] drm/i915: wrapping all hdcp var into intel_hdcp
>
>Considering the upcoming significant no HDCP2.2 variables, it will be clean to

Rephrase this sentence.

>have separate struct fo HDCP.

Typo here.

>
>New structure called intel_hdcp is introduced.
>
>v2:
>  struct hdcp statically allocated. [Sean Paul]
>  enable and disable function parameters are retained.[Sean Paul]
>v3:
>  No Changes.
>
>Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
>---
> drivers/gpu/drm/i915/intel_display.c |  7 +--
> drivers/gpu/drm/i915/intel_drv.h     | 14 ++++--
> drivers/gpu/drm/i915/intel_hdcp.c    | 94 ++++++++++++++++++++----------------
> 3 files changed, 66 insertions(+), 49 deletions(-)
>
>diff --git a/drivers/gpu/drm/i915/intel_display.c
>b/drivers/gpu/drm/i915/intel_display.c
>index 331084082545..2d7c47135e1a 100644
>--- a/drivers/gpu/drm/i915/intel_display.c
>+++ b/drivers/gpu/drm/i915/intel_display.c
>@@ -15395,9 +15395,10 @@ static void intel_hpd_poll_fini(struct drm_device
>*dev)
> 	for_each_intel_connector_iter(connector, &conn_iter) {
> 		if (connector->modeset_retry_work.func)
> 			cancel_work_sync(&connector->modeset_retry_work);
>-		if (connector->hdcp_shim) {
>-			cancel_delayed_work_sync(&connector-
>>hdcp_check_work);
>-			cancel_work_sync(&connector->hdcp_prop_work);
>+		if (connector->hdcp.hdcp_shim) {
>+			cancel_delayed_work_sync(
>+					&connector->hdcp.hdcp_check_work);
>+			cancel_work_sync(&connector->hdcp.hdcp_prop_work);
> 		}
> 	}
> 	drm_connector_list_iter_end(&conn_iter);
>diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>index d4368589b355..fdffcb833cd2 100644
>--- a/drivers/gpu/drm/i915/intel_drv.h
>+++ b/drivers/gpu/drm/i915/intel_drv.h
>@@ -377,6 +377,14 @@ struct intel_hdcp_shim {
> 			    bool *hdcp_capable);
> };
>
>+struct intel_hdcp {
>+	const struct intel_hdcp_shim *hdcp_shim;
>+	struct mutex hdcp_mutex;
>+	uint64_t hdcp_value; /* protected by hdcp_mutex */
>+	struct delayed_work hdcp_check_work;
>+	struct work_struct hdcp_prop_work;
>+};
>+
> struct intel_connector {
> 	struct drm_connector base;
> 	/*
>@@ -409,11 +417,7 @@ struct intel_connector {
> 	/* Work struct to schedule a uevent on link train failure */
> 	struct work_struct modeset_retry_work;
>
>-	const struct intel_hdcp_shim *hdcp_shim;
>-	struct mutex hdcp_mutex;
>-	uint64_t hdcp_value; /* protected by hdcp_mutex */
>-	struct delayed_work hdcp_check_work;
>-	struct work_struct hdcp_prop_work;
>+	struct intel_hdcp hdcp;
> };
>
> struct intel_digital_connector_state {
>diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
>b/drivers/gpu/drm/i915/intel_hdcp.c
>index 14ca5d3057a7..1cca4f349064 100644
>--- a/drivers/gpu/drm/i915/intel_hdcp.c
>+++ b/drivers/gpu/drm/i915/intel_hdcp.c
>@@ -547,6 +547,7 @@ struct intel_digital_port *conn_to_dig_port(struct
>intel_connector *connector)
>
> static int _intel_hdcp_disable(struct intel_connector *connector)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> 	enum port port = intel_dig_port->base.port; @@ -562,7 +563,7 @@
>static int _intel_hdcp_disable(struct intel_connector *connector)
> 		return -ETIMEDOUT;
> 	}
>
>-	ret = connector->hdcp_shim->toggle_signalling(intel_dig_port, false);
>+	ret = hdcp->hdcp_shim->toggle_signalling(intel_dig_port, false);
> 	if (ret) {
> 		DRM_ERROR("Failed to disable HDCP signalling\n");
> 		return ret;
>@@ -574,6 +575,7 @@ static int _intel_hdcp_disable(struct intel_connector
>*connector)
>
> static int _intel_hdcp_enable(struct intel_connector *connector)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> 	int i, ret, tries = 3;
>
>@@ -599,7 +601,7 @@ static int _intel_hdcp_enable(struct intel_connector
>*connector)
> 	/* Incase of authentication failures, HDCP spec expects reauth. */
> 	for (i = 0; i < tries; i++) {
> 		ret = intel_hdcp_auth(conn_to_dig_port(connector),
>-				      connector->hdcp_shim);
>+				      hdcp->hdcp_shim);
> 		if (!ret)
> 			return 0;
>
>@@ -615,36 +617,42 @@ static int _intel_hdcp_enable(struct intel_connector
>*connector)
>
> static void intel_hdcp_check_work(struct work_struct *work)  {
>-	struct intel_connector *connector =
>container_of(to_delayed_work(work),
>+	struct intel_hdcp *hdcp = container_of(to_delayed_work(work),
>+					       struct intel_hdcp,
>+					       hdcp_check_work);
>+	struct intel_connector *connector = container_of(hdcp,
> 							 struct intel_connector,
>-							 hdcp_check_work);
>+							 hdcp);
>+
> 	if (!intel_hdcp_check_link(connector))
>-		schedule_delayed_work(&connector->hdcp_check_work,
>+		schedule_delayed_work(&hdcp->hdcp_check_work,
> 				      DRM_HDCP_CHECK_PERIOD_MS);
> }
>
> static void intel_hdcp_prop_work(struct work_struct *work)  {
>-	struct intel_connector *connector = container_of(work,
>+	struct intel_hdcp *hdcp = container_of(work, struct intel_hdcp,
>+					       hdcp_prop_work);
>+	struct intel_connector *connector = container_of(hdcp,
> 							 struct intel_connector,
>-							 hdcp_prop_work);
>+							 hdcp);
> 	struct drm_device *dev = connector->base.dev;
> 	struct drm_connector_state *state;
>
> 	drm_modeset_lock(&dev->mode_config.connection_mutex, NULL);
>-	mutex_lock(&connector->hdcp_mutex);
>+	mutex_lock(&hdcp->hdcp_mutex);
>
> 	/*
> 	 * This worker is only used to flip between ENABLED/DESIRED. Either of
> 	 * those to UNDESIRED is handled by core. If hdcp_value == UNDESIRED,
> 	 * we're running just after hdcp has been disabled, so just exit
> 	 */
>-	if (connector->hdcp_value !=
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>+	if (hdcp->hdcp_value !=
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
> 		state = connector->base.state;
>-		state->content_protection = connector->hdcp_value;
>+		state->content_protection = hdcp->hdcp_value;
> 	}
>
>-	mutex_unlock(&connector->hdcp_mutex);
>+	mutex_unlock(&hdcp->hdcp_mutex);
> 	drm_modeset_unlock(&dev->mode_config.connection_mutex);
> }
>
>@@ -658,6 +666,7 @@ bool is_hdcp_supported(struct drm_i915_private
>*dev_priv, enum port port)  int intel_hdcp_init(struct intel_connector *connector,
> 		    const struct intel_hdcp_shim *hdcp_shim)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	int ret;
>
> 	ret = drm_connector_attach_content_protection_property(
>@@ -665,51 +674,53 @@ int intel_hdcp_init(struct intel_connector *connector,
> 	if (ret)
> 		return ret;
>
>-	connector->hdcp_shim = hdcp_shim;
>-	mutex_init(&connector->hdcp_mutex);
>-	INIT_DELAYED_WORK(&connector->hdcp_check_work,
>intel_hdcp_check_work);
>-	INIT_WORK(&connector->hdcp_prop_work, intel_hdcp_prop_work);
>+	hdcp->hdcp_shim = hdcp_shim;
>+	mutex_init(&hdcp->hdcp_mutex);
>+	INIT_DELAYED_WORK(&hdcp->hdcp_check_work,
>intel_hdcp_check_work);
>+	INIT_WORK(&hdcp->hdcp_prop_work, intel_hdcp_prop_work);
> 	return 0;
> }
>
> int intel_hdcp_enable(struct intel_connector *connector)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	int ret;
>
>-	if (!connector->hdcp_shim)
>+	if (!hdcp->hdcp_shim)
> 		return -ENOENT;
>
>-	mutex_lock(&connector->hdcp_mutex);
>+	mutex_lock(&hdcp->hdcp_mutex);
>
> 	ret = _intel_hdcp_enable(connector);
> 	if (ret)
> 		goto out;
>
>-	connector->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_ENABLED;
>-	schedule_work(&connector->hdcp_prop_work);
>-	schedule_delayed_work(&connector->hdcp_check_work,
>+	hdcp->hdcp_value = DRM_MODE_CONTENT_PROTECTION_ENABLED;
>+	schedule_work(&hdcp->hdcp_prop_work);
>+	schedule_delayed_work(&hdcp->hdcp_check_work,
> 			      DRM_HDCP_CHECK_PERIOD_MS);
> out:
>-	mutex_unlock(&connector->hdcp_mutex);
>+	mutex_unlock(&hdcp->hdcp_mutex);
> 	return ret;
> }
>
> int intel_hdcp_disable(struct intel_connector *connector)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	int ret = 0;
>
>-	if (!connector->hdcp_shim)
>+	if (!hdcp->hdcp_shim)
> 		return -ENOENT;
>
>-	mutex_lock(&connector->hdcp_mutex);
>+	mutex_lock(&hdcp->hdcp_mutex);
>
>-	if (connector->hdcp_value !=
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>-		connector->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED;
>+	if (hdcp->hdcp_value !=
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>+		hdcp->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED;
> 		ret = _intel_hdcp_disable(connector);
> 	}
>
>-	mutex_unlock(&connector->hdcp_mutex);
>-	cancel_delayed_work_sync(&connector->hdcp_check_work);
>+	mutex_unlock(&hdcp->hdcp_mutex);
>+	cancel_delayed_work_sync(&hdcp->hdcp_check_work);
> 	return ret;
> }
>
>@@ -749,17 +760,18 @@ void intel_hdcp_atomic_check(struct drm_connector
>*connector,
> /* Implements Part 3 of the HDCP authorization procedure */  int
>intel_hdcp_check_link(struct intel_connector *connector)  {
>+	struct intel_hdcp *hdcp = &connector->hdcp;
> 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> 	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> 	enum port port = intel_dig_port->base.port;
> 	int ret = 0;
>
>-	if (!connector->hdcp_shim)
>+	if (!hdcp->hdcp_shim)
> 		return -ENOENT;
>
>-	mutex_lock(&connector->hdcp_mutex);
>+	mutex_lock(&hdcp->hdcp_mutex);
>
>-	if (connector->hdcp_value ==
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
>+	if (hdcp->hdcp_value ==
>DRM_MODE_CONTENT_PROTECTION_UNDESIRED)
> 		goto out;
>
> 	if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
>@@ -767,17 +779,17 @@ int intel_hdcp_check_link(struct intel_connector
>*connector)
> 			  connector->base.name, connector->base.base.id,
> 			  I915_READ(PORT_HDCP_STATUS(port)));
> 		ret = -ENXIO;
>-		connector->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>-		schedule_work(&connector->hdcp_prop_work);
>+		hdcp->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>+		schedule_work(&hdcp->hdcp_prop_work);
> 		goto out;
> 	}
>
>-	if (connector->hdcp_shim->check_link(intel_dig_port)) {
>-		if (connector->hdcp_value !=
>+	if (hdcp->hdcp_shim->check_link(intel_dig_port)) {
>+		if (hdcp->hdcp_value !=
> 		    DRM_MODE_CONTENT_PROTECTION_UNDESIRED) {
>-			connector->hdcp_value =
>+			hdcp->hdcp_value =
>
>	DRM_MODE_CONTENT_PROTECTION_ENABLED;
>-			schedule_work(&connector->hdcp_prop_work);
>+			schedule_work(&hdcp->hdcp_prop_work);
> 		}
> 		goto out;
> 	}
>@@ -788,20 +800,20 @@ int intel_hdcp_check_link(struct intel_connector
>*connector)
> 	ret = _intel_hdcp_disable(connector);
> 	if (ret) {
> 		DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
>-		connector->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>-		schedule_work(&connector->hdcp_prop_work);
>+		hdcp->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>+		schedule_work(&hdcp->hdcp_prop_work);
> 		goto out;
> 	}
>
> 	ret = _intel_hdcp_enable(connector);
> 	if (ret) {
> 		DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
>-		connector->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>-		schedule_work(&connector->hdcp_prop_work);
>+		hdcp->hdcp_value =
>DRM_MODE_CONTENT_PROTECTION_DESIRED;
>+		schedule_work(&hdcp->hdcp_prop_work);
> 		goto out;
> 	}
>
> out:
>-	mutex_unlock(&connector->hdcp_mutex);
>+	mutex_unlock(&hdcp->hdcp_mutex);
> 	return ret;
> }
>--
>2.7.4
>
>_______________________________________________
>dri-devel mailing list
>dri-devel@lists.freedesktop.org
>https://lists.freedesktop.org/mailman/listinfo/dri-devel
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2018-05-09 14:11 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-03 13:57 [PATCH v3 00/40] drm/i915: Implement HDCP2.2 Ramalingam C
2018-04-03 13:57 ` [PATCH v3 01/40] drm: hdcp2.2 authentication msg definitions Ramalingam C
2018-05-09 10:01   ` Shankar, Uma
2018-05-14 15:23     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 02/40] drm: HDMI and DP specific HDCP2.2 defines Ramalingam C
2018-05-09 10:06   ` Shankar, Uma
2018-05-14 16:01     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 03/40] mei: bus: whitelist hdcp client Ramalingam C
2018-04-03 13:57 ` [PATCH v3 04/40] misc/mei/hdcp: Client driver for HDCP application Ramalingam C
2018-05-09 10:07   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 05/40] misc/mei/hdcp: Notifier chain for mei cldev state change Ramalingam C
2018-04-03 15:30   ` Daniel Vetter
2018-05-16 14:54     ` Ramalingam C
2018-04-03 20:53   ` kbuild test robot
2018-04-03 23:58   ` [RFC PATCH] misc/mei/hdcp: mei_cldev_state_notify_clients() can be static kbuild test robot
2018-04-04  6:12   ` [PATCH v3 05/40] misc/mei/hdcp: Notifier chain for mei cldev state change Usyskin, Alexander
2018-05-16 13:04     ` Ramalingam C
2018-05-17  5:52       ` Usyskin, Alexander
2018-05-17  6:15         ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 06/40] misc/mei/hdcp: Define ME FW interface for HDCP2.2 Ramalingam C
2018-04-03 13:57 ` [PATCH v3 07/40] linux/mei: Header for mei_hdcp driver interface Ramalingam C
2018-05-09 10:08   ` Shankar, Uma
2018-05-16 15:05     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 08/40] misc/mei/hdcp: Initiate Wired HDCP2.2 Tx Session Ramalingam C
2018-04-03 21:20   ` [Intel-gfx] " kbuild test robot
2018-04-04  6:45   ` Usyskin, Alexander
2018-05-16 15:19     ` Ramalingam C
2018-05-17  5:56       ` Usyskin, Alexander
2018-05-17  6:08         ` Ramalingam C
2018-05-09 10:13   ` Shankar, Uma
2018-05-16 15:26     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 09/40] misc/mei/hdcp: Verify Receiver Cert and prepare km Ramalingam C
2018-04-03 21:44   ` kbuild test robot
2018-04-03 13:57 ` [PATCH v3 10/40] misc/mei/hdcp: Verify H_prime Ramalingam C
2018-04-03 22:12   ` kbuild test robot
2018-05-09 10:16   ` [Intel-gfx] " Shankar, Uma
2018-05-16 15:43     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 11/40] misc/mei/hdcp: Store the HDCP Pairing info Ramalingam C
2018-04-03 22:34   ` kbuild test robot
2018-05-09 10:28   ` Shankar, Uma
2018-05-16 15:53     ` Ramalingam C
2018-05-17  5:59       ` Usyskin, Alexander
2018-05-17  6:03         ` C, Ramalingam
2018-05-17  8:17           ` Jani Nikula
2018-05-21 12:19             ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 12/40] misc/mei/hdcp: Initiate Locality check Ramalingam C
2018-04-03 23:02   ` kbuild test robot
2018-05-09 10:31   ` Shankar, Uma
2018-05-16 16:02     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 13/40] misc/mei/hdcp: Verify L_prime Ramalingam C
2018-05-09 10:36   ` Shankar, Uma
2018-05-16 16:05     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 14/40] misc/mei/hdcp: Prepare Session Key Ramalingam C
2018-05-09 10:59   ` Shankar, Uma
2018-05-16 16:10     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 15/40] misc/mei/hdcp: Repeater topology verifcation and ack Ramalingam C
2018-05-09 11:04   ` Shankar, Uma
2018-05-16 16:32     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 16/40] misc/mei/hdcp: Verify M_prime Ramalingam C
2018-05-09 13:50   ` Shankar, Uma
2018-05-16 16:32     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 17/40] misc/mei/hdcp: Enabling the HDCP authentication Ramalingam C
2018-05-09 13:55   ` Shankar, Uma
2018-05-16 16:40     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 18/40] misc/mei/hdcp: Closing wired HDCP2.2 Tx Session Ramalingam C
2018-05-09 14:02   ` [Intel-gfx] " Shankar, Uma
2018-05-16 16:41     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 19/40] drm/i915: wrapping all hdcp var into intel_hdcp Ramalingam C
2018-05-09 14:11   ` Shankar, Uma [this message]
2018-04-03 13:57 ` [PATCH v3 20/40] drm/i915: Define HDCP2.2 related variables Ramalingam C
2018-04-03 20:27   ` kbuild test robot
2018-05-09 14:23   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 21/40] drm/i915: Define Intel HDCP2.2 registers Ramalingam C
2018-05-09 14:59   ` Shankar, Uma
2018-05-17 10:24     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 22/40] drm/i915: Wrappers for mei HDCP2.2 services Ramalingam C
2018-05-09 15:10   ` Shankar, Uma
2018-05-17 10:40     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 23/40] drm/i915: Implement HDCP2.2 receiver authentication Ramalingam C
2018-05-09 15:20   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 24/40] drm/i915: Implement HDCP2.2 repeater authentication Ramalingam C
2018-04-04  1:11   ` kbuild test robot
2018-05-14  9:08   ` Shankar, Uma
2018-05-17 12:38     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 25/40] drm/i915: Enable and Disable HDCP2.2 port encryption Ramalingam C
2018-05-14  9:23   ` Shankar, Uma
2018-05-17 13:01     ` Ramalingam C
2018-05-17 13:14       ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 26/40] drm/i915: Implement HDCP2.2 En/Dis-able Ramalingam C
2018-05-14  9:30   ` Shankar, Uma
2018-05-17 13:16     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 27/40] drm/i915: Implement HDCP2.2 link integrity check Ramalingam C
2018-05-14  9:45   ` Shankar, Uma
2018-05-17 13:31     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 28/40] drm/i915: Handle HDCP2.2 downstream topology change Ramalingam C
2018-05-18 12:09   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 29/40] drm/i915: Pullout the bksv read and validation Ramalingam C
2018-04-03 13:57 ` [PATCH v3 30/40] drm/i915: Initialize HDCP2.2 and its MEI interface Ramalingam C
2018-05-18 12:33   ` [Intel-gfx] " Shankar, Uma
2018-05-18 16:29     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 31/40] drm/i915: Schedule hdcp_check_link in _intel_hdcp_enable Ramalingam C
2018-05-18 12:37   ` [Intel-gfx] " Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 32/40] drm/i915: Enable superior HDCP ver that is capable Ramalingam C
2018-05-18 12:49   ` [Intel-gfx] " Shankar, Uma
2018-05-21  8:29     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 33/40] drm/i915: Enable HDCP1.4 incase of HDCP2.2 failure Ramalingam C
2018-05-18 12:52   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 34/40] drm/i915: hdcp_check_link only on CP_IRQ Ramalingam C
2018-05-18 12:55   ` Shankar, Uma
2018-04-03 13:57 ` [PATCH v3 35/40] drm/i915: Check HDCP 1.4 and 2.2 link " Ramalingam C
2018-05-18 15:59   ` Shankar, Uma
2018-05-21  8:37     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 36/40] drm/i915: Implement gmbus burst read Ramalingam C
2018-04-03 16:40   ` Daniel Vetter
2018-04-05  9:12     ` Jani Nikula
2018-04-05 13:44       ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 37/40] drm/i915: Implement the HDCP2.2 support for DP Ramalingam C
2018-04-03 19:57   ` kbuild test robot
2018-04-03 21:16   ` kbuild test robot
2018-05-18 16:15   ` Shankar, Uma
2018-05-21  8:49     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 38/40] drm/i915: Implement the HDCP2.2 support for HDMI Ramalingam C
2018-05-18 16:29   ` Shankar, Uma
2018-05-21  9:08     ` [Intel-gfx] " Ramalingam C
2018-04-03 13:57 ` [PATCH v3 39/40] drm/i915: Add HDCP2.2 support for DP connectors Ramalingam C
2018-05-18 16:37   ` [Intel-gfx] " Shankar, Uma
2018-05-21  9:14     ` Ramalingam C
2018-04-03 13:57 ` [PATCH v3 40/40] drm/i915: Add HDCP2.2 support for HDMI connectors Ramalingam C
2018-05-18 16:38   ` [Intel-gfx] " Shankar, Uma
2018-04-03 14:26 ` ✗ Fi.CI.BAT: failure for drm/i915: Implement HDCP2.2 (rev3) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E7C9878FBA1C6D42A1CA3F62AEB6945F7F1EFA64@BGSMSX104.gar.corp.intel.com \
    --to=uma.shankar@intel.com \
    --cc=alexander.usyskin@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=ramalingam.c@intel.com \
    --cc=rodrigo.vivi@intel.com \
    --cc=seanpaul@chromium.org \
    --cc=tomas.winkler@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.