diff options
author | Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com> | 2016-08-04 16:48:36 -0400 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2016-08-24 11:49:27 -0400 |
commit | 8ab5de2e005854e27bb67a3220efdbb0ef151e07 (patch) | |
tree | 22d8bb6755e79e6c265c6ef576e88e71d7e4764f /drivers/gpu/drm/i915/intel_dp_link_training.c | |
parent | 8b0878a0a3a8da26a9766a2d3abd8768c21b4121 (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.c | 11 |
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 | ||
26 | static void | 26 | static void |
27 | intel_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 | |||
35 | static void | ||
27 | intel_get_adjust_train(struct intel_dp *intel_dp, | 36 | intel_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 | ||