All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] HDCP1.4 implementation enhancement
@ 2018-01-18  5:48 Ramalingam C
  2018-01-18  5:48 ` [PATCH 1/4] drm/i915: Extending HDCP for HSW, BDW and BXT+ Ramalingam C
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Ramalingam C @ 2018-01-18  5:48 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, rodrigo.vivi

This series extends the HDCP1.4 support for few more intel platforms.
And also addresses few gaps found in the base HDCP1.4 implementation w.r.t
HDCP1.4 specification.

Ramalingam C (4):
  drm/i915: Extending HDCP for HSW, BDW and BXT+
  drm/i915: II stage HDCP auth for repeater only
  drm/i915: Start repeater auth on READY/CP_IRQ
  drm/i915: Check for downstream topology errors

 drivers/gpu/drm/i915/i915_reg.h   |  1 +
 drivers/gpu/drm/i915/intel_dp.c   |  2 +-
 drivers/gpu/drm/i915/intel_drv.h  |  1 +
 drivers/gpu/drm/i915/intel_hdcp.c | 65 ++++++++++++++++++++++++++++++---------
 drivers/gpu/drm/i915/intel_hdmi.c |  3 +-
 include/drm/drm_hdcp.h            |  2 ++
 6 files changed, 57 insertions(+), 17 deletions(-)

-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 1/4] drm/i915: Extending HDCP for HSW, BDW and BXT+
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
@ 2018-01-18  5:48 ` Ramalingam C
  2018-01-18  5:48 ` [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only Ramalingam C
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Ramalingam C @ 2018-01-18  5:48 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, rodrigo.vivi

This patch extends the Key load process and hdcp initialization for
few more capable intel platforms i.e. HSW, BDW and BXT+.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/i915_reg.h   |  1 +
 drivers/gpu/drm/i915/intel_dp.c   |  2 +-
 drivers/gpu/drm/i915/intel_drv.h  |  1 +
 drivers/gpu/drm/i915/intel_hdcp.c | 42 ++++++++++++++++++++++++++++++++-------
 drivers/gpu/drm/i915/intel_hdmi.c |  3 +--
 5 files changed, 39 insertions(+), 10 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index c0a4fc356145..7b54041a62f4 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -8357,6 +8357,7 @@ enum skl_power_gate {
 #define HDCP_KEY_CONF		_MMIO(0x66c00)
 #define  HDCP_AKSV_SEND_TRIGGER		BIT(31)
 #define  HDCP_CLEAR_KEYS_TRIGGER	BIT(30)
+#define  HDCP_KEY_LOAD_TRIGGER		BIT(8)
 #define HDCP_KEY_STATUS		_MMIO(0x66c04)
 #define  HDCP_FUSE_IN_PROGRESS	BIT(7)
 #define  HDCP_FUSE_ERROR		BIT(6)
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 68229f53d5b8..fb2e339405b5 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -6352,7 +6352,7 @@ intel_dp_init_connector(struct intel_digital_port *intel_dig_port,
 
 	intel_dp_add_properties(intel_dp, connector);
 
-	if (INTEL_GEN(dev_priv) >= 9 && !intel_dp_is_edp(intel_dp)) {
+	if (is_hdcp_supported(dev_priv, port) && !intel_dp_is_edp(intel_dp)) {
 		int ret = intel_hdcp_init(intel_connector, &intel_dp_hdcp_shim);
 		if (ret)
 			DRM_DEBUG_KMS("HDCP init failed, skipping.\n");
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 5c8e260ca2bc..2de02f50e5fd 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1848,6 +1848,7 @@ int intel_hdcp_init(struct intel_connector *connector,
 int intel_hdcp_enable(struct intel_connector *connector);
 int intel_hdcp_disable(struct intel_connector *connector);
 int intel_hdcp_check_link(struct intel_connector *connector);
+bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port);
 
 /* intel_psr.c */
 #define CAN_PSR(dev_priv) (HAS_PSR(dev_priv) && dev_priv->psr.sink_support)
diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 827cab22f191..6ce6559897a6 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -49,13 +49,32 @@ static int intel_hdcp_load_keys(struct drm_i915_private *dev_priv)
 	int ret;
 	u32 val;
 
-	/* Initiate loading the HDCP key from fuses */
-	mutex_lock(&dev_priv->pcu_lock);
-	ret = sandybridge_pcode_write(dev_priv, SKL_PCODE_LOAD_HDCP_KEYS, 1);
-	mutex_unlock(&dev_priv->pcu_lock);
-	if (ret) {
-		DRM_ERROR("Failed to initiate HDCP key load (%d)\n", ret);
-		return ret;
+	/*
+	 * On HSW and BDW HW loads the HDCP1.4 Key when Display comes
+	 * out of reset. So if Key is not already loaded, its an error state.
+	 */
+	if (IS_HASWELL(dev_priv) || IS_BROADWELL(dev_priv))
+		if (!(I915_READ(HDCP_KEY_STATUS) & HDCP_KEY_LOAD_DONE))
+			return -ENXIO;
+
+	/*
+	 * Initiate loading the HDCP key from fuses.
+	 *
+	 * BXT+ platforms, HDCP key needs to be loaded by SW. Only SKL and KBL
+	 * differ in the key load trigger process from other platforms.
+	 */
+	if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
+		mutex_lock(&dev_priv->pcu_lock);
+		ret = sandybridge_pcode_write(dev_priv,
+						SKL_PCODE_LOAD_HDCP_KEYS, 1);
+		mutex_unlock(&dev_priv->pcu_lock);
+		if (ret) {
+			DRM_ERROR("Failed to initiate HDCP key load (%d)\n",
+									ret);
+			return ret;
+		}
+	} else {
+		I915_WRITE(HDCP_KEY_CONF, HDCP_KEY_LOAD_TRIGGER);
 	}
 
 	/* Wait for the keys to load (500us) */
@@ -575,6 +594,15 @@ static void intel_hdcp_prop_work(struct work_struct *work)
 	drm_modeset_unlock(&dev->mode_config.connection_mutex);
 }
 
+bool is_hdcp_supported(struct drm_i915_private *dev_priv, enum port port)
+{
+
+	/* PORT E doesn't have HDCP, and PORT F is disabled */
+	return ((INTEL_GEN(dev_priv) >= 8 || IS_HASWELL(dev_priv)) &&
+				!IS_CHERRYVIEW(dev_priv) &&
+				port < PORT_E);
+}
+
 int intel_hdcp_init(struct intel_connector *connector,
 		    const struct intel_hdcp_shim *hdcp_shim)
 {
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 691f15b59124..5de1f966c926 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2304,8 +2304,7 @@ void intel_hdmi_init_connector(struct intel_digital_port *intel_dig_port,
 
 	intel_hdmi_add_properties(intel_hdmi, connector);
 
-	/* PORT E doesn't have HDCP, and PORT F is disabled */
-	if (INTEL_GEN(dev_priv) >= 9 && port < PORT_E) {
+	if (is_hdcp_supported(dev_priv, port)) {
 		int ret = intel_hdcp_init(intel_connector,
 					  &intel_hdmi_hdcp_shim);
 		if (ret)
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
  2018-01-18  5:48 ` [PATCH 1/4] drm/i915: Extending HDCP for HSW, BDW and BXT+ Ramalingam C
