All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/4] Enabling the IGT for HDCP1.4
@ 2018-10-23  9:22 Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 1/4] drm/i915: Pullout the bksv read and validation Ramalingam C
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Ramalingam C @ 2018-10-23  9:22 UTC (permalink / raw)
  To: intel-gfx, daniel.vetter

Adding a debugfs entry for detecting the valid HDCP sinks to
perform kms_content_protection.

In case of dummy HDMI/DP sinks(EDID whisperers without any parsers)
IGT will skip the HDCP test on that connector instead of failing it.
Hence false alarm are avoided.

For serving above purpose this series has pulled out few changes
from "Implement HDCP2.2" series under review at
https://patchwork.freedesktop.org/series/38254/

"drm/i915: hdcp_check_link only on CP_IRQ" is just a improvement
patch for HDCP1.4. Already received the reviewed-by from Sean Paul.

v5:
  DDC/AUX failures are presented as debug logs instead of errors. [Daniel]

Ramalingam C (4):
  drm/i915: Pullout the bksv read and validation
  drm/i915: hdcp_check_link only on CP_IRQ
  drm/i915/debugfs: hdcp capability of a sink
  drm/i915: Move the DDC/AUX failure msgs to debug log

 drivers/gpu/drm/i915/i915_debugfs.c | 29 ++++++++++++
 drivers/gpu/drm/i915/intel_dp.c     | 35 ++++++++-------
 drivers/gpu/drm/i915/intel_drv.h    |  7 +++
 drivers/gpu/drm/i915/intel_hdcp.c   | 89 ++++++++++++++++++++++++-------------
 drivers/gpu/drm/i915/intel_hdmi.c   | 34 +++++++++-----
 5 files changed, 137 insertions(+), 57 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] 14+ messages in thread

* [PATCH v5 1/4] drm/i915: Pullout the bksv read and validation
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
@ 2018-10-23  9:22 ` Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 2/4] drm/i915: hdcp_check_link only on CP_IRQ Ramalingam C
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Ramalingam C @ 2018-10-23  9:22 UTC (permalink / raw)
  To: intel-gfx, daniel.vetter

For reusability purpose, this patch implements the hdcp1.4 bksv's
read and validation as a functions.

For detecting the HDMI panel's HDCP capability this fucntions will be
used.

v2:
  Rebased.
v3:
  No Changes.
v4:
  inline tag is removed with modified error msg.
v5:
  No Changes.
v6:
  No Changes.
v7:
  Realigned the code.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/intel_hdcp.c | 62 ++++++++++++++++++++++++---------------
 1 file changed, 38 insertions(+), 24 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 26e48fc95543..20908ff018e6 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -16,6 +16,41 @@
 
 #define KEY_LOAD_TRIES	5
 
+static
+bool intel_hdcp_is_ksv_valid(u8 *ksv)
+{
+	int i, ones = 0;
+	/* KSV has 20 1's and 20 0's */
+	for (i = 0; i < DRM_HDCP_KSV_LEN; i++)
+		ones += hweight8(ksv[i]);
+	if (ones != 20)
+		return false;
+
+	return true;
+}
+
+static
+int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
+			       const struct intel_hdcp_shim *shim, u8 *bksv)
+{
+	int ret, i, tries = 2;
+
+	/* HDCP spec states that we must retry the bksv if it is invalid */
+	for (i = 0; i < tries; i++) {
+		ret = shim->read_bksv(intel_dig_port, bksv);
+		if (ret)
+			return ret;
+		if (intel_hdcp_is_ksv_valid(bksv))
+			break;
+	}
+	if (i == tries) {
+		DRM_ERROR("Bksv is invalid\n");
+		return -ENODEV;
+	}
+
+	return 0;
+}
+
 static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port *intel_dig_port,
 				    const struct intel_hdcp_shim *shim)
 {
@@ -168,18 +203,6 @@ u32 intel_hdcp_get_repeater_ctl(struct intel_digital_port *intel_dig_port)
 }
 
 static
-bool intel_hdcp_is_ksv_valid(u8 *ksv)
-{
-	int i, ones = 0;
-	/* KSV has 20 1's and 20 0's */
-	for (i = 0; i < DRM_HDCP_KSV_LEN; i++)
-		ones += hweight8(ksv[i]);
-	if (ones != 20)
-		return false;
-	return true;
-}
-
-static
 int intel_hdcp_validate_v_prime(struct intel_digital_port *intel_dig_port,
 				const struct intel_hdcp_shim *shim,
 				u8 *ksv_fifo, u8 num_downstream, u8 *bstatus)
@@ -527,18 +550,9 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 
 	memset(&bksv, 0, sizeof(bksv));
 
-	/* HDCP spec states that we must retry the bksv if it is invalid */
-	for (i = 0; i < tries; i++) {
-		ret = shim->read_bksv(intel_dig_port, bksv.shim);
-		if (ret)
-			return ret;
-		if (intel_hdcp_is_ksv_valid(bksv.shim))
-			break;
-	}
-	if (i == tries) {
-		DRM_ERROR("HDCP failed, Bksv is invalid\n");
-		return -ENODEV;
-	}
+	ret = intel_hdcp_read_valid_bksv(intel_dig_port, shim, bksv.shim);
+	if (ret < 0)
+		return ret;
 
 	I915_WRITE(PORT_HDCP_BKSVLO(port), bksv.reg[0]);
 	I915_WRITE(PORT_HDCP_BKSVHI(port), bksv.reg[1]);
-- 
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] 14+ messages in thread

* [PATCH v5 2/4] drm/i915: hdcp_check_link only on CP_IRQ
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 1/4] drm/i915: Pullout the bksv read and validation Ramalingam C
@ 2018-10-23  9:22 ` Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink Ramalingam C
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Ramalingam C @ 2018-10-23  9:22 UTC (permalink / raw)
  To: intel-gfx, daniel.vetter; +Cc: Sean Paul

HDCP check link is invoked only on CP_IRQ detection, instead of all
short pulses.

v3:
  No Changes.
v4:
  Added sean in cc and collected the reviewed-by received.
v5:
  No Change.
v6:
  No Change.
v7:
  No Change.
v8:
  Rebased.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
cc: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/intel_dp.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 1f098e509143..27377bf8105c 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -4530,8 +4530,11 @@ static void intel_dp_check_service_irq(struct intel_dp *intel_dp)
 	if (val & DP_AUTOMATED_TEST_REQUEST)
 		intel_dp_handle_test_request(intel_dp);
 
-	if (val & (DP_CP_IRQ | DP_SINK_SPECIFIC_IRQ))
-		DRM_DEBUG_DRIVER("CP or sink specific irq unhandled\n");
+	if (val & DP_CP_IRQ)
+		intel_hdcp_check_link(intel_dp->attached_connector);
+
+	if (val & DP_SINK_SPECIFIC_IRQ)
+		DRM_DEBUG_DRIVER("Sink specific irq unhandled\n");
 }
 
 /*
@@ -5694,9 +5697,6 @@ intel_dp_hpd_pulse(struct intel_digital_port *intel_dig_port, bool long_hpd)
 
 		handled = intel_dp_short_pulse(intel_dp);
 
-		/* Short pulse can signify loss of hdcp authentication */
-		intel_hdcp_check_link(intel_dp->attached_connector);
-
 		if (!handled)
 			goto put_power;
 	}
-- 
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] 14+ messages in thread

* [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 1/4] drm/i915: Pullout the bksv read and validation Ramalingam C
  2018-10-23  9:22 ` [PATCH v5 2/4] drm/i915: hdcp_check_link only on CP_IRQ Ramalingam C
@ 2018-10-23  9:22 ` Ramalingam C
  2018-10-23 14:04   ` Daniel Vetter
  2018-10-23  9:22 ` [PATCH v5 4/4] drm/i915: Move the DDC/AUX failure msgs to debug log Ramalingam C
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Ramalingam C @ 2018-10-23  9:22 UTC (permalink / raw)
  To: intel-gfx, daniel.vetter

Add a debugfs entry for providing the hdcp capabilities of the sink
connected to the HDCP capable connectors.

