From 79cd88db632cc24232b40628f55f7a5140ccf9c8 Mon Sep 17 00:00:00 2001 From: Jesse Barnes Date: Thu, 7 Jul 2011 11:10:59 -0700 Subject: [PATCH] --- yaml --- r: 254853 b: refs/heads/master c: 59cd09e1aea3ac6eb15b45e5d2261a63ecb1799c h: refs/heads/master i: 254851: 8f5f0260e0775ad4e05f59b2efd1d7f8d0b34964 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/i915/intel_dp.c | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index df120c37f010..073d4e632fc1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7183dc2912510cf005fcc59239f8d153ef51d3f0 +refs/heads/master: 59cd09e1aea3ac6eb15b45e5d2261a63ecb1799c diff --git a/trunk/drivers/gpu/drm/i915/intel_dp.c b/trunk/drivers/gpu/drm/i915/intel_dp.c index fc51730b89d6..a9a5051419df 100644 --- a/trunk/drivers/gpu/drm/i915/intel_dp.c +++ b/trunk/drivers/gpu/drm/i915/intel_dp.c @@ -1522,6 +1522,8 @@ intel_dp_link_down(struct intel_dp *intel_dp) static void intel_dp_check_link_status(struct intel_dp *intel_dp) { + int ret; + if (!intel_dp->base.base.crtc) return; @@ -1530,6 +1532,15 @@ intel_dp_check_link_status(struct intel_dp *intel_dp) return; } + /* Try to read receiver status if the link appears to be up */ + ret = intel_dp_aux_native_read(intel_dp, + 0x000, intel_dp->dpcd, + sizeof (intel_dp->dpcd)); + if (ret != sizeof(intel_dp->dpcd)) { + intel_dp_link_down(intel_dp); + return; + } + if (!intel_channel_eq_ok(intel_dp)) { intel_dp_start_link_train(intel_dp); intel_dp_complete_link_train(intel_dp);