@ 2018-01-18  5:48 ` Ramalingam C
  2018-01-18 22:23   ` Sean Paul
  2018-01-18  5:48 ` [PATCH 3/4] drm/i915: Start repeater auth on READY/CP_IRQ Ramalingam C
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Ramalingam C @ 2018-01-18  5:48 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, rodrigo.vivi

Second stage of HDCP authentication required only if the HDCP
sink is a repeater.

This patch imposes above condition on second stage HDCP authentication.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/intel_hdcp.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 6ce6559897a6..b48c72cd0906 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -493,7 +493,10 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 	 * on those as well.
 	 */
 
-	return intel_hdcp_auth_downstream(intel_dig_port, shim);
+	if (repeater_present)
+		return intel_hdcp_auth_downstream(intel_dig_port, shim);
+
+	return 0;
 }
 
 static
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/4] drm/i915: Start repeater auth on READY/CP_IRQ
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
  2018-01-18  5:48 ` [PATCH 1/4] drm/i915: Extending HDCP for HSW, BDW and BXT+ Ramalingam C
  2018-01-18  5:48 ` [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only Ramalingam C
@ 2018-01-18  5:48 ` Ramalingam C
  2018-01-18  5:48 ` [PATCH 4/4] drm/i915: Check for downstream topology errors Ramalingam C
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Ramalingam C @ 2018-01-18  5:48 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, rodrigo.vivi

Second stage of HDCP authentication starts at CP_IRQ or at the
assertion of READY bit from Repeater.

Till then repeater will be authenticating with its downstream devices.
So authenticated device count, depth and ksv_list readable from
repeaters are valid only after assertion of READY/CP_IRQ.

This patch makes sure that READY is polled before reading any
topology information.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/intel_hdcp.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index b48c72cd0906..292c98fc8e72 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -150,6 +150,12 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 
 	dev_priv = intel_dig_port->base.base.dev->dev_private;
 
+	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
+	if (ret) {
+		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
+		return ret;
+	}
+
 	ret = shim->read_bstatus(intel_dig_port, bstatus);
 	if (ret)
 		return ret;
@@ -161,12 +167,6 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 		return 0;
 	}
 
-	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
-	if (ret) {
-		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
-		return ret;
-	}
-
 	ksv_fifo = kzalloc(num_downstream * DRM_HDCP_KSV_LEN, GFP_KERNEL);
 	if (!ksv_fifo)
 		return -ENOMEM;
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/4] drm/i915: Check for downstream topology errors
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
                   ` (2 preceding siblings ...)
  2018-01-18  5:48 ` [PATCH 3/4] drm/i915: Start repeater auth on READY/CP_IRQ Ramalingam C
@ 2018-01-18  5:48 ` Ramalingam C
  2018-01-18 11:41 ` ✓ Fi.CI.BAT: success for HDCP1.4 implementation enhancement Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Ramalingam C @ 2018-01-18  5:48 UTC (permalink / raw)
  To: intel-gfx; +Cc: daniel.vetter, rodrigo.vivi

HDCP compliant Repeaters can support max of 127 devices and max
depth of 7 for downstream topology.

If these max limits are exceeded, repeater will set the
topology error flags MAX_CASCADE_EXCEEDED and/or MAX_DEVS_EXCEEDED
in Bstatus followed by asserting READY/CP_IRQ for HDCP transmitter.

This patch check for these error flags as soon as READY bit is asserted.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/intel_hdcp.c | 6 ++++++
 include/drm/drm_hdcp.h            | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 292c98fc8e72..6a78adc0456d 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -160,6 +160,12 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 	if (ret)
 		return ret;
 
+	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
+			DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
+		DRM_ERROR("Max Topology Limit Exceeded\n");
+		return -EPERM;
+	}
+
 	/* If there are no downstream devices, we're all done. */
 	num_downstream = DRM_HDCP_NUM_DOWNSTREAM(bstatus[0]);
 	if (num_downstream == 0) {
diff --git a/include/drm/drm_hdcp.h b/include/drm/drm_hdcp.h
index 43f7bd902b41..562fa7df2637 100644
--- a/include/drm/drm_hdcp.h
+++ b/include/drm/drm_hdcp.h
@@ -20,6 +20,8 @@
 #define DRM_HDCP_V_PRIME_PART_LEN		4
 #define DRM_HDCP_V_PRIME_NUM_PARTS		5
 #define DRM_HDCP_NUM_DOWNSTREAM(x)		(x & 0x3f)
+#define DRM_HDCP_MAX_CASCADE_EXCEEDED(x)	(x & BIT(3))
+#define DRM_HDCP_MAX_DEVICE_EXCEEDED(x)		(x & BIT(7))
 
 /* Slave address for the HDCP registers in the receiver */
 #define DRM_HDCP_DDC_ADDR			0x3A
-- 
2.7.4

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* ✓ Fi.CI.BAT: success for HDCP1.4 implementation enhancement
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
                   ` (3 preceding siblings ...)
  2018-01-18  5:48 ` [PATCH 4/4] drm/i915: Check for downstream topology errors Ramalingam C
@ 2018-01-18 11:41 ` Patchwork
  2018-01-18 13:40 ` ✓ Fi.CI.IGT: " Patchwork
  2018-01-19  5:40 ` [PATCH 0/4] " Sean Paul
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2018-01-18 11:41 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: HDCP1.4 implementation enhancement
URL   : https://patchwork.freedesktop.org/series/36671/
State : success