v2:
  Squashed the sink's hdcp capability into this patch. [Daniel]

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 29 +++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/intel_drv.h    |  7 +++++++
 drivers/gpu/drm/i915/intel_hdcp.c   | 27 +++++++++++++++++++++------
 drivers/gpu/drm/i915/intel_hdmi.c   | 16 +++++++++++++++-
 4 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 5f3c639522fa..6d09af66da0f 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -4946,6 +4946,28 @@ static int i915_panel_show(struct seq_file *m, void *data)
 }
 DEFINE_SHOW_ATTRIBUTE(i915_panel);
 
+static int i915_hdcp_sink_capability_show(struct seq_file *m, void *data)
+{
+	struct drm_connector *connector = m->private;
+	struct intel_connector *intel_connector = to_intel_connector(connector);
+
+	if (connector->status != connector_status_connected)
+		return -ENODEV;
+
+	/* HDCP is supported by connector */
+	if (!intel_connector->hdcp_shim)
+		return -EINVAL;
+
+	seq_printf(m, "%s:%d HDCP version: ", connector->name,
+		   connector->base.id);
+	seq_printf(m, "%s ", !intel_hdcp_capable(intel_connector) ?
+		   "None" : "HDCP1.4");
+	seq_puts(m, "\n");
+
+	return 0;
+}
+DEFINE_SHOW_ATTRIBUTE(i915_hdcp_sink_capability);
+
 /**
  * i915_debugfs_connector_add - add i915 specific connector debugfs files
  * @connector: pointer to a registered drm_connector
@@ -4975,5 +4997,12 @@ int i915_debugfs_connector_add(struct drm_connector *connector)
 				    connector, &i915_psr_sink_status_fops);
 	}
 
+	if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+	    connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
+	    connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
+		debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root,
+				    connector, &i915_hdcp_sink_capability_fops);
+	}
+
 	return 0;
 }
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index b2ca9f278b36..249bb9d1b5d0 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1296,6 +1296,12 @@ enc_to_dig_port(struct drm_encoder *encoder)
 		return NULL;
 }
 
+static inline struct intel_digital_port *
+conn_to_dig_port(struct intel_connector *connector)
+{
+	return enc_to_dig_port(&intel_attached_encoder(&connector->base)->base);
+}
+
 static inline struct intel_dp_mst_encoder *
 enc_to_mst(struct drm_encoder *encoder)
 {
@@ -1956,6 +1962,7 @@ 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);
+bool intel_hdcp_capable(struct intel_connector *connector);
 
 /* 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 20908ff018e6..283b45636668 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -51,6 +51,27 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
 	return 0;
 }
 
+/* Is HDCP1.4 capable on Platform and Sink */
+bool intel_hdcp_capable(struct intel_connector *connector)
+{
+	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
+	const struct intel_hdcp_shim *shim = connector->hdcp_shim;
+	bool capable = false;
+	u8 bksv[5];
+
+	if (!shim)
+		return capable;
+
+	if (shim->hdcp_capable) {
+		shim->hdcp_capable(intel_dig_port, &capable);
+	} else {
+		if (!intel_hdcp_read_valid_bksv(intel_dig_port, shim, bksv))
+			capable = true;
+	}
+
+	return capable;
+}
+
 static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port *intel_dig_port,
 				    const struct intel_hdcp_shim *shim)
 {
@@ -632,12 +653,6 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 	return 0;
 }
 
-static
-struct intel_digital_port *conn_to_dig_port(struct intel_connector *connector)
-{
-	return enc_to_dig_port(&intel_attached_encoder(&connector->base)->base);
-}
-
 static int _intel_hdcp_disable(struct intel_connector *connector)
 {
 	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 89d5e3984452..72e8a73dfa1c 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -2072,6 +2072,20 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder,
 	chv_phy_release_cl2_override(encoder);
 }
 
+static int
+intel_hdmi_connector_register(struct drm_connector *connector)
+{
+	int ret;
+
+	ret = intel_connector_register(connector);
+	if (ret)
+		return ret;
+
+	i915_debugfs_connector_add(connector);
+
+	return ret;
+}
+
 static void intel_hdmi_destroy(struct drm_connector *connector)
 {
 	if (intel_attached_hdmi(connector)->cec_notifier)
@@ -2086,7 +2100,7 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
 	.fill_modes = drm_helper_probe_single_connector_modes,
 	.atomic_get_property = intel_digital_connector_atomic_get_property,
 	.atomic_set_property = intel_digital_connector_atomic_set_property,
-	.late_register = intel_connector_register,
+	.late_register = intel_hdmi_connector_register,
 	.early_unregister = intel_connector_unregister,
 	.destroy = intel_hdmi_destroy,
 	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
-- 
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] 14+ messages in thread

* [PATCH v5 4/4] drm/i915: Move the DDC/AUX failure msgs to debug log
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (2 preceding siblings ...)
  2018-10-23  9:22 ` [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink Ramalingam C
@ 2018-10-23  9:22 ` Ramalingam C
  2018-10-23 10:41   ` [PATCH v6] " Ramalingam C
  2018-10-23  9:37 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev5) Patchwork
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 14+ messages in thread
From: Ramalingam C @ 2018-10-23  9:22 UTC (permalink / raw)
  To: intel-gfx, daniel.vetter

When a HDCP authentication is in progress, if the display sink is
hot unplugged, all DDC/AUX transaction related to the HDCP
authentication will fail.

This patch moves those kind of HDCP DDC/AUX failures into the debug
logs instead of errors.

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c   | 25 +++++++++++++------------
 drivers/gpu/drm/i915/intel_hdmi.c | 18 +++++++++---------
 2 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 27377bf8105c..ac13aa3cef91 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5347,7 +5347,8 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 	dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN,
 				     an, DRM_HDCP_AN_LEN);
 	if (dpcd_ret != DRM_HDCP_AN_LEN) {
-		DRM_ERROR("Failed to write An over DP/AUX (%zd)\n", dpcd_ret);
+		DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n",
+			      dpcd_ret);
 		return dpcd_ret >= 0 ? -EIO : dpcd_ret;
 	}
 
@@ -5363,10 +5364,10 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 				rxbuf, sizeof(rxbuf),
 				DP_AUX_CH_CTL_AUX_AKSV_SELECT);
 	if (ret < 0) {
-		DRM_ERROR("Write Aksv over DP/AUX failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Write Aksv over DP/AUX failed (%d)\n", ret);
 		return ret;
 	} else if (ret == 0) {
-		DRM_ERROR("Aksv write over DP/AUX was empty\n");
+		DRM_DEBUG_KMS("Aksv write over DP/AUX was empty\n");
 		return -EIO;
 	}
 
@@ -5381,7 +5382,7 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
 			       DRM_HDCP_KSV_LEN);
 	if (ret != DRM_HDCP_KSV_LEN) {
-		DRM_ERROR("Read Bksv from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5399,7 +5400,7 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
 			       bstatus, DRM_HDCP_BSTATUS_LEN);
 	if (ret != DRM_HDCP_BSTATUS_LEN) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5414,7 +5415,7 @@ int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS,
 			       bcaps, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bcaps from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 
@@ -5444,7 +5445,7 @@ int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,
 			       ri_prime, DRM_HDCP_RI_LEN);
 	if (ret != DRM_HDCP_RI_LEN) {
-		DRM_ERROR("Read Ri' from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read Ri' from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5459,7 +5460,7 @@ int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
 			       &bstatus, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	*ksv_ready = bstatus & DP_BSTATUS_READY;
@@ -5481,8 +5482,8 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
 				       ksv_fifo + i * DRM_HDCP_KSV_LEN,
 				       len);
 		if (ret != len) {
-			DRM_ERROR("Read ksv[%d] from DP/AUX failed (%zd)\n", i,
-				  ret);
+			DRM_DEBUG_KMS("Read ksv[%d] from DP/AUX failed (%zd)\n",
+				      i, ret);
 			return ret >= 0 ? -EIO : ret;
 		}
 	}
@@ -5502,7 +5503,7 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
 			       DP_AUX_HDCP_V_PRIME(i), part,
 			       DRM_HDCP_V_PRIME_PART_LEN);
 	if (ret != DRM_HDCP_V_PRIME_PART_LEN) {
-		DRM_ERROR("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
+		DRM_DEBUG_KMS("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5525,7 +5526,7 @@ bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
 			       &bstatus, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 72e8a73dfa1c..d3e653640ce7 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -961,13 +961,13 @@ int intel_hdmi_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_write(intel_dig_port, DRM_HDCP_DDC_AN, an,
 				    DRM_HDCP_AN_LEN);
 	if (ret) {
-		DRM_ERROR("Write An over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Write An over DDC failed (%d)\n", ret);
 		return ret;
 	}
 
 	ret = intel_gmbus_output_aksv(adapter);
 	if (ret < 0) {
-		DRM_ERROR("Failed to output aksv (%d)\n", ret);
+		DRM_DEBUG_KMS("Failed to output aksv (%d)\n", ret);
 		return ret;
 	}
 	return 0;
@@ -980,7 +980,7 @@ static int intel_hdmi_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BKSV, bksv,
 				   DRM_HDCP_KSV_LEN);
 	if (ret)
-		DRM_ERROR("Read Bksv over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read Bksv over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -992,7 +992,7 @@ int intel_hdmi_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BSTATUS,
 				   bstatus, DRM_HDCP_BSTATUS_LEN);
 	if (ret)
-		DRM_ERROR("Read bstatus over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -1005,7 +1005,7 @@ int intel_hdmi_hdcp_repeater_present(struct intel_digital_port *intel_dig_port,
 
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
 	if (ret) {
-		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	*repeater_present = val & DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT;
@@ -1020,7 +1020,7 @@ int intel_hdmi_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_RI_PRIME,
 				   ri_prime, DRM_HDCP_RI_LEN);
 	if (ret)
-		DRM_ERROR("Read Ri' over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read Ri' over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -1033,7 +1033,7 @@ int intel_hdmi_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
 
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
 	if (ret) {
-		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	*ksv_ready = val & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY;
@@ -1048,7 +1048,7 @@ int intel_hdmi_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_KSV_FIFO,
 				   ksv_fifo, num_downstream * DRM_HDCP_KSV_LEN);
 	if (ret) {
-		DRM_ERROR("Read ksv fifo over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read ksv fifo over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	return 0;
@@ -1066,7 +1066,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_V_PRIME(i),
 				   part, DRM_HDCP_V_PRIME_PART_LEN);
 	if (ret)
-		DRM_ERROR("Read V'[%d] over DDC failed (%d)\n", i, ret);
+		DRM_DEBUG_KMS("Read V'[%d] over DDC failed (%d)\n", i, ret);
 	return 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] 14+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev5)
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (3 preceding siblings ...)
  2018-10-23  9:22 ` [PATCH v5 4/4] drm/i915: Move the DDC/AUX failure msgs to debug log Ramalingam C
