All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
@ 2018-10-25 18:17 Ramalingam C
  2018-10-25 19:07 ` ✗ Fi.CI.BAT: failure for " Patchwork
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Ramalingam C @ 2018-10-25 18:17 UTC (permalink / raw)
  To: daniel.vetter, intel-gfx, seanpaul

Conceptually user should be knowing the feature status through uAPI.
So HDCP authentication failure information need not DRM_ERRORS.
They are needed only for ENG debugging.

And also in HDCP we tolerate the retries for HDCP authentication.
Hence if we print the failure info initial attempts as ERRORs CI will
fail the IGT.

So we present the information of the failures in form of DRM_DEBUG
msgs for debugging purpose.

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

diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
index 5b423a78518d..d92b04c3ed4e 100644
--- a/drivers/gpu/drm/i915/intel_hdcp.c
+++ b/drivers/gpu/drm/i915/intel_hdcp.c
@@ -166,8 +166,8 @@ static int intel_hdcp_load_keys(struct drm_i915_private *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);
+			DRM_DEBUG_KMS("Failed to initiate HDCP key load (%d)\n",
+				      ret);
 			return ret;
 		}
 	} else {
@@ -195,7 +195,7 @@ static int intel_write_sha_text(struct drm_i915_private *dev_priv, u32 sha_text)
 	I915_WRITE(HDCP_SHA_TEXT, sha_text);
 	if (intel_wait_for_register(dev_priv, HDCP_REP_CTL,
 				    HDCP_SHA1_READY, HDCP_SHA1_READY, 1)) {
-		DRM_ERROR("Timed out waiting for SHA1 ready\n");
+		DRM_DEBUG_KMS("Timed out waiting for SHA1 ready\n");
 		return -ETIMEDOUT;
 	}
 	return 0;
@@ -219,7 +219,7 @@ u32 intel_hdcp_get_repeater_ctl(struct intel_digital_port *intel_dig_port)
 	default:
 		break;
 	}
-	DRM_ERROR("Unknown port %d\n", port);
+	DRM_DEBUG_KMS("Unknown port %d\n", port);
 	return -EINVAL;
 }
 
@@ -448,7 +448,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 
 	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
 	if (ret) {
-		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
+		DRM_DEBUG_KMS("KSV list failed to become ready (%d)\n", ret);
 		return ret;
 	}
 
@@ -458,7 +458,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 
 	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
 	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
-		DRM_ERROR("Max Topology Limit Exceeded\n");
+		DRM_DEBUG_KMS("Max Topology Limit Exceeded\n");
 		return -EPERM;
 	}
 
@@ -494,7 +494,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
 	}
 
 	if (i == tries) {
-		DRM_ERROR("V Prime validation failed.(%d)\n", ret);
+		DRM_DEBUG_KMS("V Prime validation failed.(%d)\n", ret);
 		goto err;
 	}
 
@@ -543,7 +543,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 		if (ret)
 			return ret;
 		if (!hdcp_capable) {
-			DRM_ERROR("Panel is not HDCP capable\n");
+			DRM_DEBUG_KMS("Panel is not HDCP capable\n");
 			return -EINVAL;
 		}
 	}
@@ -557,7 +557,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
 				    HDCP_STATUS_AN_READY,
 				    HDCP_STATUS_AN_READY, 1)) {
-		DRM_ERROR("Timed out waiting for An\n");
+		DRM_DEBUG_KMS("Timed out waiting for An\n");
 		return -ETIMEDOUT;
 	}
 
@@ -594,7 +594,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 	/* Wait for R0 ready */
 	if (wait_for(I915_READ(PORT_HDCP_STATUS(port)) &
 		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
-		DRM_ERROR("Timed out waiting for R0 ready\n");
+		DRM_DEBUG_KMS("Timed out waiting for R0 ready\n");
 		return -ETIMEDOUT;
 	}
 
@@ -629,15 +629,15 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
 	}
 
 	if (i == tries) {
-		DRM_ERROR("Timed out waiting for Ri prime match (%x)\n",
-			  I915_READ(PORT_HDCP_STATUS(port)));
+		DRM_DEBUG_KMS("Timed out waiting for Ri prime match (%x)\n",
+			      I915_READ(PORT_HDCP_STATUS(port)));
 		return -ETIMEDOUT;
 	}
 
 	/* Wait for encryption confirmation */
 	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
 				    HDCP_STATUS_ENC, HDCP_STATUS_ENC, 20)) {
-		DRM_ERROR("Timed out waiting for encryption\n");
+		DRM_DEBUG_KMS("Timed out waiting for encryption\n");
 		return -ETIMEDOUT;
 	}
 
@@ -666,13 +666,13 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
 	I915_WRITE(PORT_HDCP_CONF(port), 0);
 	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port), ~0, 0,
 				    20)) {
-		DRM_ERROR("Failed to disable HDCP, timeout clearing status\n");
+		DRM_DEBUG_KMS("Failed to disable HDCP, timeout.\n");
 		return -ETIMEDOUT;
 	}
 
 	ret = connector->hdcp_shim->toggle_signalling(intel_dig_port, false);
 	if (ret) {
-		DRM_ERROR("Failed to disable HDCP signalling\n");
+		DRM_DEBUG_KMS("Failed to disable HDCP signalling\n");
 		return ret;
 	}
 
@@ -689,7 +689,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
 		      connector->base.name, connector->base.base.id);
 
 	if (!hdcp_key_loadable(dev_priv)) {
-		DRM_ERROR("HDCP key Load is not possible\n");
+		DRM_DEBUG_KMS("HDCP key Load is not possible\n");
 		return -ENXIO;
 	}
 
@@ -700,7 +700,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
 		intel_hdcp_clear_keys(dev_priv);
 	}
 	if (ret) {
-		DRM_ERROR("Could not load HDCP keys, (%d)\n", ret);
+		DRM_DEBUG_KMS("Could not load HDCP keys, (%d)\n", ret);
 		return ret;
 	}
 
@@ -717,7 +717,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
 		_intel_hdcp_disable(connector);
 	}
 
-	DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
+	DRM_DEBUG_KMS("HDCP authentication failed (%d tries/%d)\n", tries, ret);
 	return ret;
 }
 
@@ -871,9 +871,9 @@ int intel_hdcp_check_link(struct intel_connector *connector)
 		goto out;
 
 	if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
-		DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
-			  connector->base.name, connector->base.base.id,
-			  I915_READ(PORT_HDCP_STATUS(port)));
+		DRM_DEBUG_KMS("%s:%d HDCP Link is not encrypted,%x\n",
+			      connector->base.name, connector->base.base.id,
+			      I915_READ(PORT_HDCP_STATUS(port)));
 		ret = -ENXIO;
 		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
 		schedule_work(&connector->hdcp_prop_work);
@@ -895,7 +895,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
 
 	ret = _intel_hdcp_disable(connector);
 	if (ret) {
-		DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
+		DRM_DEBUG_KMS("Failed to disable hdcp (%d)\n", ret);
 		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
 		schedule_work(&connector->hdcp_prop_work);
 		goto out;
@@ -903,7 +903,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
 
 	ret = _intel_hdcp_enable(connector);
 	if (ret) {
-		DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
+		DRM_DEBUG_KMS("Failed to enable hdcp (%d)\n", ret);
 		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
 		schedule_work(&connector->hdcp_prop_work);
 		goto out;
-- 
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] 7+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
@ 2018-10-25 19:07 ` Patchwork
  2018-10-26  4:32 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-10-25 19:07 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