== Summary ==

Series 36671v1 HDCP1.4 implementation enhancement
https://patchwork.freedesktop.org/api/1.0/series/36671/revisions/1/mbox/

Test debugfs_test:
        Subgroup read_all_entries:
                pass       -> DMESG-FAIL (fi-elk-e7500) fdo#103989 +1
Test gem_mmap_gtt:
        Subgroup basic-small-bo-tiledx:
                fail       -> PASS       (fi-gdg-551) fdo#102575
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-a:
                fail       -> PASS       (fi-skl-6700k2) fdo#103191

fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:420s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:427s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:371s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:488s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:280s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:482s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:485s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:465s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:459s
fi-elk-e7500     total:224  pass:168  dwarn:9   dfail:1   fail:0   skip:45 
fi-gdg-551       total:288  pass:180  dwarn:0   dfail:0   fail:0   skip:108 time:277s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:513s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:393s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:400s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:409s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:450s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:410s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:460s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:502s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:453s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:501s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:587s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:429s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:509s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:525s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:490s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:488s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:431s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:522s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:400s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:570s
fi-glk-dsi       total:156  pass:142  dwarn:0   dfail:0   fail:0   skip:13 

cb7287f74687f033ae8e50937b8294c16317170a drm-tip: 2018y-01m-18d-10h-31m-34s UTC integration manifest
602af39163af drm/i915: Check for downstream topology errors
0d2b0894ffa2 drm/i915: Start repeater auth on READY/CP_IRQ
f5d667f9fe35 drm/i915: II stage HDCP auth for repeater only
263fc472af0f drm/i915: Extending HDCP for HSW, BDW and BXT+

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7706/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* ✓ Fi.CI.IGT: success for HDCP1.4 implementation enhancement
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
                   ` (4 preceding siblings ...)
  2018-01-18 11:41 ` ✓ Fi.CI.BAT: success for HDCP1.4 implementation enhancement Patchwork