@ 2018-10-23  9:37 ` Patchwork
  2018-10-23 10:02 ` ✗ Fi.CI.BAT: failure " Patchwork
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-10-23  9:37 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: Enabling the IGT for HDCP1.4 (rev5)
URL   : https://patchwork.freedesktop.org/series/51113/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d9e796262c20 drm/i915: Pullout the bksv read and validation
9fa115201d78 drm/i915: hdcp_check_link only on CP_IRQ
5ca4b15ca5b6 drm/i915/debugfs: hdcp capability of a sink
-:54: WARNING:SYMBOLIC_PERMS: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
#54: FILE: drivers/gpu/drm/i915/i915_debugfs.c:5034:
+		debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root,

total: 0 errors, 1 warnings, 0 checks, 126 lines checked
54c832200d20 drm/i915: Move the DDC/AUX failure msgs to debug log

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

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

* ✗ Fi.CI.BAT: failure for Enabling the IGT for HDCP1.4 (rev5)
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (4 preceding siblings ...)
  2018-10-23  9:37 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev5) Patchwork
@ 2018-10-23 10:02 ` Patchwork
  2018-10-23 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev6) Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-10-23 10:02 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: Enabling the IGT for HDCP1.4 (rev5)
URL   : https://patchwork.freedesktop.org/series/51113/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_5020 -> Patchwork_10539 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10539 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10539, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/51113/revisions/5/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10539:

  === IGT changes ===

    ==== Possible regressions ====

    igt@debugfs_test@read_all_entries:
      fi-bdw-gvtdvm:      PASS -> DMESG-WARN

    igt@drv_selftest@live_execlists:
      fi-apl-guc:         PASS -> DMESG-WARN

    
== Known issues ==

  Here are the changes found in Patchwork_10539 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       PASS -> DMESG-WARN (fdo#105128, fdo#107139)

    
    ==== Possible fixes ====

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       DMESG-WARN (fdo#102614) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-byt-clapper:     FAIL (fdo#107362, fdo#103191) -> PASS +1
      fi-blb-e6850:       INCOMPLETE (fdo#107718) -> PASS

    igt@prime_vgem@basic-fence-flip:
      fi-cfl-8700k:       FAIL (fdo#104008) -> PASS

    
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (47 -> 43) ==

  Additional (1): fi-icl-u 
  Missing    (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 


== Build changes ==

    * Linux: CI_DRM_5020 -> Patchwork_10539

  CI_DRM_5020: 95151c25e0433a2fe771b8bc272f3f8fb54a7e27 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4686: 741bf7064c467df725c14cc0b3b8b50436f9ee09 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10539: 54c832200d201d353dfff24da6f7f987f8d023ac @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

54c832200d20 drm/i915: Move the DDC/AUX failure msgs to debug log
5ca4b15ca5b6 drm/i915/debugfs: hdcp capability of a sink
9fa115201d78 drm/i915: hdcp_check_link only on CP_IRQ
d9e796262c20 drm/i915: Pullout the bksv read and validation

== Logs ==

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

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

* [PATCH v6] drm/i915: Move the DDC/AUX failure msgs to debug log
  2018-10-23  9:22 ` [PATCH v5 4/4] drm/i915: Move the DDC/AUX failure msgs to debug log Ramalingam C
@ 2018-10-23 10:41   ` Ramalingam C
  2018-10-23 14:05     ` Daniel Vetter
  0 siblings, 1 reply; 14+ messages in thread
From: Ramalingam C @ 2018-10-23 10:41 UTC (permalink / raw)
  To: daniel.vetter, intel-gfx

When a HDCP authentication is in progress, if the display sink is
hot unplugged, all DDC/AUX transaction related to the HDCP
authentication will fail.

This patch moves those kind of HDCP DDC/AUX failures into the debug
logs instead of errors.

v2:
  Bksv invalid state is provided as debug msg

Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
---
 drivers/gpu/drm/i915/intel_dp.c   | 25 +++++++++++++------------
 drivers/gpu/drm/i915/intel_hdcp.c |  2 +-
 drivers/gpu/drm/i915/intel_hdmi.c | 18 +++++++++---------
 3 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index 27377bf8105c..ac13aa3cef91 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5347,7 +5347,8 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 	dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN,
 				     an, DRM_HDCP_AN_LEN);
 	if (dpcd_ret != DRM_HDCP_AN_LEN) {
-		DRM_ERROR("Failed to write An over DP/AUX (%zd)\n", dpcd_ret);
+		DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n",
+			      dpcd_ret);
 		return dpcd_ret >= 0 ? -EIO : dpcd_ret;
 	}
 
@@ -5363,10 +5364,10 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 				rxbuf, sizeof(rxbuf),
 				DP_AUX_CH_CTL_AUX_AKSV_SELECT);
 	if (ret < 0) {
-		DRM_ERROR("Write Aksv over DP/AUX failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Write Aksv over DP/AUX failed (%d)\n", ret);
 		return ret;
 	} else if (ret == 0) {
-		DRM_ERROR("Aksv write over DP/AUX was empty\n");
+		DRM_DEBUG_KMS("Aksv write over DP/AUX was empty\n");
 		return -EIO;
 	}
 
