aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_dp_link_training.c
diff options
context:
space:
mode:
authorPandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>2016-08-04 16:48:36 -0400
committerRodrigo Vivi <rodrigo.vivi@intel.com>2016-08-24 11:49:27 -0400
commit8ab5de2e005854e27bb67a3220efdbb0ef151e07 (patch)
tree22d8bb6755e79e6c265c6ef576e88e71d7e4764f /drivers/gpu/drm/i915/intel_dp_link_training.c
parent8b0878a0a3a8da26a9766a2d3abd8768c21b4121 (diff)
drm/i915/dp: Dump DP link status when link training stages fail
A full dump of link status can be handy in debugging link training failures. Let's add that to the debug messages when link training fails. v2: Removing unrelated clean up (Jani) Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1470343716-5574-3-git-send-email-dhinakaran.pandiyan@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_dp_link_training.c')
-rw-r--r--drivers/gpu/drm/i915/intel_dp_link_training.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_dp_link_training.c b/drivers/gpu/drm/i915/intel_dp_link_training.c
index 60fb39cd220b..0deebed71a26 100644
--- a/drivers/gpu/drm/i915/intel_dp_link_training.c
+++ b/drivers/gpu/drm/i915/intel_dp_link_training.c
@@ -24,6 +24,15 @@
24#include "intel_drv.h" 24#include "intel_drv.h"
25 25
26static void 26static void
27intel_dp_dump_link_status(const uint8_t link_status[DP_LINK_STATUS_SIZE])
28{
29
30 DRM_DEBUG_KMS("ln0_1:0x%x ln2_3:0x%x align:0x%x sink:0x%x adj_req0_1:0x%x adj_req2_3:0x%x",
31 link_status[0], link_status[1], link_status[2],
32 link_status[3], link_status[4], link_status[5]);
33}
34
35static void
27intel_get_adjust_train(struct intel_dp *intel_dp, 36intel_get_adjust_train(struct intel_dp *intel_dp,
28 const uint8_t link_status[DP_LINK_STATUS_SIZE]) 37 const uint8_t link_status[DP_LINK_STATUS_SIZE])
29{ 38{
@@ -168,6 +177,7 @@ intel_dp_link_training_clock_recovery(struct intel_dp *intel_dp)
168 ++loop_tries; 177 ++loop_tries;
169 if (loop_tries == 5) { 178 if (loop_tries == 5) {
170 DRM_ERROR("too many full retries, give up\n"); 179 DRM_ERROR("too many full retries, give up\n");
180 intel_dp_dump_link_status(link_status);
171 break; 181 break;
172 } 182 }
173 intel_dp_reset_link_train(intel_dp, 183 intel_dp_reset_link_train(intel_dp,
@@ -254,6 +264,7 @@ intel_dp_link_training_channel_equalization(struct intel_dp *intel_dp)
254 264
255 if (cr_tries > 5) { 265 if (cr_tries > 5) {
256 DRM_ERROR("failed to train DP, aborting\n"); 266 DRM_ERROR("failed to train DP, aborting\n");
267 intel_dp_dump_link_status(link_status);
257 break; 268 break;
258 } 269 }
259 270