@ 2018-01-18 13:40 ` Patchwork
  2018-01-19  5:40 ` [PATCH 0/4] " Sean Paul
  6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2018-01-18 13:40 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: HDCP1.4 implementation enhancement
URL   : https://patchwork.freedesktop.org/series/36671/
State : success

== Summary ==

Test gem_tiled_swapping:
        Subgroup non-threaded:
                incomplete -> DMESG-FAIL (shard-hsw) fdo#104218 +1
Test kms_cursor_crc:
        Subgroup cursor-256x256-suspend:
                pass       -> SKIP       (shard-snb) fdo#103375 +1
        Subgroup cursor-128x128-suspend:
                skip       -> PASS       (shard-hsw) fdo#103540
Test kms_frontbuffer_tracking:
        Subgroup fbc-1p-primscrn-shrfb-pgflip-blt:
                skip       -> PASS       (shard-snb) fdo#101623 +1
Test kms_atomic_interruptible:
        Subgroup legacy-setmode:
                skip       -> PASS       (shard-snb)
Test pm_rc6_residency:
        Subgroup rc6-accuracy:
                skip       -> PASS       (shard-snb)
Test perf:
        Subgroup polling:
                fail       -> PASS       (shard-hsw) fdo#102252

fdo#104218 https://bugs.freedesktop.org/show_bug.cgi?id=104218
fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
fdo#101623 https://bugs.freedesktop.org/show_bug.cgi?id=101623
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252

shard-hsw        total:2680 pass:1674 dwarn:1   dfail:1   fail:11  skip:991 time:14906s
shard-snb        total:2675 pass:1287 dwarn:1   dfail:0   fail:10  skip:1377 time:7570s
Blacklisted hosts:
shard-apl        total:2753 pass:1716 dwarn:1   dfail:0   fail:21  skip:1015 time:13811s
shard-kbl        total:2735 pass:1811 dwarn:10  dfail:0   fail:23  skip:890 time:10516s

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7706/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
  2018-01-18  5:48 ` [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only Ramalingam C
@ 2018-01-18 22:23   ` Sean Paul
  2018-01-19  3:50     ` C, Ramalingam
  0 siblings, 1 reply; 11+ messages in thread
From: Sean Paul @ 2018-01-18 22:23 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx, rodrigo.vivi

On Thu, Jan 18, 2018 at 11:18:06AM +0530, Ramalingam C wrote:
> Second stage of HDCP authentication required only if the HDCP
> sink is a repeater.
> 
> This patch imposes above condition on second stage HDCP authentication.

Hi Ram,
This is already enforced in intel_hdcp_auth_downstream()

Thanks,
Sean

> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> index 6ce6559897a6..b48c72cd0906 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -493,7 +493,10 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	 * on those as well.
>  	 */
>  
> -	return intel_hdcp_auth_downstream(intel_dig_port, shim);
> +	if (repeater_present)
> +		return intel_hdcp_auth_downstream(intel_dig_port, shim);
> +
> +	return 0;
>  }
>  
>  static
> -- 
> 2.7.4
> 

-- 
Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
  2018-01-18 22:23   ` Sean Paul