@@ -5381,7 +5382,7 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
 			       DRM_HDCP_KSV_LEN);
 	if (ret != DRM_HDCP_KSV_LEN) {
-		DRM_ERROR("Read Bksv from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5399,7 +5400,7 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
 			       bstatus, DRM_HDCP_BSTATUS_LEN);
 	if (ret != DRM_HDCP_BSTATUS_LEN) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5414,7 +5415,7 @@ int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS,
 			       bcaps, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bcaps from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 
@@ -5444,7 +5445,7 @@ int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,
 			       ri_prime, DRM_HDCP_RI_LEN);
 	if (ret != DRM_HDCP_RI_LEN) {
-		DRM_ERROR("Read Ri' from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read Ri' from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5459,7 +5460,7 @@ int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
 			       &bstatus, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	*ksv_ready = bstatus & DP_BSTATUS_READY;
@@ -5481,8 +5482,8 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
 				       ksv_fifo + i * DRM_HDCP_KSV_LEN,
 				       len);
 		if (ret != len) {
-			DRM_ERROR("Read ksv[%d] from DP/AUX failed (%zd)\n", i,
-				  ret);
+			DRM_DEBUG_KMS("Read ksv[%d] from DP/AUX failed (%zd)\n",
+				      i, ret);
 			return ret >= 0 ? -EIO : ret;
 		}
 	}
@@ -5502,7 +5503,7 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
 			       DP_AUX_HDCP_V_PRIME(i), part,
 			       DRM_HDCP_V_PRIME_PART_LEN);
 	if (ret != DRM_HDCP_V_PRIME_PART_LEN) {
-		DRM_ERROR("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
+		DRM_DEBUG_KMS("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
 		return ret >= 0 ? -EIO : ret;
 	}
 	return 0;
@@ -5525,7 +5526,7 @@ bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
 	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
 			       &bstatus, 1);
 	if (ret != 1) {
-		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
 		return false;
 	}
 
diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 283b45636668..5b423a78518d 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -44,7 +44,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
 			break;
 	}
 	if (i == tries) {
-		DRM_ERROR("Bksv is invalid\n");
+		DRM_DEBUG_KMS("Bksv is invalid\n");
 		return -ENODEV;
 	}
 
diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
index 72e8a73dfa1c..d3e653640ce7 100644
--- a/drivers/gpu/drm/i915/intel_hdmi.c
+++ b/drivers/gpu/drm/i915/intel_hdmi.c
@@ -961,13 +961,13 @@ int intel_hdmi_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_write(intel_dig_port, DRM_HDCP_DDC_AN, an,
 				    DRM_HDCP_AN_LEN);
 	if (ret) {
-		DRM_ERROR("Write An over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Write An over DDC failed (%d)\n", ret);
 		return ret;
 	}
 
 	ret = intel_gmbus_output_aksv(adapter);
 	if (ret < 0) {
-		DRM_ERROR("Failed to output aksv (%d)\n", ret);
+		DRM_DEBUG_KMS("Failed to output aksv (%d)\n", ret);
 		return ret;
 	}
 	return 0;
@@ -980,7 +980,7 @@ static int intel_hdmi_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BKSV, bksv,
 				   DRM_HDCP_KSV_LEN);
 	if (ret)
-		DRM_ERROR("Read Bksv over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read Bksv over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -992,7 +992,7 @@ int intel_hdmi_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BSTATUS,
 				   bstatus, DRM_HDCP_BSTATUS_LEN);
 	if (ret)
-		DRM_ERROR("Read bstatus over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bstatus over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -1005,7 +1005,7 @@ int intel_hdmi_hdcp_repeater_present(struct intel_digital_port *intel_dig_port,
 
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
 	if (ret) {
-		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	*repeater_present = val & DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT;
@@ -1020,7 +1020,7 @@ int intel_hdmi_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_RI_PRIME,
 				   ri_prime, DRM_HDCP_RI_LEN);
 	if (ret)
-		DRM_ERROR("Read Ri' over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read Ri' over DDC failed (%d)\n", ret);
 	return ret;
 }
 
@@ -1033,7 +1033,7 @@ int intel_hdmi_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
 
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
 	if (ret) {
-		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	*ksv_ready = val & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY;
@@ -1048,7 +1048,7 @@ int intel_hdmi_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_KSV_FIFO,
 				   ksv_fifo, num_downstream * DRM_HDCP_KSV_LEN);
 	if (ret) {
-		DRM_ERROR("Read ksv fifo over DDC failed (%d)\n", ret);
+		DRM_DEBUG_KMS("Read ksv fifo over DDC failed (%d)\n", ret);
 		return ret;
 	}
 	return 0;
@@ -1066,7 +1066,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
 	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_V_PRIME(i),
 				   part, DRM_HDCP_V_PRIME_PART_LEN);
 	if (ret)