URL   : https://patchwork.freedesktop.org/series/51538/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_5037 -> Patchwork_10583 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10583 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10583, 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/51538/revisions/1/mbox/

== Possible new issues ==

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

  === IGT changes ===

    ==== Possible regressions ====

    igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
      fi-icl-u2:          PASS -> DMESG-WARN

    
== Known issues ==

  Here are the changes found in Patchwork_10583 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_flip@basic-flip-vs-dpms:
      fi-glk-j4005:       DMESG-WARN (fdo#106000) -> PASS +1

    igt@kms_flip@basic-flip-vs-wf_vblank:
      fi-glk-j4005:       FAIL (fdo#100368) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      fi-glk-j4005:       FAIL (fdo#103167) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-byt-clapper:     FAIL (fdo#107362, fdo#103191) -> PASS

    igt@pm_rpm@module-reload:
      fi-glk-j4005:       DMESG-WARN (fdo#107726) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107726 https://bugs.freedesktop.org/show_bug.cgi?id=107726


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

  Additional (1): fi-icl-u 
  Missing    (4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


== Build changes ==

    * Linux: CI_DRM_5037 -> Patchwork_10583

  CI_DRM_5037: e11750586cb6054bd319ad217cecd045febaacc5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4694: ff8d1156723f235e82cb4fcfd2cd6e5a5bb211fa @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10583: a762edd5c7c822847f5487ad2c2b935b627f90bf @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

a762edd5c7c8 drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG

== Logs ==

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

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

* ✓ Fi.CI.BAT: success for drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
  2018-10-25 19:07 ` ✗ Fi.CI.BAT: failure for " Patchwork
@ 2018-10-26  4:32 ` Patchwork
  2018-10-26 11:33 ` ✓ Fi.CI.IGT: " Patchwork
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-10-26  4:32 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
URL   : https://patchwork.freedesktop.org/series/51538/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5038 -> Patchwork_10594 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/51538/revisions/1/mbox/

== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_module_reload@basic-reload-inject:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106725, fdo#106248, fdo#106000)

    igt@kms_flip@basic-plain-flip:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106097)

    igt@kms_frontbuffer_tracking@basic:
      fi-glk-j4005:       PASS -> FAIL (fdo#103167)

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-blb-e6850:       PASS -> INCOMPLETE (fdo#107718)

    igt@pm_rpm@module-reload:
      fi-skl-6600u:       PASS -> INCOMPLETE (fdo#107807)

    
    ==== Possible fixes ====

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

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

    igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence:
      fi-glk-j4005:       DMESG-WARN (fdo#106000) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
      fi-byt-clapper:     FAIL (fdo#103191, fdo#107362) -> PASS

    
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
  fdo#106248 https://bugs.freedesktop.org/show_bug.cgi?id=106248
  fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
  fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807


== Participating hosts (46 -> 42) ==

  Additional (1): fi-icl-u 
  Missing    (5): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-icl-u2 fi-skl-6700hq 


== Build changes ==

    * Linux: CI_DRM_5038 -> Patchwork_10594

  CI_DRM_5038: 96ecfb04d5acfcc565068c09afd6d0d713b2ddef @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4695: 81b66cf2806d6a8e9516580fb31879677487d32b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10594: 12c12dd87b67ab5dd9e2d651372fc7a404c64bc9 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

12c12dd87b67 drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG

== Logs ==

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

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

* ✓ Fi.CI.IGT: success for drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
  2018-10-25 19:07 ` ✗ Fi.CI.BAT: failure for " Patchwork
  2018-10-26  4:32 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-10-26 11:33 ` Patchwork
  2018-10-26 11:39 ` [PATCH] " Daniel Vetter
  2018-10-26 15:50 ` Sean Paul
  4 siblings, 0 replies; 7+ messages in thread
From: Patchwork @ 2018-10-26 11:33 UTC (permalink / raw)
  To: Ramalingam C; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
URL   : https://patchwork.freedesktop.org/series/51538/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_5038_full -> Patchwork_10594_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10594_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10594_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_10594_full:

  === IGT changes ===

    ==== Warnings ====

    {igt@kms_content_protection@atomic}:
      shard-kbl:          DMESG-FAIL (fdo#108550) -> FAIL +1

    igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
      shard-snb:          PASS -> SKIP +2

    igt@kms_vblank@pipe-b-ts-continuation-modeset-rpm:
      shard-apl:          DMESG-FAIL (fdo#108549) -> FAIL +2

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_suspend@shrink:
      shard-snb:          PASS -> INCOMPLETE (fdo#106886, fdo#105411)

    igt@gem_busy@close-race:
      shard-apl:          PASS -> DMESG-FAIL (fdo#108561)

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

    igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-b:
      shard-skl:          NOTRUN -> DMESG-WARN (fdo#107956) +3

    igt@kms_color@pipe-a-ctm-max:
      shard-apl:          PASS -> FAIL (fdo#108147)

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

    igt@kms_cursor_crc@cursor-256x256-onscreen:
      shard-skl:          NOTRUN -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-64x64-random:
      shard-apl:          PASS -> FAIL (fdo#103232)

    igt@kms_cursor_crc@cursor-64x64-sliding:
      shard-glk:          PASS -> FAIL (fdo#103232) +2

    igt@kms_fbcon_fbt@psr-suspend:
      shard-skl:          NOTRUN -> FAIL (fdo#107882) +1

    igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-blt:
      shard-glk:          PASS -> FAIL (fdo#103167) +2

    igt@kms_frontbuffer_tracking@fbc-1p-rte:
      shard-glk:          PASS -> FAIL (fdo#105682, fdo#103167)

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

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

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

    igt@kms_plane_alpha_blend@pipe-c-alpha-transparant-fb:
      shard-skl:          NOTRUN -> FAIL (fdo#108145) +3

    igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
      shard-glk:          PASS -> FAIL (fdo#108145) +1

    igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
      shard-skl:          NOTRUN -> FAIL (fdo#108146) +2

    igt@pm_backlight@fade_with_suspend:
      shard-skl:          NOTRUN -> FAIL (fdo#107847)

    igt@pm_rpm@reg-read-ioctl:
      shard-skl:          PASS -> INCOMPLETE (fdo#107807)

    
    ==== Possible fixes ====

    igt@gem_busy@close-race:
      shard-glk:          DMESG-FAIL (fdo#108561) -> PASS

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

    igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a:
      shard-hsw:          DMESG-WARN (fdo#107956) -> PASS

    igt@kms_ccs@pipe-a-crc-primary-basic:
      shard-skl:          FAIL (fdo#107725) -> PASS

    igt@kms_chv_cursor_fail@pipe-a-64x64-left-edge:
      shard-skl:          FAIL (fdo#104671) -> PASS

    igt@kms_cursor_crc@cursor-64x21-onscreen:
      shard-glk:          FAIL (fdo#103232) -> PASS +2

    igt@kms_cursor_crc@cursor-64x64-rapid-movement:
      shard-kbl:          DMESG-WARN (fdo#108550) -> PASS +10

    igt@kms_cursor_crc@cursor-64x64-sliding:
      shard-apl:          FAIL (fdo#103232) -> PASS +1

    igt@kms_cursor_crc@cursor-64x64-suspend:
      shard-skl:          INCOMPLETE (fdo#104108) -> PASS

    igt@kms_flip@flip-vs-dpms-off-vs-modeset:
      shard-apl:          DMESG-WARN (fdo#108549) -> PASS +19

    igt@kms_frontbuffer_tracking@fbc-1p-rte:
      shard-apl:          DMESG-FAIL (fdo#108549, fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-2p-rte:
      shard-glk:          FAIL (fdo#105682, fdo#103167) -> PASS

    igt@kms_frontbuffer_tracking@fbc-farfromfence:
      shard-skl:          FAIL (fdo#103167) -> PASS +2

    igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render:
      shard-skl:          FAIL (fdo#103167) -> SKIP

    igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
      shard-glk:          FAIL (fdo#108145) -> PASS

    igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
      shard-apl:          FAIL (fdo#103166) -> PASS

    igt@perf@polling:
      shard-hsw:          FAIL (fdo#102252) -> PASS

    
    ==== Warnings ====

    igt@kms_plane_alpha_blend@pipe-c-alpha-opaque-fb:
      shard-apl:          DMESG-FAIL (fdo#108145, fdo#108549) -> FAIL (fdo#108145)

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  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#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103232 https://bugs.freedesktop.org/show_bug.cgi?id=103232
  fdo#104108 https://bugs.freedesktop.org/show_bug.cgi?id=104108
  fdo#104671 https://bugs.freedesktop.org/show_bug.cgi?id=104671
  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#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#107725 https://bugs.freedesktop.org/show_bug.cgi?id=107725
  fdo#107807 https://bugs.freedesktop.org/show_bug.cgi?id=107807
  fdo#107815 https://bugs.freedesktop.org/show_bug.cgi?id=107815
  fdo#107847 https://bugs.freedesktop.org/show_bug.cgi?id=107847
  fdo#107882 https://bugs.freedesktop.org/show_bug.cgi?id=107882
  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#108147 https://bugs.freedesktop.org/show_bug.cgi?id=108147
  fdo#108549 https://bugs.freedesktop.org/show_bug.cgi?id=108549
  fdo#108550 https://bugs.freedesktop.org/show_bug.cgi?id=108550
  fdo#108561 https://bugs.freedesktop.org/show_bug.cgi?id=108561


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

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_5038 -> Patchwork_10594

  CI_DRM_5038: 96ecfb04d5acfcc565068c09afd6d0d713b2ddef @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4695: 81b66cf2806d6a8e9516580fb31879677487d32b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10594: 12c12dd87b67ab5dd9e2d651372fc7a404c64bc9 @ 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_10594/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
                   ` (2 preceding siblings ...)
  2018-10-26 11:33 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-10-26 11:39 ` Daniel Vetter
  2018-10-29  7:17   ` C, Ramalingam
  2018-10-26 15:50 ` Sean Paul
  4 siblings, 1 reply; 7+ messages in thread
From: Daniel Vetter @ 2018-10-26 11:39 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx, seanpaul

On Thu, Oct 25, 2018 at 11:47:52PM +0530, Ramalingam C wrote:
> Conceptually user should be knowing the feature status through uAPI.
> So HDCP authentication failure information need not DRM_ERRORS.
> They are needed only for ENG debugging.
> 
> And also in HDCP we tolerate the retries for HDCP authentication.
> Hence if we print the failure info initial attempts as ERRORs CI will
> fail the IGT.
> 
> So we present the information of the failures in form of DRM_DEBUG
> msgs for debugging purpose.
> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 46 +++++++++++++++++++--------------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> index 5b423a78518d..d92b04c3ed4e 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -166,8 +166,8 @@ static int intel_hdcp_load_keys(struct drm_i915_private *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);
> +			DRM_DEBUG_KMS("Failed to initiate HDCP key load (%d)\n",
> +				      ret);

This one indicates an i915 hw failure, not anything wrong with the sink.
So should stay at DRM_ERROR.

Btw I noticed that 2 DRM_DEBUG_KMS in intel_hdcp_validate_v_prime also
indicate programming/i915-side hw errors. So should be upgraded to
DRM_ERROR I think (but in a separate patch).

>  			return ret;
>  		}
>  	} else {
> @@ -195,7 +195,7 @@ static int intel_write_sha_text(struct drm_i915_private *dev_priv, u32 sha_text)
>  	I915_WRITE(HDCP_SHA_TEXT, sha_text);
>  	if (intel_wait_for_register(dev_priv, HDCP_REP_CTL,
>  				    HDCP_SHA1_READY, HDCP_SHA1_READY, 1)) {
> -		DRM_ERROR("Timed out waiting for SHA1 ready\n");
> +		DRM_DEBUG_KMS("Timed out waiting for SHA1 ready\n");

Same here.

>  		return -ETIMEDOUT;
>  	}
>  	return 0;
> @@ -219,7 +219,7 @@ u32 intel_hdcp_get_repeater_ctl(struct intel_digital_port *intel_dig_port)
>  	default:
>  		break;
>  	}
> -	DRM_ERROR("Unknown port %d\n", port);
> +	DRM_DEBUG_KMS("Unknown port %d\n", port);

Also a programming error.

>  	return -EINVAL;
>  }
>  
> @@ -448,7 +448,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  
>  	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
>  	if (ret) {
> -		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
> +		DRM_DEBUG_KMS("KSV list failed to become ready (%d)\n", ret);

This one is a sink issue, so correct to change to DRM_DEBUG_KMS. If I
don't comment, assume that I agree with your change.

>  		return ret;
>  	}
>  
> @@ -458,7 +458,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  
>  	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
>  	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
> -		DRM_ERROR("Max Topology Limit Exceeded\n");
> +		DRM_DEBUG_KMS("Max Topology Limit Exceeded\n");
>  		return -EPERM;
>  	}
>  
> @@ -494,7 +494,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  	}
>  
>  	if (i == tries) {
> -		DRM_ERROR("V Prime validation failed.(%d)\n", ret);
> +		DRM_DEBUG_KMS("V Prime validation failed.(%d)\n", ret);
>  		goto err;
>  	}
>  
> @@ -543,7 +543,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  		if (ret)
>  			return ret;
>  		if (!hdcp_capable) {
> -			DRM_ERROR("Panel is not HDCP capable\n");
> +			DRM_DEBUG_KMS("Panel is not HDCP capable\n");
>  			return -EINVAL;
>  		}
>  	}
> @@ -557,7 +557,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>  				    HDCP_STATUS_AN_READY,
>  				    HDCP_STATUS_AN_READY, 1)) {
> -		DRM_ERROR("Timed out waiting for An\n");
> +		DRM_DEBUG_KMS("Timed out waiting for An\n");

Again this would indicate an i915 hw issue, so better to keep it at
DRM_ERROR.

>  		return -ETIMEDOUT;
>  	}
>  
> @@ -594,7 +594,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	/* Wait for R0 ready */
>  	if (wait_for(I915_READ(PORT_HDCP_STATUS(port)) &
>  		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
> -		DRM_ERROR("Timed out waiting for R0 ready\n");
> +		DRM_DEBUG_KMS("Timed out waiting for R0 ready\n");

Same, all the wait_for and wait_for_register indicate i915-side hw issues,
and should stay at DRM_ERROR. Otherwise we just reduce test coverage.
Please leave all of them as DRM_ERROR.

>  		return -ETIMEDOUT;
>  	}
>  
> @@ -629,15 +629,15 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	}
>  
>  	if (i == tries) {
> -		DRM_ERROR("Timed out waiting for Ri prime match (%x)\n",
> -			  I915_READ(PORT_HDCP_STATUS(port)));
> +		DRM_DEBUG_KMS("Timed out waiting for Ri prime match (%x)\n",
> +			      I915_READ(PORT_HDCP_STATUS(port)));
>  		return -ETIMEDOUT;
>  	}
>  
>  	/* Wait for encryption confirmation */
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>  				    HDCP_STATUS_ENC, HDCP_STATUS_ENC, 20)) {
> -		DRM_ERROR("Timed out waiting for encryption\n");
> +		DRM_DEBUG_KMS("Timed out waiting for encryption\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -666,13 +666,13 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>  	I915_WRITE(PORT_HDCP_CONF(port), 0);
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port), ~0, 0,
>  				    20)) {
> -		DRM_ERROR("Failed to disable HDCP, timeout clearing status\n");
> +		DRM_DEBUG_KMS("Failed to disable HDCP, timeout.\n");
>  		return -ETIMEDOUT;
>  	}
>  
>  	ret = connector->hdcp_shim->toggle_signalling(intel_dig_port, false);
>  	if (ret) {
> -		DRM_ERROR("Failed to disable HDCP signalling\n");
> +		DRM_DEBUG_KMS("Failed to disable HDCP signalling\n");
>  		return ret;
>  	}
>  
> @@ -689,7 +689,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		      connector->base.name, connector->base.base.id);
>  
>  	if (!hdcp_key_loadable(dev_priv)) {
> -		DRM_ERROR("HDCP key Load is not possible\n");
> +		DRM_DEBUG_KMS("HDCP key Load is not possible\n");
>  		return -ENXIO;
>  	}
>  
> @@ -700,7 +700,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		intel_hdcp_clear_keys(dev_priv);
>  	}
>  	if (ret) {
> -		DRM_ERROR("Could not load HDCP keys, (%d)\n", ret);
> +		DRM_DEBUG_KMS("Could not load HDCP keys, (%d)\n", ret);
>  		return ret;
>  	}
>  
> @@ -717,7 +717,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		_intel_hdcp_disable(connector);
>  	}
>  
> -	DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
> +	DRM_DEBUG_KMS("HDCP authentication failed (%d tries/%d)\n", tries, ret);
>  	return ret;
>  }
>  
> @@ -871,9 +871,9 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  		goto out;
>  
>  	if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> -		DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
> -			  connector->base.name, connector->base.base.id,
> -			  I915_READ(PORT_HDCP_STATUS(port)));
> +		DRM_DEBUG_KMS("%s:%d HDCP Link is not encrypted,%x\n",
> +			      connector->base.name, connector->base.base.id,
> +			      I915_READ(PORT_HDCP_STATUS(port)));

Again I think this would indicate an i915 hw issue, let's leave at
DRM_ERROR.

>  		ret = -ENXIO;
>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
> @@ -895,7 +895,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  
>  	ret = _intel_hdcp_disable(connector);
>  	if (ret) {
> -		DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
> +		DRM_DEBUG_KMS("Failed to disable hdcp (%d)\n", ret);

Disabling hdcp should always succeeds, again let's leave at DRM_ERROR.

>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
>  		goto out;
> @@ -903,7 +903,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  
>  	ret = _intel_hdcp_enable(connector);
>  	if (ret) {
> -		DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
> +		DRM_DEBUG_KMS("Failed to enable hdcp (%d)\n", ret);

Yeah, this can fail when the sink is gone.

When you respin this, can you pls include the added patch to make the 2
debug outputs into DRM_ERROR, and the 4 patches you've identified we can
merge already? I want to make sure CI is still approving of all of them,
now that the kms_content_protection testcase has landed.

Thanks, Daniel

>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
>  		goto out;
> -- 
> 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] 7+ messages in thread

* Re: [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
                   ` (3 preceding siblings ...)
  2018-10-26 11:39 ` [PATCH] " Daniel Vetter
@ 2018-10-26 15:50 ` Sean Paul
  4 siblings, 0 replies; 7+ messages in thread
From: Sean Paul @ 2018-10-26 15:50 UTC (permalink / raw)
  To: Ramalingam C; +Cc: daniel.vetter, intel-gfx, seanpaul

On Thu, Oct 25, 2018 at 11:47:52PM +0530, Ramalingam C wrote:
> Conceptually user should be knowing the feature status through uAPI.
> So HDCP authentication failure information need not DRM_ERRORS.
> They are needed only for ENG debugging.
> 
> And also in HDCP we tolerate the retries for HDCP authentication.
> Hence if we print the failure info initial attempts as ERRORs CI will
> fail the IGT.
> 
> So we present the information of the failures in form of DRM_DEBUG
> msgs for debugging purpose.

I really don't like this type of change, tbh. When I get field logs from a
customer, I don't have the option to ask them to turn drm.debug on, so I will
never see DRM_DEBUG level messages, breadcrumbs like these are critical.

IMO (and I know I'm fighting a losing battle here), we should replace the flakey
sinks in the CI lab, not run HDCP tests on flakey sinks, or fix the driver to
better accommodate flakey sinks. Please?

One other option is to add a new DEBUG category which is like DEBUG_ERR that we
can enable on our commandline from drm.debug. This option, while nice, would
probably be pretty hard to rollout and police.

Sean

> 
> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
> ---
>  drivers/gpu/drm/i915/intel_hdcp.c | 46 +++++++++++++++++++--------------------
>  1 file changed, 23 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
> index 5b423a78518d..d92b04c3ed4e 100644
> --- a/drivers/gpu/drm/i915/intel_hdcp.c
> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
> @@ -166,8 +166,8 @@ static int intel_hdcp_load_keys(struct drm_i915_private *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);
> +			DRM_DEBUG_KMS("Failed to initiate HDCP key load (%d)\n",
> +				      ret);
>  			return ret;
>  		}
>  	} else {
> @@ -195,7 +195,7 @@ static int intel_write_sha_text(struct drm_i915_private *dev_priv, u32 sha_text)
>  	I915_WRITE(HDCP_SHA_TEXT, sha_text);
>  	if (intel_wait_for_register(dev_priv, HDCP_REP_CTL,
>  				    HDCP_SHA1_READY, HDCP_SHA1_READY, 1)) {
> -		DRM_ERROR("Timed out waiting for SHA1 ready\n");
> +		DRM_DEBUG_KMS("Timed out waiting for SHA1 ready\n");
>  		return -ETIMEDOUT;
>  	}
>  	return 0;
> @@ -219,7 +219,7 @@ u32 intel_hdcp_get_repeater_ctl(struct intel_digital_port *intel_dig_port)
>  	default:
>  		break;
>  	}
> -	DRM_ERROR("Unknown port %d\n", port);
> +	DRM_DEBUG_KMS("Unknown port %d\n", port);
>  	return -EINVAL;
>  }
>  
> @@ -448,7 +448,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  
>  	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
>  	if (ret) {
> -		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
> +		DRM_DEBUG_KMS("KSV list failed to become ready (%d)\n", ret);
>  		return ret;
>  	}
>  
> @@ -458,7 +458,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  
>  	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
>  	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
> -		DRM_ERROR("Max Topology Limit Exceeded\n");
> +		DRM_DEBUG_KMS("Max Topology Limit Exceeded\n");
>  		return -EPERM;
>  	}
>  
> @@ -494,7 +494,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>  	}
>  
>  	if (i == tries) {
> -		DRM_ERROR("V Prime validation failed.(%d)\n", ret);
> +		DRM_DEBUG_KMS("V Prime validation failed.(%d)\n", ret);
>  		goto err;
>  	}
>  
> @@ -543,7 +543,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  		if (ret)
>  			return ret;
>  		if (!hdcp_capable) {
> -			DRM_ERROR("Panel is not HDCP capable\n");
> +			DRM_DEBUG_KMS("Panel is not HDCP capable\n");
>  			return -EINVAL;
>  		}
>  	}
> @@ -557,7 +557,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>  				    HDCP_STATUS_AN_READY,
>  				    HDCP_STATUS_AN_READY, 1)) {
> -		DRM_ERROR("Timed out waiting for An\n");
> +		DRM_DEBUG_KMS("Timed out waiting for An\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -594,7 +594,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	/* Wait for R0 ready */
>  	if (wait_for(I915_READ(PORT_HDCP_STATUS(port)) &
>  		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
> -		DRM_ERROR("Timed out waiting for R0 ready\n");
> +		DRM_DEBUG_KMS("Timed out waiting for R0 ready\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -629,15 +629,15 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>  	}
>  
>  	if (i == tries) {
> -		DRM_ERROR("Timed out waiting for Ri prime match (%x)\n",
> -			  I915_READ(PORT_HDCP_STATUS(port)));
> +		DRM_DEBUG_KMS("Timed out waiting for Ri prime match (%x)\n",
> +			      I915_READ(PORT_HDCP_STATUS(port)));
>  		return -ETIMEDOUT;
>  	}
>  
>  	/* Wait for encryption confirmation */
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>  				    HDCP_STATUS_ENC, HDCP_STATUS_ENC, 20)) {
> -		DRM_ERROR("Timed out waiting for encryption\n");
> +		DRM_DEBUG_KMS("Timed out waiting for encryption\n");
>  		return -ETIMEDOUT;
>  	}
>  
> @@ -666,13 +666,13 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>  	I915_WRITE(PORT_HDCP_CONF(port), 0);
>  	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port), ~0, 0,
>  				    20)) {
> -		DRM_ERROR("Failed to disable HDCP, timeout clearing status\n");
> +		DRM_DEBUG_KMS("Failed to disable HDCP, timeout.\n");
>  		return -ETIMEDOUT;
>  	}
>  
>  	ret = connector->hdcp_shim->toggle_signalling(intel_dig_port, false);
>  	if (ret) {
> -		DRM_ERROR("Failed to disable HDCP signalling\n");
> +		DRM_DEBUG_KMS("Failed to disable HDCP signalling\n");
>  		return ret;
>  	}
>  
> @@ -689,7 +689,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		      connector->base.name, connector->base.base.id);
>  
>  	if (!hdcp_key_loadable(dev_priv)) {
> -		DRM_ERROR("HDCP key Load is not possible\n");
> +		DRM_DEBUG_KMS("HDCP key Load is not possible\n");
>  		return -ENXIO;
>  	}
>  
> @@ -700,7 +700,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		intel_hdcp_clear_keys(dev_priv);
>  	}
>  	if (ret) {
> -		DRM_ERROR("Could not load HDCP keys, (%d)\n", ret);
> +		DRM_DEBUG_KMS("Could not load HDCP keys, (%d)\n", ret);
>  		return ret;
>  	}
>  
> @@ -717,7 +717,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>  		_intel_hdcp_disable(connector);
>  	}
>  
> -	DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
> +	DRM_DEBUG_KMS("HDCP authentication failed (%d tries/%d)\n", tries, ret);
>  	return ret;
>  }
>  
> @@ -871,9 +871,9 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  		goto out;
>  
>  	if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
> -		DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
> -			  connector->base.name, connector->base.base.id,
> -			  I915_READ(PORT_HDCP_STATUS(port)));
> +		DRM_DEBUG_KMS("%s:%d HDCP Link is not encrypted,%x\n",
> +			      connector->base.name, connector->base.base.id,
> +			      I915_READ(PORT_HDCP_STATUS(port)));
>  		ret = -ENXIO;
>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
> @@ -895,7 +895,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  
>  	ret = _intel_hdcp_disable(connector);
>  	if (ret) {
> -		DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
> +		DRM_DEBUG_KMS("Failed to disable hdcp (%d)\n", ret);
>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
>  		goto out;
> @@ -903,7 +903,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>  
>  	ret = _intel_hdcp_enable(connector);
>  	if (ret) {
> -		DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
> +		DRM_DEBUG_KMS("Failed to enable hdcp (%d)\n", ret);
>  		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>  		schedule_work(&connector->hdcp_prop_work);
>  		goto out;
> -- 
> 2.7.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
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] 7+ messages in thread

* Re: [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG
  2018-10-26 11:39 ` [PATCH] " Daniel Vetter
@ 2018-10-29  7:17   ` C, Ramalingam
  0 siblings, 0 replies; 7+ messages in thread
From: C, Ramalingam @ 2018-10-29  7:17 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: daniel.vetter, intel-gfx, seanpaul


[-- Attachment #1.1: Type: text/plain, Size: 9469 bytes --]

So basically we want all logs related to HW failure and I915 programing should be errors whereas all sink specific errors in debug level.
I will prepare the change.

danvet, seanpaul has discussed few points about convenience of debugging on customer platforms. What is the take on it?

--Ram

On 10/26/2018 5:09 PM, Daniel Vetter wrote:
> On Thu, Oct 25, 2018 at 11:47:52PM +0530, Ramalingam C wrote:
>> Conceptually user should be knowing the feature status through uAPI.
>> So HDCP authentication failure information need not DRM_ERRORS.
>> They are needed only for ENG debugging.
>>
>> And also in HDCP we tolerate the retries for HDCP authentication.
>> Hence if we print the failure info initial attempts as ERRORs CI will
>> fail the IGT.
>>
>> So we present the information of the failures in form of DRM_DEBUG
>> msgs for debugging purpose.
>>
>> Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
>> ---
>>   drivers/gpu/drm/i915/intel_hdcp.c | 46 +++++++++++++++++++--------------------
>>   1 file changed, 23 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_hdcp.c b/drivers/gpu/drm/i915/intel_hdcp.c
>> index 5b423a78518d..d92b04c3ed4e 100644
>> --- a/drivers/gpu/drm/i915/intel_hdcp.c
>> +++ b/drivers/gpu/drm/i915/intel_hdcp.c
>> @@ -166,8 +166,8 @@ static int intel_hdcp_load_keys(struct drm_i915_private *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);
>> +			DRM_DEBUG_KMS("Failed to initiate HDCP key load (%d)\n",
>> +				      ret);
> This one indicates an i915 hw failure, not anything wrong with the sink.
> So should stay at DRM_ERROR.
>
> Btw I noticed that 2 DRM_DEBUG_KMS in intel_hdcp_validate_v_prime also
> indicate programming/i915-side hw errors. So should be upgraded to
> DRM_ERROR I think (but in a separate patch).
>
>>   			return ret;
>>   		}
>>   	} else {
>> @@ -195,7 +195,7 @@ static int intel_write_sha_text(struct drm_i915_private *dev_priv, u32 sha_text)
>>   	I915_WRITE(HDCP_SHA_TEXT, sha_text);
>>   	if (intel_wait_for_register(dev_priv, HDCP_REP_CTL,
>>   				    HDCP_SHA1_READY, HDCP_SHA1_READY, 1)) {
>> -		DRM_ERROR("Timed out waiting for SHA1 ready\n");
>> +		DRM_DEBUG_KMS("Timed out waiting for SHA1 ready\n");
> Same here.
>
>>   		return -ETIMEDOUT;
>>   	}
>>   	return 0;
>> @@ -219,7 +219,7 @@ u32 intel_hdcp_get_repeater_ctl(struct intel_digital_port *intel_dig_port)
>>   	default:
>>   		break;
>>   	}
>> -	DRM_ERROR("Unknown port %d\n", port);
>> +	DRM_DEBUG_KMS("Unknown port %d\n", port);
> Also a programming error.
>
>>   	return -EINVAL;
>>   }
>>   
>> @@ -448,7 +448,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>>   
>>   	ret = intel_hdcp_poll_ksv_fifo(intel_dig_port, shim);
>>   	if (ret) {
>> -		DRM_ERROR("KSV list failed to become ready (%d)\n", ret);
>> +		DRM_DEBUG_KMS("KSV list failed to become ready (%d)\n", ret);
> This one is a sink issue, so correct to change to DRM_DEBUG_KMS. If I
> don't comment, assume that I agree with your change.
>
>>   		return ret;
>>   	}
>>   
>> @@ -458,7 +458,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>>   
>>   	if (DRM_HDCP_MAX_DEVICE_EXCEEDED(bstatus[0]) ||
>>   	    DRM_HDCP_MAX_CASCADE_EXCEEDED(bstatus[1])) {
>> -		DRM_ERROR("Max Topology Limit Exceeded\n");
>> +		DRM_DEBUG_KMS("Max Topology Limit Exceeded\n");
>>   		return -EPERM;
>>   	}
>>   
>> @@ -494,7 +494,7 @@ int intel_hdcp_auth_downstream(struct intel_digital_port *intel_dig_port,
>>   	}
>>   
>>   	if (i == tries) {
>> -		DRM_ERROR("V Prime validation failed.(%d)\n", ret);
>> +		DRM_DEBUG_KMS("V Prime validation failed.(%d)\n", ret);
>>   		goto err;
>>   	}
>>   
>> @@ -543,7 +543,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>>   		if (ret)
>>   			return ret;
>>   		if (!hdcp_capable) {
>> -			DRM_ERROR("Panel is not HDCP capable\n");
>> +			DRM_DEBUG_KMS("Panel is not HDCP capable\n");
>>   			return -EINVAL;
>>   		}
>>   	}
>> @@ -557,7 +557,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>>   	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>>   				    HDCP_STATUS_AN_READY,
>>   				    HDCP_STATUS_AN_READY, 1)) {
>> -		DRM_ERROR("Timed out waiting for An\n");
>> +		DRM_DEBUG_KMS("Timed out waiting for An\n");
> Again this would indicate an i915 hw issue, so better to keep it at
> DRM_ERROR.
>
>>   		return -ETIMEDOUT;
>>   	}
>>   
>> @@ -594,7 +594,7 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>>   	/* Wait for R0 ready */
>>   	if (wait_for(I915_READ(PORT_HDCP_STATUS(port)) &
>>   		     (HDCP_STATUS_R0_READY | HDCP_STATUS_ENC), 1)) {
>> -		DRM_ERROR("Timed out waiting for R0 ready\n");
>> +		DRM_DEBUG_KMS("Timed out waiting for R0 ready\n");
> Same, all the wait_for and wait_for_register indicate i915-side hw issues,
> and should stay at DRM_ERROR. Otherwise we just reduce test coverage.
> Please leave all of them as DRM_ERROR.
>
>>   		return -ETIMEDOUT;
>>   	}
>>   
>> @@ -629,15 +629,15 @@ static int intel_hdcp_auth(struct intel_digital_port *intel_dig_port,
>>   	}
>>   
>>   	if (i == tries) {
>> -		DRM_ERROR("Timed out waiting for Ri prime match (%x)\n",
>> -			  I915_READ(PORT_HDCP_STATUS(port)));
>> +		DRM_DEBUG_KMS("Timed out waiting for Ri prime match (%x)\n",
>> +			      I915_READ(PORT_HDCP_STATUS(port)));
>>   		return -ETIMEDOUT;
>>   	}
>>   
>>   	/* Wait for encryption confirmation */
>>   	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port),
>>   				    HDCP_STATUS_ENC, HDCP_STATUS_ENC, 20)) {
>> -		DRM_ERROR("Timed out waiting for encryption\n");
>> +		DRM_DEBUG_KMS("Timed out waiting for encryption\n");
>>   		return -ETIMEDOUT;
>>   	}
>>   
>> @@ -666,13 +666,13 @@ static int _intel_hdcp_disable(struct intel_connector *connector)
>>   	I915_WRITE(PORT_HDCP_CONF(port), 0);
>>   	if (intel_wait_for_register(dev_priv, PORT_HDCP_STATUS(port), ~0, 0,
>>   				    20)) {
>> -		DRM_ERROR("Failed to disable HDCP, timeout clearing status\n");
>> +		DRM_DEBUG_KMS("Failed to disable HDCP, timeout.\n");
>>   		return -ETIMEDOUT;
>>   	}
>>   
>>   	ret = connector->hdcp_shim->toggle_signalling(intel_dig_port, false);
>>   	if (ret) {
>> -		DRM_ERROR("Failed to disable HDCP signalling\n");
>> +		DRM_DEBUG_KMS("Failed to disable HDCP signalling\n");
>>   		return ret;
>>   	}
>>   
>> @@ -689,7 +689,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>>   		      connector->base.name, connector->base.base.id);
>>   
>>   	if (!hdcp_key_loadable(dev_priv)) {
>> -		DRM_ERROR("HDCP key Load is not possible\n");
>> +		DRM_DEBUG_KMS("HDCP key Load is not possible\n");
>>   		return -ENXIO;
>>   	}
>>   
>> @@ -700,7 +700,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>>   		intel_hdcp_clear_keys(dev_priv);
>>   	}
>>   	if (ret) {
>> -		DRM_ERROR("Could not load HDCP keys, (%d)\n", ret);
>> +		DRM_DEBUG_KMS("Could not load HDCP keys, (%d)\n", ret);
>>   		return ret;
>>   	}
>>   
>> @@ -717,7 +717,7 @@ static int _intel_hdcp_enable(struct intel_connector *connector)
>>   		_intel_hdcp_disable(connector);
>>   	}
>>   
>> -	DRM_ERROR("HDCP authentication failed (%d tries/%d)\n", tries, ret);
>> +	DRM_DEBUG_KMS("HDCP authentication failed (%d tries/%d)\n", tries, ret);
>>   	return ret;
>>   }
>>   
>> @@ -871,9 +871,9 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>>   		goto out;
>>   
>>   	if (!(I915_READ(PORT_HDCP_STATUS(port)) & HDCP_STATUS_ENC)) {
>> -		DRM_ERROR("%s:%d HDCP check failed: link is not encrypted,%x\n",
>> -			  connector->base.name, connector->base.base.id,
>> -			  I915_READ(PORT_HDCP_STATUS(port)));
>> +		DRM_DEBUG_KMS("%s:%d HDCP Link is not encrypted,%x\n",
>> +			      connector->base.name, connector->base.base.id,
>> +			      I915_READ(PORT_HDCP_STATUS(port)));
> Again I think this would indicate an i915 hw issue, let's leave at
> DRM_ERROR.
>
>>   		ret = -ENXIO;
>>   		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>>   		schedule_work(&connector->hdcp_prop_work);
>> @@ -895,7 +895,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>>   
>>   	ret = _intel_hdcp_disable(connector);
>>   	if (ret) {
>> -		DRM_ERROR("Failed to disable hdcp (%d)\n", ret);
>> +		DRM_DEBUG_KMS("Failed to disable hdcp (%d)\n", ret);
> Disabling hdcp should always succeeds, again let's leave at DRM_ERROR.
>
>>   		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>>   		schedule_work(&connector->hdcp_prop_work);
>>   		goto out;
>> @@ -903,7 +903,7 @@ int intel_hdcp_check_link(struct intel_connector *connector)
>>   
>>   	ret = _intel_hdcp_enable(connector);
>>   	if (ret) {
>> -		DRM_ERROR("Failed to enable hdcp (%d)\n", ret);
>> +		DRM_DEBUG_KMS("Failed to enable hdcp (%d)\n", ret);
> Yeah, this can fail when the sink is gone.
>
> When you respin this, can you pls include the added patch to make the 2
> debug outputs into DRM_ERROR, and the 4 patches you've identified we can
> merge already? I want to make sure CI is still approving of all of them,
> now that the kms_content_protection testcase has landed.
>
> Thanks, Daniel
>
>>   		connector->hdcp_value = DRM_MODE_CONTENT_PROTECTION_DESIRED;
>>   		schedule_work(&connector->hdcp_prop_work);
>>   		goto out;
>> -- 
>> 2.7.4
>>

[-- Attachment #1.2: Type: text/html, Size: 10764 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

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

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

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-25 18:17 [PATCH] drm/i915: convert HDCP DRM_ERROR into DRM_DEBUG Ramalingam C
2018-10-25 19:07 ` ✗ Fi.CI.BAT: failure for " Patchwork
2018-10-26  4:32 ` ✓ Fi.CI.BAT: success " Patchwork
2018-10-26 11:33 ` ✓ Fi.CI.IGT: " Patchwork
2018-10-26 11:39 ` [PATCH] " Daniel Vetter
2018-10-29  7:17   ` C, Ramalingam
2018-10-26 15:50 ` 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.