@ 2018-01-19  3:50     ` C, Ramalingam
  2018-01-19  5:39       ` Sean Paul
  0 siblings, 1 reply; 11+ messages in thread
From: C, Ramalingam @ 2018-01-19  3:50 UTC (permalink / raw)
  To: Sean Paul; +Cc: daniel.vetter, intel-gfx, Vivi, Rodrigo

> -----Original Message-----
> From: Sean Paul [mailto:seanpaul@chromium.org]
> Sent: Friday, January 19, 2018 3:54 AM
> To: C, Ramalingam <ramalingam.c@intel.com>
> Cc: intel-gfx@lists.freedesktop.org; seanpaul@chromium.org;
> daniel.vetter@ffwll.ch; Vivi, Rodrigo <rodrigo.vivi@intel.com>; Sharma,
> Shashank <shashank.sharma@intel.com>
> Subject: Re: [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
> 
> On Thu, Jan 18, 2018 at 11:18:06AM +0530, Ramalingam C wrote:
> > Second stage of HDCP authentication required only if the HDCP sink is
> > a repeater.
> >
> > This patch imposes above condition on second stage HDCP authentication.
> 
> Hi Ram,
> This is already enforced in intel_hdcp_auth_downstream()

I am not able to locate any check for repeater capability at start of downstream auth.

I am not sure whether you are referring to number of downstream device count check.
That is valid after poll for ksv_fifo ready. We don't want to wait for 5Sec timeout in poll to detect the repeater cap.

And since the caller is handy with the flag for repeater cap, it is best to decide on the call for downstream auth itself.

Thanks
--Ram
> 
> Thanks,
> Sean
> 
> >
> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_hdcp.c | 5 ++++-
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
> > b/drivers/gpu/drm/i915/intel_hdcp.c
> > index 6ce6559897a6..b48c72cd0906 100644
> > --- a/drivers/gpu/drm/i915/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> > @@ -493,7 +493,10 @@ static int intel_hdcp_auth(struct intel_digital_port
> *intel_dig_port,
> >  	 * on those as well.
> >  	 */
> >
> > -	return intel_hdcp_auth_downstream(intel_dig_port, shim);
> > +	if (repeater_present)
> > +		return intel_hdcp_auth_downstream(intel_dig_port, shim);
> > +
> > +	return 0;
> >  }
> >
> >  static
> > --
> > 2.7.4
> >
> 
> --
> Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
  2018-01-19  3:50     ` C, Ramalingam
@ 2018-01-19  5:39       ` Sean Paul
  0 siblings, 0 replies; 11+ messages in thread
From: Sean Paul @ 2018-01-19  5:39 UTC (permalink / raw)
  To: C, Ramalingam; +Cc: daniel.vetter, intel-gfx, Vivi, Rodrigo

On Thu, Jan 18, 2018 at 7:50 PM, C, Ramalingam <ramalingam.c@intel.com> wrote:
>> -----Original Message-----
>> From: Sean Paul [mailto:seanpaul@chromium.org]
>> Sent: Friday, January 19, 2018 3:54 AM
>> To: C, Ramalingam <ramalingam.c@intel.com>
>> Cc: intel-gfx@lists.freedesktop.org; seanpaul@chromium.org;
>> daniel.vetter@ffwll.ch; Vivi, Rodrigo <rodrigo.vivi@intel.com>; Sharma,
>> Shashank <shashank.sharma@intel.com>
>> Subject: Re: [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only
>>
>> On Thu, Jan 18, 2018 at 11:18:06AM +0530, Ramalingam C wrote:
>> > Second stage of HDCP authentication required only if the HDCP sink is
>> > a repeater.
>> >
>> > This patch imposes above condition on second stage HDCP authentication.
>>
>> Hi Ram,
>> This is already enforced in intel_hdcp_auth_downstream()
>
> I am not able to locate any check for repeater capability at start of downstream auth.
>
> I am not sure whether you are referring to number of downstream device count check.
> That is valid after poll for ksv_fifo ready. We don't want to wait for 5Sec timeout in poll to detect the repeater cap.
>
> And since the caller is handy with the flag for repeater cap, it is best to decide on the call for downstream auth itself.
>

Thanks for clarifying, makes sense with the other patches in the set.

Sean

> Thanks
> --Ram
>>
>> Thanks,
>> Sean
>>
>> >
>> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
>> > ---
>> >  drivers/gpu/drm/i915/intel_hdcp.c | 5 ++++-
>> >  1 file changed, 4 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/drivers/gpu/drm/i915/intel_hdcp.c
>> > b/drivers/gpu/drm/i915/intel_hdcp.c
>> > index 6ce6559897a6..b48c72cd0906 100644
>> > --- a/drivers/gpu/drm/i915/intel_hdcp.c
>> > +++ b/drivers/gpu/drm/i915/intel_hdcp.c
>> > @@ -493,7 +493,10 @@ static int intel_hdcp_auth(struct intel_digital_port
>> *intel_dig_port,
>> >      * on those as well.
>> >      */
>> >
>> > -   return intel_hdcp_auth_downstream(intel_dig_port, shim);
>> > +   if (repeater_present)
>> > +           return intel_hdcp_auth_downstream(intel_dig_port, shim);
>> > +
>> > +   return 0;
>> >  }
>> >
>> >  static
>> > --
>> > 2.7.4
>> >
>>
>> --
>> Sean Paul, Software Engineer, Google / Chromium OS
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 0/4] HDCP1.4 implementation enhancement
  2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
                   ` (5 preceding siblings ...)
  2018-01-18 13:40 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-01-19  5:40 ` Sean Paul
  6 siblings, 0 replies; 11+ messages in thread
From: Sean Paul @ 2018-01-19  5:40 UTC (permalink / raw)
  To: Ramalingam C; +Cc: Daniel Vetter, Intel Graphics Development, Vivi, Rodrigo

On Wed, Jan 17, 2018 at 9:48 PM, Ramalingam C <ramalingam.c@intel.com> wrote:
> This series extends the HDCP1.4 support for few more intel platforms.
> And also addresses few gaps found in the base HDCP1.4 implementation w.r.t
> HDCP1.4 specification.
>

Thanks for the patches, Ram. I've applied them with a couple of
checkpatch fixes around alignment + an extra line.

Sean


> Ramalingam C (4):
>   drm/i915: Extending HDCP for HSW, BDW and BXT+
>   drm/i915: II stage HDCP auth for repeater only
>   drm/i915: Start repeater auth on READY/CP_IRQ
>   drm/i915: Check for downstream topology errors
>
>  drivers/gpu/drm/i915/i915_reg.h   |  1 +
>  drivers/gpu/drm/i915/intel_dp.c   |  2 +-
>  drivers/gpu/drm/i915/intel_drv.h  |  1 +
>  drivers/gpu/drm/i915/intel_hdcp.c | 65 ++++++++++++++++++++++++++++++---------
>  drivers/gpu/drm/i915/intel_hdmi.c |  3 +-
>  include/drm/drm_hdcp.h            |  2 ++
>  6 files changed, 57 insertions(+), 17 deletions(-)
>
> --
> 2.7.4
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-01-19  5:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-18  5:48 [PATCH 0/4] HDCP1.4 implementation enhancement Ramalingam C
2018-01-18  5:48 ` [PATCH 1/4] drm/i915: Extending HDCP for HSW, BDW and BXT+ Ramalingam C
2018-01-18  5:48 ` [PATCH 2/4] drm/i915: II stage HDCP auth for repeater only Ramalingam C
2018-01-18 22:23   ` Sean Paul
2018-01-19  3:50     ` C, Ramalingam
2018-01-19  5:39       ` Sean Paul
2018-01-18  5:48 ` [PATCH 3/4] drm/i915: Start repeater auth on READY/CP_IRQ Ramalingam C
2018-01-18  5:48 ` [PATCH 4/4] drm/i915: Check for downstream topology errors Ramalingam C
2018-01-18 11:41 ` ✓ Fi.CI.BAT: success for HDCP1.4 implementation enhancement Patchwork
2018-01-18 13:40 ` ✓ Fi.CI.IGT: " Patchwork
2018-01-19  5:40 ` [PATCH 0/4] " Sean Paul

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.