-		DRM_ERROR("Read V'[%d] over DDC failed (%d)\n", i, ret);
+		DRM_DEBUG_KMS("Read V'[%d] over DDC failed (%d)\n", i, ret);
 	return 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] 14+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev6)
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (5 preceding siblings ...)
  2018-10-23 10:02 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2018-10-23 11:17 ` Patchwork
  2018-10-23 11:39 ` ✓ Fi.CI.BAT: success " Patchwork
  2018-10-23 14:07 ` ✗ Fi.CI.IGT: failure " Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-10-23 11:17 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: Enabling the IGT for HDCP1.4 (rev6)
URL   : https://patchwork.freedesktop.org/series/51113/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
c3c2b2c2adde drm/i915: Pullout the bksv read and validation
a19f5d9b3ed9 drm/i915: hdcp_check_link only on CP_IRQ
91f4c1759328 drm/i915/debugfs: hdcp capability of a sink
-:54: WARNING:SYMBOLIC_PERMS: Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'.
#54: FILE: drivers/gpu/drm/i915/i915_debugfs.c:5034:
+		debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root,

total: 0 errors, 1 warnings, 0 checks, 126 lines checked
9153e6ff86f1 drm/i915: Move the DDC/AUX failure msgs to debug log

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

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

* ✓ Fi.CI.BAT: success for Enabling the IGT for HDCP1.4 (rev6)
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (6 preceding siblings ...)
  2018-10-23 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev6) Patchwork
@ 2018-10-23 11:39 ` Patchwork
  2018-10-23 14:07 ` ✗ Fi.CI.IGT: failure " Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-10-23 11:39 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: Enabling the IGT for HDCP1.4 (rev6)
URL   : https://patchwork.freedesktop.org/series/51113/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5020 -> Patchwork_10542 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/51113/revisions/6/mbox/

== Known issues ==

  Here are the changes found in Patchwork_10542 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_suspend@basic-s3:
      fi-kbl-soraka:      NOTRUN -> INCOMPLETE (fdo#107556, fdo#107774, fdo#107859)

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-byt-clapper:     PASS -> FAIL (fdo#107362)

    
    ==== Possible fixes ====

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       DMESG-WARN (fdo#102614) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-byt-clapper:     FAIL (fdo#103191, fdo#107362) -> PASS +1
      fi-blb-e6850:       INCOMPLETE (fdo#107718) -> PASS

    igt@prime_vgem@basic-fence-flip:
      fi-cfl-8700k:       FAIL (fdo#104008) -> PASS

    
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107556 https://bugs.freedesktop.org/show_bug.cgi?id=107556
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
  fdo#107774 https://bugs.freedesktop.org/show_bug.cgi?id=107774
  fdo#107859 https://bugs.freedesktop.org/show_bug.cgi?id=107859


== Participating hosts (47 -> 45) ==

  Additional (3): fi-kbl-soraka fi-icl-u fi-cfl-8109u 
  Missing    (5): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 


== Build changes ==

    * Linux: CI_DRM_5020 -> Patchwork_10542

  CI_DRM_5020: 95151c25e0433a2fe771b8bc272f3f8fb54a7e27 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4686: 741bf7064c467df725c14cc0b3b8b50436f9ee09 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10542: 9153e6ff86f14e84ef9b9e5aae8103c407e606f1 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9153e6ff86f1 drm/i915: Move the DDC/AUX failure msgs to debug log
91f4c1759328 drm/i915/debugfs: hdcp capability of a sink
a19f5d9b3ed9 drm/i915: hdcp_check_link only on CP_IRQ
c3c2b2c2adde drm/i915: Pullout the bksv read and validation

== Logs ==

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

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

* Re: [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink
  2018-10-23  9:22 ` [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink Ramalingam C
@ 2018-10-23 14:04   ` Daniel Vetter
  0 siblings, 0 replies; 14+ messages in thread
From: Daniel Vetter @ 2018-10-23 14:04 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx

On Tue, Oct 23, 2018 at 02:52:29PM +0530, Ramalingam C wrote:
> Add a debugfs entry for providing the hdcp capabilities of the sink
> connected to the HDCP capable connectors.
> 
> v2:
>   Squashed the sink's hdcp capability into this patch. [Daniel]
> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>

Yeah lgtm. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 29 +++++++++++++++++++++++++++++
>  drivers/gpu/drm/i915/intel_drv.h    |  7 +++++++
>  drivers/gpu/drm/i915/intel_hdcp.c   | 27 +++++++++++++++++++++------
>  drivers/gpu/drm/i915/intel_hdmi.c   | 16 +++++++++++++++-
>  4 files changed, 72 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 5f3c639522fa..6d09af66da0f 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -4946,6 +4946,28 @@ static int i915_panel_show(struct seq_file *m, void *data)
>  }
>  DEFINE_SHOW_ATTRIBUTE(i915_panel);
>  
> +static int i915_hdcp_sink_capability_show(struct seq_file *m, void *data)
> +{
> +	struct drm_connector *connector = m->private;
> +	struct intel_connector *intel_connector = to_intel_connector(connector);
> +
> +	if (connector->status != connector_status_connected)
> +		return -ENODEV;
> +
> +	/* HDCP is supported by connector */
> +	if (!intel_connector->hdcp_shim)
> +		return -EINVAL;
> +
> +	seq_printf(m, "%s:%d HDCP version: ", connector->name,
> +		   connector->base.id);
> +	seq_printf(m, "%s ", !intel_hdcp_capable(intel_connector) ?
> +		   "None" : "HDCP1.4");
> +	seq_puts(m, "\n");
> +
> +	return 0;
> +}
> +DEFINE_SHOW_ATTRIBUTE(i915_hdcp_sink_capability);
> +
>  /**
>   * i915_debugfs_connector_add - add i915 specific connector debugfs files
>   * @connector: pointer to a registered drm_connector
> @@ -4975,5 +4997,12 @@ int i915_debugfs_connector_add(struct drm_connector *connector)
>  				    connector, &i915_psr_sink_status_fops);
>  	}
>  
> +	if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
> +	    connector->connector_type == DRM_MODE_CONNECTOR_HDMIA ||
> +	    connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) {
> +		debugfs_create_file("i915_hdcp_sink_capability", S_IRUGO, root,
> +				    connector, &i915_hdcp_sink_capability_fops);
> +	}
> +
>  	return 0;
>  }
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index b2ca9f278b36..249bb9d1b5d0 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1296,6 +1296,12 @@ enc_to_dig_port(struct drm_encoder *encoder)
>  		return NULL;
>  }
>  
> +static inline struct intel_digital_port *
> +conn_to_dig_port(struct intel_connector *connector)
> +{
> +	return enc_to_dig_port(&intel_attached_encoder(&connector->base)->base);
> +}
> +
>  static inline struct intel_dp_mst_encoder *
>  enc_to_mst(struct drm_encoder *encoder)
>  {
> @@ -1956,6 +1962,7 @@ 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);
> +bool intel_hdcp_capable(struct intel_connector *connector);
>  
>  /* 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 20908ff018e6..283b45636668 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -51,6 +51,27 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
>  	return 0;
>  }
>  
> +/* Is HDCP1.4 capable on Platform and Sink */
> +bool intel_hdcp_capable(struct intel_connector *connector)
> +{
> +	struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector);
> +	const struct intel_hdcp_shim *shim = connector->hdcp_shim;
> +	bool capable = false;
> +	u8 bksv[5];
> +
> +	if (!shim)
> +		return capable;
> +
> +	if (shim->hdcp_capable) {
> +		shim->hdcp_capable(intel_dig_port, &capable);
> +	} else {
> +		if (!intel_hdcp_read_valid_bksv(intel_dig_port, shim, bksv))
> +			capable = true;
> +	}
> +
> +	return capable;
> +}
> +
>  static int intel_hdcp_poll_ksv_fifo(struct intel_digital_port *intel_dig_port,
>  				    const struct intel_hdcp_shim *shim)
>  {
> @@ -632,12 +653,6 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	return 0;
>  }
>  
> -static
> -struct intel_digital_port *conn_to_dig_port(struct intel_connector *connector)
> -{
> -	return enc_to_dig_port(&intel_attached_encoder(&connector->base)->base);
> -}
> -
>  static int _intel_hdcp_disable(struct intel_connector *connector)
>  {
>  	struct drm_i915_private *dev_priv = connector->base.dev->dev_private;
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 89d5e3984452..72e8a73dfa1c 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -2072,6 +2072,20 @@ static void chv_hdmi_pre_enable(struct intel_encoder *encoder,
>  	chv_phy_release_cl2_override(encoder);
>  }
>  
> +static int
> +intel_hdmi_connector_register(struct drm_connector *connector)
> +{
> +	int ret;
> +
> +	ret = intel_connector_register(connector);
> +	if (ret)
> +		return ret;
> +
> +	i915_debugfs_connector_add(connector);
> +
> +	return ret;
> +}
> +
>  static void intel_hdmi_destroy(struct drm_connector *connector)
>  {
>  	if (intel_attached_hdmi(connector)->cec_notifier)
> @@ -2086,7 +2100,7 @@ static const struct drm_connector_funcs intel_hdmi_connector_funcs = {
>  	.fill_modes = drm_helper_probe_single_connector_modes,
>  	.atomic_get_property = intel_digital_connector_atomic_get_property,
>  	.atomic_set_property = intel_digital_connector_atomic_set_property,
> -	.late_register = intel_connector_register,
> +	.late_register = intel_hdmi_connector_register,
>  	.early_unregister = intel_connector_unregister,
>  	.destroy = intel_hdmi_destroy,
>  	.atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> -- 
> 2.7.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH v6] drm/i915: Move the DDC/AUX failure msgs to debug log
  2018-10-23 10:41   ` [PATCH v6] " Ramalingam C
@ 2018-10-23 14:05     ` Daniel Vetter
  2018-10-24  7:34       ` Daniel Vetter
  0 siblings, 1 reply; 14+ messages in thread
From: Daniel Vetter @ 2018-10-23 14:05 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx

On Tue, Oct 23, 2018 at 04:11:28PM +0530, Ramalingam C wrote:
> When a HDCP authentication is in progress, if the display sink is
> hot unplugged, all DDC/AUX transaction related to the HDCP
> authentication will fail.
> 
> This patch moves those kind of HDCP DDC/AUX failures into the debug
> logs instead of errors.
> 
> v2:
>   Bksv invalid state is provided as debug msg
> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>

For the record, summary of our irc discussion:

Anything the user (e.g. hotplug while hdcp code is running by yanking the
cable) or userspace (e.g. through invalid ioctl parameters) can provoke to
happen must use DRM_DEBUG_* instead of DRM_ERROR. DRM_ERROR is truly only
for the impossible stuff (hw bugs, kernel driver bugs, that kind of
stuff).

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  drivers/gpu/drm/i915/intel_dp.c   | 25 +++++++++++++------------
>  drivers/gpu/drm/i915/intel_hdcp.c |  2 +-
>  drivers/gpu/drm/i915/intel_hdmi.c | 18 +++++++++---------
>  3 files changed, 23 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 27377bf8105c..ac13aa3cef91 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5347,7 +5347,8 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
>  	dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN,
>  				     an, DRM_HDCP_AN_LEN);
>  	if (dpcd_ret != DRM_HDCP_AN_LEN) {
> -		DRM_ERROR("Failed to write An over DP/AUX (%zd)\n", dpcd_ret);
> +		DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n",
> +			      dpcd_ret);
>  		return dpcd_ret >= 0 ? -EIO : dpcd_ret;
>  	}
>  
> @@ -5363,10 +5364,10 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
>  				rxbuf, sizeof(rxbuf),
>  				DP_AUX_CH_CTL_AUX_AKSV_SELECT);
>  	if (ret < 0) {
> -		DRM_ERROR("Write Aksv over DP/AUX failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Write Aksv over DP/AUX failed (%d)\n", ret);
>  		return ret;
>  	} else if (ret == 0) {
> -		DRM_ERROR("Aksv write over DP/AUX was empty\n");
> +		DRM_DEBUG_KMS("Aksv write over DP/AUX was empty\n");
>  		return -EIO;
>  	}
>  
> @@ -5381,7 +5382,7 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
>  			       DRM_HDCP_KSV_LEN);
>  	if (ret != DRM_HDCP_KSV_LEN) {
> -		DRM_ERROR("Read Bksv from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  	return 0;
> @@ -5399,7 +5400,7 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
>  			       bstatus, DRM_HDCP_BSTATUS_LEN);
>  	if (ret != DRM_HDCP_BSTATUS_LEN) {
> -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  	return 0;
> @@ -5414,7 +5415,7 @@ int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS,
>  			       bcaps, 1);
>  	if (ret != 1) {
> -		DRM_ERROR("Read bcaps from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read bcaps from DP/AUX failed (%zd)\n", ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  
> @@ -5444,7 +5445,7 @@ int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,
>  			       ri_prime, DRM_HDCP_RI_LEN);
>  	if (ret != DRM_HDCP_RI_LEN) {
> -		DRM_ERROR("Read Ri' from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read Ri' from DP/AUX failed (%zd)\n", ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  	return 0;
> @@ -5459,7 +5460,7 @@ int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
>  			       &bstatus, 1);
>  	if (ret != 1) {
> -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  	*ksv_ready = bstatus & DP_BSTATUS_READY;
> @@ -5481,8 +5482,8 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
>  				       ksv_fifo + i * DRM_HDCP_KSV_LEN,
>  				       len);
>  		if (ret != len) {
> -			DRM_ERROR("Read ksv[%d] from DP/AUX failed (%zd)\n", i,
> -				  ret);
> +			DRM_DEBUG_KMS("Read ksv[%d] from DP/AUX failed (%zd)\n",
> +				      i, ret);
>  			return ret >= 0 ? -EIO : ret;
>  		}
>  	}
> @@ -5502,7 +5503,7 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
>  			       DP_AUX_HDCP_V_PRIME(i), part,
>  			       DRM_HDCP_V_PRIME_PART_LEN);
>  	if (ret != DRM_HDCP_V_PRIME_PART_LEN) {
> -		DRM_ERROR("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
> +		DRM_DEBUG_KMS("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
>  		return ret >= 0 ? -EIO : ret;
>  	}
>  	return 0;
> @@ -5525,7 +5526,7 @@ bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
>  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
>  			       &bstatus, 1);
>  	if (ret != 1) {
> -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
>  		return false;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> index 283b45636668..5b423a78518d 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -44,7 +44,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
>  			break;
>  	}
>  	if (i == tries) {
> -		DRM_ERROR("Bksv is invalid\n");
> +		DRM_DEBUG_KMS("Bksv is invalid\n");
>  		return -ENODEV;
>  	}
>  
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 72e8a73dfa1c..d3e653640ce7 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -961,13 +961,13 @@ int intel_hdmi_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_write(intel_dig_port, DRM_HDCP_DDC_AN, an,
>  				    DRM_HDCP_AN_LEN);
>  	if (ret) {
> -		DRM_ERROR("Write An over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Write An over DDC failed (%d)\n", ret);
>  		return ret;
>  	}
>  
>  	ret = intel_gmbus_output_aksv(adapter);
>  	if (ret < 0) {
> -		DRM_ERROR("Failed to output aksv (%d)\n", ret);
> +		DRM_DEBUG_KMS("Failed to output aksv (%d)\n", ret);
>  		return ret;
>  	}
>  	return 0;
> @@ -980,7 +980,7 @@ static int intel_hdmi_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BKSV, bksv,
>  				   DRM_HDCP_KSV_LEN);
>  	if (ret)
> -		DRM_ERROR("Read Bksv over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read Bksv over DDC failed (%d)\n", ret);
>  	return ret;
>  }
>  
> @@ -992,7 +992,7 @@ int intel_hdmi_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BSTATUS,
>  				   bstatus, DRM_HDCP_BSTATUS_LEN);
>  	if (ret)
> -		DRM_ERROR("Read bstatus over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read bstatus over DDC failed (%d)\n", ret);
>  	return ret;
>  }
>  
> @@ -1005,7 +1005,7 @@ int intel_hdmi_hdcp_repeater_present(struct intel_digital_port *intel_dig_port,
>  
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
>  	if (ret) {
> -		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
>  		return ret;
>  	}
>  	*repeater_present = val & DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT;
> @@ -1020,7 +1020,7 @@ int intel_hdmi_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_RI_PRIME,
>  				   ri_prime, DRM_HDCP_RI_LEN);
>  	if (ret)
> -		DRM_ERROR("Read Ri' over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read Ri' over DDC failed (%d)\n", ret);
>  	return ret;
>  }
>  
> @@ -1033,7 +1033,7 @@ int intel_hdmi_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
>  
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
>  	if (ret) {
> -		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
>  		return ret;
>  	}
>  	*ksv_ready = val & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY;
> @@ -1048,7 +1048,7 @@ int intel_hdmi_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_KSV_FIFO,
>  				   ksv_fifo, num_downstream * DRM_HDCP_KSV_LEN);
>  	if (ret) {
> -		DRM_ERROR("Read ksv fifo over DDC failed (%d)\n", ret);
> +		DRM_DEBUG_KMS("Read ksv fifo over DDC failed (%d)\n", ret);
>  		return ret;
>  	}
>  	return 0;
> @@ -1066,7 +1066,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
>  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_V_PRIME(i),
>  				   part, DRM_HDCP_V_PRIME_PART_LEN);
>  	if (ret)
> -		DRM_ERROR("Read V'[%d] over DDC failed (%d)\n", i, ret);
> +		DRM_DEBUG_KMS("Read V'[%d] over DDC failed (%d)\n", i, ret);
>  	return ret;
>  }
>  
> -- 
> 2.7.4
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* ✗ Fi.CI.IGT: failure for Enabling the IGT for HDCP1.4 (rev6)
  2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
                   ` (7 preceding siblings ...)
  2018-10-23 11:39 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-10-23 14:07 ` Patchwork
  8 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-10-23 14:07 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: Enabling the IGT for HDCP1.4 (rev6)
URL   : https://patchwork.freedesktop.org/series/51113/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_5020_full -> Patchwork_10542_full =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10542_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10542_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10542_full:

  === IGT changes ===

    ==== Possible regressions ====

    igt@gem_eio@in-flight-suspend:
      shard-glk:          PASS -> FAIL

    igt@kms_draw_crc@draw-method-xrgb8888-blt-ytiled:
      shard-skl:          NOTRUN -> FAIL

    
    ==== Warnings ====

    igt@perf_pmu@rc6:
      shard-kbl:          SKIP -> PASS

    
== Known issues ==

  Here are the changes found in Patchwork_10542_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_suspend@forcewake:
      shard-skl:          PASS -> INCOMPLETE (fdo#104108, fdo#107773)

    igt@gem_cpu_reloc@full:
      shard-skl:          NOTRUN -> INCOMPLETE (fdo#108073)

    igt@gem_exec_schedule@pi-ringfull-bsd:
      shard-skl:          NOTRUN -> FAIL (fdo#103158) +2

    igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-b:
      shard-hsw:          PASS -> DMESG-WARN (fdo#107956)
      shard-skl:          NOTRUN -> DMESG-WARN (fdo#107956) +1

    igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-untiled:
      shard-skl:          NOTRUN -> FAIL (fdo#108145) +1

    igt@kms_draw_crc@fill-fb:
      shard-skl:          NOTRUN -> FAIL (fdo#103184)

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt:
      shard-skl:          NOTRUN -> FAIL (fdo#103167) +1

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
      shard-skl:          NOTRUN -> FAIL (fdo#105682) +1

    igt@kms_frontbuffer_tracking@fbcpsr-stridechange:
      shard-skl:          NOTRUN -> FAIL (fdo#105683)

    igt@kms_plane@pixel-format-pipe-b-planes:
      shard-skl:          NOTRUN -> DMESG-FAIL (fdo#106885, fdo#103166)

    igt@kms_plane@plane-position-covered-pipe-b-planes:
      shard-glk:          PASS -> FAIL (fdo#103166) +1
      shard-apl:          PASS -> FAIL (fdo#103166)

    igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
      shard-skl:          NOTRUN -> FAIL (fdo#108146)

    igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
      shard-skl:          NOTRUN -> FAIL (fdo#108145, fdo#107815)

    igt@kms_rotation_crc@exhaust-fences:
      shard-skl:          NOTRUN -> DMESG-WARN (fdo#105748)

    igt@kms_setmode@basic:
      shard-skl:          NOTRUN -> FAIL (fdo#99912)

    igt@kms_sysfs_edid_timing:
      shard-skl:          NOTRUN -> FAIL (fdo#100047)

    igt@pm_rpm@modeset-non-lpsp-stress:
      shard-skl:          NOTRUN -> INCOMPLETE (fdo#107807)

    igt@syncobj_wait@wait-for-submit-delayed-submit:
      shard-snb:          NOTRUN -> INCOMPLETE (fdo#105411) +3
      shard-skl:          NOTRUN -> INCOMPLETE (fdo#108490) +1

    
    ==== Possible fixes ====

    igt@kms_busy@extended-modeset-hang-newfb-render-c:
      shard-kbl:          DMESG-WARN (fdo#107956) -> PASS

    igt@kms_chv_cursor_fail@pipe-b-256x256-top-edge:
      shard-glk:          DMESG-WARN (fdo#105763, fdo#106538) -> PASS +1

    igt@kms_cursor_crc@cursor-128x128-suspend:
      shard-apl:          FAIL (fdo#103191, fdo#103232) -> PASS

    igt@kms_cursor_crc@cursor-256x256-sliding:
      shard-apl:          FAIL (fdo#103232) -> PASS

    igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-ytiled:
      shard-glk:          FAIL (fdo#107791) -> PASS

    igt@kms_flip@absolute-wf_vblank-interruptible:
      shard-apl:          INCOMPLETE (fdo#103927) -> PASS

    igt@kms_flip@flip-vs-expired-vblank:
      shard-skl:          FAIL (fdo#105363) -> PASS

    igt@kms_flip@modeset-vs-vblank-race:
      shard-kbl:          FAIL (fdo#103060) -> PASS

    igt@kms_setmode@basic:
      shard-apl:          FAIL (fdo#99912) -> PASS

    
  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#103060 https://bugs.freedesktop.org/show_bug.cgi?id=103060
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108
  fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105682 https://bugs.freedesktop.org/show_bug.cgi?id=105682
  fdo#105683 https://bugs.freedesktop.org/show_bug.cgi?id=105683
  fdo#105748 https://bugs.freedesktop.org/show_bug.cgi?id=105748
  fdo#105763 https://bugs.freedesktop.org/show_bug.cgi?id=105763
  fdo#106538 https://bugs.freedesktop.org/show_bug.cgi?id=106538
  fdo#106885 https://bugs.freedesktop.org/show_bug.cgi?id=106885
  fdo#107773 https://bugs.freedesktop.org/show_bug.cgi?id=107773
  fdo#107791 https://bugs.freedesktop.org/show_bug.cgi?id=107791
  fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807
  fdo#107815 https://bugs.freedesktop.org/show_bug.cgi?id=107815
  fdo#107956 https://bugs.freedesktop.org/show_bug.cgi?id=107956
  fdo#108073 https://bugs.freedesktop.org/show_bug.cgi?id=108073
  fdo#108145 https://bugs.freedesktop.org/show_bug.cgi?id=108145
  fdo#108146 https://bugs.freedesktop.org/show_bug.cgi?id=108146
  fdo#108490 https://bugs.freedesktop.org/show_bug.cgi?id=108490
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (6 -> 6) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_5020 -> Patchwork_10542

  CI_DRM_5020: 95151c25e0433a2fe771b8bc272f3f8fb54a7e27 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4686: 741bf7064c467df725c14cc0b3b8b50436f9ee09 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10542: 9153e6ff86f14e84ef9b9e5aae8103c407e606f1 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

* Re: [PATCH v6] drm/i915: Move the DDC/AUX failure msgs to debug log
  2018-10-23 14:05     ` Daniel Vetter
@ 2018-10-24  7:34       ` Daniel Vetter
  0 siblings, 0 replies; 14+ messages in thread
From: Daniel Vetter @ 2018-10-24  7:34 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx

On Tue, Oct 23, 2018 at 04:05:29PM +0200, Daniel Vetter wrote:
> On Tue, Oct 23, 2018 at 04:11:28PM +0530, Ramalingam C wrote:
> > When a HDCP authentication is in progress, if the display sink is
> > hot unplugged, all DDC/AUX transaction related to the HDCP
> > authentication will fail.
> > 
> > This patch moves those kind of HDCP DDC/AUX failures into the debug
> > logs instead of errors.
> > 
> > v2:
> >   Bksv invalid state is provided as debug msg
> > 
> > Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> 
> For the record, summary of our irc discussion:
> 
> Anything the user (e.g. hotplug while hdcp code is running by yanking the
> cable) or userspace (e.g. through invalid ioctl parameters) can provoke to
> happen must use DRM_DEBUG_* instead of DRM_ERROR. DRM_ERROR is truly only
> for the impossible stuff (hw bugs, kernel driver bugs, that kind of
> stuff).
> 
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

CI approved, so applied&pushed, thanks for your patches.
> 
> > ---
> >  drivers/gpu/drm/i915/intel_dp.c   | 25 +++++++++++++------------
> >  drivers/gpu/drm/i915/intel_hdcp.c |  2 +-
> >  drivers/gpu/drm/i915/intel_hdmi.c | 18 +++++++++---------
> >  3 files changed, 23 insertions(+), 22 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> > index 27377bf8105c..ac13aa3cef91 100644
> > --- a/drivers/gpu/drm/i915/intel_dp.c
> > +++ b/drivers/gpu/drm/i915/intel_dp.c
> > @@ -5347,7 +5347,8 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
> >  	dpcd_ret = drm_dp_dpcd_write(&intel_dig_port->dp.aux, DP_AUX_HDCP_AN,
> >  				     an, DRM_HDCP_AN_LEN);
> >  	if (dpcd_ret != DRM_HDCP_AN_LEN) {
> > -		DRM_ERROR("Failed to write An over DP/AUX (%zd)\n", dpcd_ret);
> > +		DRM_DEBUG_KMS("Failed to write An over DP/AUX (%zd)\n",
> > +			      dpcd_ret);
> >  		return dpcd_ret >= 0 ? -EIO : dpcd_ret;
> >  	}
> >  
> > @@ -5363,10 +5364,10 @@ int intel_dp_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
> >  				rxbuf, sizeof(rxbuf),
> >  				DP_AUX_CH_CTL_AUX_AKSV_SELECT);
> >  	if (ret < 0) {
> > -		DRM_ERROR("Write Aksv over DP/AUX failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Write Aksv over DP/AUX failed (%d)\n", ret);
> >  		return ret;
> >  	} else if (ret == 0) {
> > -		DRM_ERROR("Aksv write over DP/AUX was empty\n");
> > +		DRM_DEBUG_KMS("Aksv write over DP/AUX was empty\n");
> >  		return -EIO;
> >  	}
> >  
> > @@ -5381,7 +5382,7 @@ static int intel_dp_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BKSV, bksv,
> >  			       DRM_HDCP_KSV_LEN);
> >  	if (ret != DRM_HDCP_KSV_LEN) {
> > -		DRM_ERROR("Read Bksv from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read Bksv from DP/AUX failed (%zd)\n", ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  	return 0;
> > @@ -5399,7 +5400,7 @@ static int intel_dp_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BINFO,
> >  			       bstatus, DRM_HDCP_BSTATUS_LEN);
> >  	if (ret != DRM_HDCP_BSTATUS_LEN) {
> > -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  	return 0;
> > @@ -5414,7 +5415,7 @@ int intel_dp_hdcp_read_bcaps(struct intel_digital_port *intel_dig_port,
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BCAPS,
> >  			       bcaps, 1);
> >  	if (ret != 1) {
> > -		DRM_ERROR("Read bcaps from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read bcaps from DP/AUX failed (%zd)\n", ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  
> > @@ -5444,7 +5445,7 @@ int intel_dp_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_RI_PRIME,
> >  			       ri_prime, DRM_HDCP_RI_LEN);
> >  	if (ret != DRM_HDCP_RI_LEN) {
> > -		DRM_ERROR("Read Ri' from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read Ri' from DP/AUX failed (%zd)\n", ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  	return 0;
> > @@ -5459,7 +5460,7 @@ int intel_dp_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
> >  			       &bstatus, 1);
> >  	if (ret != 1) {
> > -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  	*ksv_ready = bstatus & DP_BSTATUS_READY;
> > @@ -5481,8 +5482,8 @@ int intel_dp_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
> >  				       ksv_fifo + i * DRM_HDCP_KSV_LEN,
> >  				       len);
> >  		if (ret != len) {
> > -			DRM_ERROR("Read ksv[%d] from DP/AUX failed (%zd)\n", i,
> > -				  ret);
> > +			DRM_DEBUG_KMS("Read ksv[%d] from DP/AUX failed (%zd)\n",
> > +				      i, ret);
> >  			return ret >= 0 ? -EIO : ret;
> >  		}
> >  	}
> > @@ -5502,7 +5503,7 @@ int intel_dp_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
> >  			       DP_AUX_HDCP_V_PRIME(i), part,
> >  			       DRM_HDCP_V_PRIME_PART_LEN);
> >  	if (ret != DRM_HDCP_V_PRIME_PART_LEN) {
> > -		DRM_ERROR("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
> > +		DRM_DEBUG_KMS("Read v'[%d] from DP/AUX failed (%zd)\n", i, ret);
> >  		return ret >= 0 ? -EIO : ret;
> >  	}
> >  	return 0;
> > @@ -5525,7 +5526,7 @@ bool intel_dp_hdcp_check_link(struct intel_digital_port *intel_dig_port)
> >  	ret = drm_dp_dpcd_read(&intel_dig_port->dp.aux, DP_AUX_HDCP_BSTATUS,
> >  			       &bstatus, 1);
> >  	if (ret != 1) {
> > -		DRM_ERROR("Read bstatus from DP/AUX failed (%zd)\n", ret);
> > +		DRM_DEBUG_KMS("Read bstatus from DP/AUX failed (%zd)\n", ret);
> >  		return false;
> >  	}
> >  
> > diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> > index 283b45636668..5b423a78518d 100644
> > --- a/drivers/gpu/drm/i915/intel_hdcp.c
> > +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> > @@ -44,7 +44,7 @@ int intel_hdcp_read_valid_bksv(struct intel_digital_port *intel_dig_port,
> >  			break;
> >  	}
> >  	if (i == tries) {
> > -		DRM_ERROR("Bksv is invalid\n");
> > +		DRM_DEBUG_KMS("Bksv is invalid\n");
> >  		return -ENODEV;
> >  	}
> >  
> > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> > index 72e8a73dfa1c..d3e653640ce7 100644
> > --- a/drivers/gpu/drm/i915/intel_hdmi.c
> > +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> > @@ -961,13 +961,13 @@ int intel_hdmi_hdcp_write_an_aksv(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_write(intel_dig_port, DRM_HDCP_DDC_AN, an,
> >  				    DRM_HDCP_AN_LEN);
> >  	if (ret) {
> > -		DRM_ERROR("Write An over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Write An over DDC failed (%d)\n", ret);
> >  		return ret;
> >  	}
> >  
> >  	ret = intel_gmbus_output_aksv(adapter);
> >  	if (ret < 0) {
> > -		DRM_ERROR("Failed to output aksv (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Failed to output aksv (%d)\n", ret);
> >  		return ret;
> >  	}
> >  	return 0;
> > @@ -980,7 +980,7 @@ static int intel_hdmi_hdcp_read_bksv(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BKSV, bksv,
> >  				   DRM_HDCP_KSV_LEN);
> >  	if (ret)
> > -		DRM_ERROR("Read Bksv over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read Bksv over DDC failed (%d)\n", ret);
> >  	return ret;
> >  }
> >  
> > @@ -992,7 +992,7 @@ int intel_hdmi_hdcp_read_bstatus(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BSTATUS,
> >  				   bstatus, DRM_HDCP_BSTATUS_LEN);
> >  	if (ret)
> > -		DRM_ERROR("Read bstatus over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read bstatus over DDC failed (%d)\n", ret);
> >  	return ret;
> >  }
> >  
> > @@ -1005,7 +1005,7 @@ int intel_hdmi_hdcp_repeater_present(struct intel_digital_port *intel_dig_port,
> >  
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
> >  	if (ret) {
> > -		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
> >  		return ret;
> >  	}
> >  	*repeater_present = val & DRM_HDCP_DDC_BCAPS_REPEATER_PRESENT;
> > @@ -1020,7 +1020,7 @@ int intel_hdmi_hdcp_read_ri_prime(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_RI_PRIME,
> >  				   ri_prime, DRM_HDCP_RI_LEN);
> >  	if (ret)
> > -		DRM_ERROR("Read Ri' over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read Ri' over DDC failed (%d)\n", ret);
> >  	return ret;
> >  }
> >  
> > @@ -1033,7 +1033,7 @@ int intel_hdmi_hdcp_read_ksv_ready(struct intel_digital_port *intel_dig_port,
> >  
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_BCAPS, &val, 1);
> >  	if (ret) {
> > -		DRM_ERROR("Read bcaps over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read bcaps over DDC failed (%d)\n", ret);
> >  		return ret;
> >  	}
> >  	*ksv_ready = val & DRM_HDCP_DDC_BCAPS_KSV_FIFO_READY;
> > @@ -1048,7 +1048,7 @@ int intel_hdmi_hdcp_read_ksv_fifo(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_KSV_FIFO,
> >  				   ksv_fifo, num_downstream * DRM_HDCP_KSV_LEN);
> >  	if (ret) {
> > -		DRM_ERROR("Read ksv fifo over DDC failed (%d)\n", ret);
> > +		DRM_DEBUG_KMS("Read ksv fifo over DDC failed (%d)\n", ret);
> >  		return ret;
> >  	}
> >  	return 0;
> > @@ -1066,7 +1066,7 @@ int intel_hdmi_hdcp_read_v_prime_part(struct intel_digital_port *intel_dig_port,
> >  	ret = intel_hdmi_hdcp_read(intel_dig_port, DRM_HDCP_DDC_V_PRIME(i),
> >  				   part, DRM_HDCP_V_PRIME_PART_LEN);
> >  	if (ret)
> > -		DRM_ERROR("Read V'[%d] over DDC failed (%d)\n", i, ret);
> > +		DRM_DEBUG_KMS("Read V'[%d] over DDC failed (%d)\n", i, ret);
> >  	return ret;
> >  }
> >  
> > -- 
> > 2.7.4
> > 
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

end of thread, other threads:[~2018-10-24  7:34 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-23  9:22 [PATCH v5 0/4] Enabling the IGT for HDCP1.4 Ramalingam C
2018-10-23  9:22 ` [PATCH v5 1/4] drm/i915: Pullout the bksv read and validation Ramalingam C
2018-10-23  9:22 ` [PATCH v5 2/4] drm/i915: hdcp_check_link only on CP_IRQ Ramalingam C
2018-10-23  9:22 ` [PATCH v5 3/4] drm/i915/debugfs: hdcp capability of a sink Ramalingam C
2018-10-23 14:04   ` Daniel Vetter
2018-10-23  9:22 ` [PATCH v5 4/4] drm/i915: Move the DDC/AUX failure msgs to debug log Ramalingam C
2018-10-23 10:41   ` [PATCH v6] " Ramalingam C
2018-10-23 14:05     ` Daniel Vetter
2018-10-24  7:34       ` Daniel Vetter
2018-10-23  9:37 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev5) Patchwork
2018-10-23 10:02 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-10-23 11:17 ` ✗ Fi.CI.CHECKPATCH: warning for Enabling the IGT for HDCP1.4 (rev6) Patchwork
2018-10-23 11:39 ` ✓ Fi.CI.BAT: success " Patchwork
2018-10-23 14:07 ` ✗ Fi.CI.IGT: failure " Patchwork

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.